本文整理汇总了C#中iTextSharp.text.pdf.PdfLiteral类的典型用法代码示例。如果您正苦于以下问题:C# PdfLiteral类的具体用法?C# PdfLiteral怎么用?C# PdfLiteral使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PdfLiteral类属于iTextSharp.text.pdf命名空间,在下文中一共展示了PdfLiteral类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Invoke
public virtual void Invoke(PdfContentStreamProcessor pdfContentStreamProcessor, PdfLiteral oper, List<PdfObject> operands) {
String operatorStr = oper.ToString();
PdfContentByte canvas = cleanUpStrategy.Context.Canvas;
PRStream xFormStream = null;
bool disableOutput = pathConstructionOperators.Contains(operatorStr) || pathPaintingOperators.Contains(operatorStr) || clippingPathOperators.Contains(operatorStr);
// key - number of a string in the TJ operator, value - number following the string; the first number without string (if it's presented) is stored under 0.
// BE AWARE: zero-length strings are ignored!!!
IDictionary<int, float> structuredTJoperands = null;
if ("Do" == operatorStr) {
if (operands.Count == 2 && operands[0].IsName()) {
PdfDictionary xObjResources = cleanUpStrategy.Context.Resources.GetAsDict(PdfName.XOBJECT);
if (xObjResources != null) {
PdfStream xObj = xObjResources.GetAsStream((PdfName) operands[0]);
if (xObj is PRStream && xObj.GetAsName(PdfName.SUBTYPE) != null &&
xObj.GetAsName(PdfName.SUBTYPE).CompareTo(PdfName.FORM) == 0) {
xFormStream = (PRStream) xObj;
cleanUpStrategy.RegisterNewContext(xObj.GetAsDict(PdfName.RESOURCES), null);
}
}
}
}
originalContentOperator.Invoke(pdfContentStreamProcessor, oper, operands);
IList<PdfCleanUpContentChunk> chunks = cleanUpStrategy.Chunks;
if (xFormStream != null) {
xFormStream.SetData(cleanUpStrategy.Context.Canvas.ToPdf(cleanUpStrategy.Context.Canvas.PdfWriter));
cleanUpStrategy.PopContext();
canvas = cleanUpStrategy.Context.Canvas;
}
if ("Do" == operatorStr) {
if (chunks.Count > 0 && chunks[0] is PdfCleanUpContentChunk.Image) {
PdfCleanUpContentChunk.Image chunk = (PdfCleanUpContentChunk.Image) chunks[0];
if (chunk.Visible) {
PdfDictionary xObjResources = cleanUpStrategy.Context.Resources.GetAsDict(PdfName.XOBJECT);
PRStream imageStream = (PRStream) xObjResources.GetAsStream((PdfName) operands[0]);
UpdateImageStream(imageStream, chunk.NewImageData);
} else {
disableOutput = true;
}
}
} else if (lineStyleOperators.Contains(operatorStr)) {
disableOutput = true;
} else if (textShowingOperators.Contains(operatorStr) && !AllChunksAreVisible(cleanUpStrategy.Chunks)) {
disableOutput = true;
if ("'" == operatorStr) {
canvas.InternalBuffer.Append(TStar);
} else if ("\"" == operatorStr) {
operands[0].ToPdf(canvas.PdfWriter, canvas.InternalBuffer);
canvas.InternalBuffer.Append(Tw);
operands[1].ToPdf(canvas.PdfWriter, canvas.InternalBuffer);
canvas.InternalBuffer.Append(TcTStar);
} else if ("TJ" == operatorStr) {
structuredTJoperands = StructureTJarray((PdfArray) operands[0]);
}
GraphicsState gs = pdfContentStreamProcessor.Gs();
WriteTextChunks(structuredTJoperands, chunks, canvas, gs.CharacterSpacing, gs.WordSpacing,
gs.FontSize, gs.HorizontalScaling);
} else if (pathPaintingOperators.Contains(operatorStr)) {
WritePath(operatorStr, canvas);
} else if (strokeColorOperators.Contains(operatorStr)) {
// Replace current color with the new one.
cleanUpStrategy.Context.PopStrokeColor();
cleanUpStrategy.Context.PushStrokeColor(operands);
} else if ("q" == operatorStr) {
cleanUpStrategy.Context.PushStrokeColor(cleanUpStrategy.Context.PeekStrokeColor());
} else if ("Q" == operatorStr) {
cleanUpStrategy.Context.PopStrokeColor();
}
if (!disableOutput) {
WriteOperands(canvas, operands);
}
cleanUpStrategy.ClearChunks();
}
示例2: GetColorspace
PdfObject GetColorspace()
{
if (icc_profile != null) {
if ((colorType & 2) == 0)
return PdfName.DEVICEGRAY;
else
return PdfName.DEVICERGB;
}
if (gamma == 1f && !hasCHRM) {
if ((colorType & 2) == 0)
return PdfName.DEVICEGRAY;
else
return PdfName.DEVICERGB;
}
else {
PdfArray array = new PdfArray();
PdfDictionary dic = new PdfDictionary();
if ((colorType & 2) == 0) {
if (gamma == 1f)
return PdfName.DEVICEGRAY;
array.Add(PdfName.CALGRAY);
dic.Put(PdfName.GAMMA, new PdfNumber(gamma));
dic.Put(PdfName.WHITEPOINT, new PdfLiteral("[1 1 1]"));
array.Add(dic);
}
else {
PdfObject wp = new PdfLiteral("[1 1 1]");
array.Add(PdfName.CALRGB);
if (gamma != 1f) {
PdfArray gm = new PdfArray();
PdfNumber n = new PdfNumber(gamma);
gm.Add(n);
gm.Add(n);
gm.Add(n);
dic.Put(PdfName.GAMMA, gm);
}
if (hasCHRM) {
float z = yW*((xG-xB)*yR-(xR-xB)*yG+(xR-xG)*yB);
float YA = yR*((xG-xB)*yW-(xW-xB)*yG+(xW-xG)*yB)/z;
float XA = YA*xR/yR;
float ZA = YA*((1-xR)/yR-1);
float YB = -yG*((xR-xB)*yW-(xW-xB)*yR+(xW-xR)*yB)/z;
float XB = YB*xG/yG;
float ZB = YB*((1-xG)/yG-1);
float YC = yB*((xR-xG)*yW-(xW-xG)*yW+(xW-xR)*yG)/z;
float XC = YC*xB/yB;
float ZC = YC*((1-xB)/yB-1);
float XW = XA+XB+XC;
float YW = 1;//YA+YB+YC;
float ZW = ZA+ZB+ZC;
PdfArray wpa = new PdfArray();
wpa.Add(new PdfNumber(XW));
wpa.Add(new PdfNumber(YW));
wpa.Add(new PdfNumber(ZW));
wp = wpa;
PdfArray matrix = new PdfArray();
matrix.Add(new PdfNumber(XA));
matrix.Add(new PdfNumber(YA));
matrix.Add(new PdfNumber(ZA));
matrix.Add(new PdfNumber(XB));
matrix.Add(new PdfNumber(YB));
matrix.Add(new PdfNumber(ZB));
matrix.Add(new PdfNumber(XC));
matrix.Add(new PdfNumber(YC));
matrix.Add(new PdfNumber(ZC));
dic.Put(PdfName.MATRIX, matrix);
}
dic.Put(PdfName.WHITEPOINT, wp);
array.Add(dic);
}
return array;
}
}