本文整理汇总了C#中IndexBaseItem类的典型用法代码示例。如果您正苦于以下问题:C# IndexBaseItem类的具体用法?C# IndexBaseItem怎么用?C# IndexBaseItem使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
IndexBaseItem类属于命名空间,在下文中一共展示了IndexBaseItem类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: GetCID
/** get a single CID font. The PDF architecture (1.4)
* supports 16-bit strings only with CID CFF fonts, not
* in Type-1 CFF fonts, so we convert the font to CID if
* it is in the Type-1 format.
* Two other tasks that we need to do are to select
* only a single font from the CFF package (this again is
* a PDF restriction) and to subset the CharStrings glyph
* description.
*/
public byte[] GetCID(String fontName)
//throws java.io.FileNotFoundException
{
int j;
for (j=0; j<fonts.Length; j++)
if (fontName.Equals(fonts[j].name)) break;
if (j==fonts.Length) return null;
List<Item> l = new List<Item>();
// copy the header
Seek(0);
int major = GetCard8();
int minor = GetCard8();
int hdrSize = GetCard8();
int offSize = GetCard8();
nextIndexOffset = hdrSize;
l.Add(new RangeItem(buf,0,hdrSize));
int nglyphs=-1, nstrings=-1;
if ( ! fonts[j].isCID ) {
// count the glyphs
Seek(fonts[j].charstringsOffset);
nglyphs = GetCard16();
Seek(stringIndexOffset);
nstrings = GetCard16()+standardStrings.Length;
//System.err.Println("number of glyphs = "+nglyphs);
}
// create a name index
l.Add(new UInt16Item((char)1)); // count
l.Add(new UInt8Item((char)1)); // offSize
l.Add(new UInt8Item((char)1)); // first offset
l.Add(new UInt8Item((char)( 1+fonts[j].name.Length )));
l.Add(new StringItem(fonts[j].name));
// create the topdict Index
l.Add(new UInt16Item((char)1)); // count
l.Add(new UInt8Item((char)2)); // offSize
l.Add(new UInt16Item((char)1)); // first offset
OffsetItem topdictIndex1Ref = new IndexOffsetItem(2);
l.Add(topdictIndex1Ref);
IndexBaseItem topdictBase = new IndexBaseItem();
l.Add(topdictBase);
/*
int maxTopdictLen = (topdictOffsets[j+1]-topdictOffsets[j])
+ 9*2 // at most 9 new keys
+ 8*5 // 8 new integer arguments
+ 3*2;// 3 new SID arguments
*/
//int topdictNext = 0;
//byte[] topdict = new byte[maxTopdictLen];
OffsetItem charsetRef = new DictOffsetItem();
OffsetItem charstringsRef = new DictOffsetItem();
OffsetItem fdarrayRef = new DictOffsetItem();
OffsetItem fdselectRef = new DictOffsetItem();
if ( !fonts[j].isCID ) {
// create a ROS key
l.Add(new DictNumberItem(nstrings));
l.Add(new DictNumberItem(nstrings+1));
l.Add(new DictNumberItem(0));
l.Add(new UInt8Item((char)12));
l.Add(new UInt8Item((char)30));
// create a CIDCount key
l.Add(new DictNumberItem(nglyphs));
l.Add(new UInt8Item((char)12));
l.Add(new UInt8Item((char)34));
// What about UIDBase (12,35)? Don't know what is it.
// I don't think we need FontName; the font I looked at didn't have it.
}
// create an FDArray key
l.Add(fdarrayRef);
l.Add(new UInt8Item((char)12));
l.Add(new UInt8Item((char)36));
// create an FDSelect key
l.Add(fdselectRef);
l.Add(new UInt8Item((char)12));
l.Add(new UInt8Item((char)37));
//.........这里部分代码省略.........
开发者ID:Gianluigi,项目名称:dssnet,代码行数:101,代码来源:CFFFont.cs
示例2: SubrMarkerItem
public SubrMarkerItem(OffsetItem offItem, IndexBaseItem indexBase) {
this.offItem = offItem;
this.indexBase = indexBase;
}
开发者ID:Gianluigi,项目名称:dssnet,代码行数:4,代码来源:CFFFont.cs
注:本文中的IndexBaseItem类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论