1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
/* Type1Import.h
* Import class for Type1 fonts
*
* Copyright (C) 2000 - 2005 by Cenon GmbH
* Author: Georg Fleischmann
*
* created: 2000-11-14
* modified: 2005-01-06
*
* This file is part of the Cenon Import Library.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the Cenon Public License as
* published by the Cenon GmbH. Among other things,
* the License requires that the copyright notices and this notice
* be preserved on all copies.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the Cenon Public License for more details.
*
* You should have received a copy of the Cenon Public License along
* with this library; see the file LICENSE. If not, write to Cenon.
*
* If you want to link this library to your proprietary software,
* or for other uses which are not covered by the definitions
* laid down in the Cenon Public License, vhf also offers a proprietary
* license scheme. See the vhf internet pages or ask for details.
*
* Cenon GmbH, Schwabstr. 45, 72108 Rottenburg a.N., Germany
* eMail: info@Cenon.com
* http://www.Cenon.de
*/
#ifndef CEN_H_TYPE1IMPORT
#define CEN_H_TYPE1IMPORT
#include <AppKit/AppKit.h>
#include "type1Funs.h"
#include "Type1Font.h"
/* you can use the state to get width and color
* but you must not change it
*/
typedef struct _Type1State
{
NSColor *color; /* color */
float width; /* line width */
}Type1State;
@interface Type1Import:NSObject
{
Type1Font *fontObject;
id list; /* the base list for all contents */
id pList; /* the current polygon list */
Type1State state; /* the current gstate */
NSPoint ll, ur; /* bounds */
float gridOffset;
// T1FontInfo fontInfo;
// char *fontName;
int encodingCnt;
Encoding *encoding;
// int paintType;
// int fontType;
// float fontMatrix[6];
// float fontBBox[4];
// long uniqueID;
//metrics;
int strokeWidth;
Private privateDict; // need only subrs
int charStringCnt;
CharStrings charStrings[256];
//FID;
}
/* start import
*/
- importType1:(NSData*)psStream;
/* this method builds the bounds of the graphic
* in case of text it may be useful to set this from the sub class
*/
- (void)updateBounds:(NSPoint)p;
/* dealloc ps-import object
* no graphic objects (line, curve) will be dealloced
* the list returned by importPS will not be dealloced either
*/
- (void)dealloc;
/* methods needed to be sub classed
*
* allocate an array holding the graphic objects:
* - allocateList;
* make a line-object and add it to aList
* - addLine:(NXPoint)beg :(NXPoint)end toList:aList;
* make a curve-object and add it to aList
* - addCurve:(NXPoint)p0 :(NXPoint)p1 :(NXPoint)p2 :(NXPoint)p3 toList:aList;
* make a text-object and add it to aList
* - addText:(NSString*)text :(NSString*)font :(NXCoord)angle ofSize:(NXCoord)size :ar at:(NXPoint)p toList:aList;
* add aList as a stroked path to bList
* - addStrokeList:aList toList:bList;
* add aList as a filled path to bList
* - addFillList:aList toList:bList;
*/
- allocateFontObject;
- allocateList;
- (void)addLine:(NSPoint)beg :(NSPoint)end toList:aList;
- (void)addArc:(NSPoint)center :(NSPoint)start :(float)angle toList:aList;
- (void)addCurve:(NSPoint)p0 :(NSPoint)p1 :(NSPoint)p2 :(NSPoint)p3 toList:aList;
- (void)addStrokeList:aList toList:bList;
- (void)addFillList:aList toList:bList;
- (void)addText:(NSString*)text :(NSString*)font :(float)angle :(float)size :(float)ar at:(NSPoint)p toList:aList;
- (void)setBounds:(NSRect)bounds;
@end
#endif // CEN_H_TYPE1IMPORT
|