本文整理匯總了C#中iTextSharp.text.pdf.parser.PdfContentStreamProcessor.Gs方法的典型用法代碼示例。如果您正苦於以下問題:C# PdfContentStreamProcessor.Gs方法的具體用法?C# PdfContentStreamProcessor.Gs怎麽用?C# PdfContentStreamProcessor.Gs使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類iTextSharp.text.pdf.parser.PdfContentStreamProcessor
的用法示例。
在下文中一共展示了PdfContentStreamProcessor.Gs方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: Invoke
public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
processor.Gs().fillColor = GetColor(4, operands);
}
示例2: HandleXObject
public void HandleXObject(PdfContentStreamProcessor processor, PdfStream stream, PdfIndirectReference refi) {
PdfDictionary resources = stream.GetAsDict(PdfName.RESOURCES);
// we read the content bytes up here so if it fails we don't leave the graphics state stack corrupted
// this is probably not necessary (if we fail on this, probably the entire content stream processing
// operation should be rejected
byte[] contentBytes;
contentBytes = ContentByteUtils.GetContentBytesFromContentObject(stream);
PdfArray matrix = stream.GetAsArray(PdfName.MATRIX);
new PushGraphicsState().Invoke(processor, null, null);
if (matrix != null){
float a = matrix.GetAsNumber(0).FloatValue;
float b = matrix.GetAsNumber(1).FloatValue;
float c = matrix.GetAsNumber(2).FloatValue;
float d = matrix.GetAsNumber(3).FloatValue;
float e = matrix.GetAsNumber(4).FloatValue;
float f = matrix.GetAsNumber(5).FloatValue;
Matrix formMatrix = new Matrix(a, b, c, d, e, f);
processor.Gs().ctm = formMatrix.Multiply(processor.Gs().ctm);
}
processor.ProcessContent(contentBytes, resources);
new PopGraphicsState().Invoke(processor, null, null);
}
示例3: Invoke
public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
int lineJoin = ((PdfNumber) operands[0]).IntValue;
processor.Gs().LineJoinStyle = lineJoin;
}
示例4: Invoke
virtual public void Invoke(PdfContentStreamProcessor processor, PdfLiteral oper, List<PdfObject> operands) {
PdfNumber charSpace = (PdfNumber)operands[0];
processor.Gs().characterSpacing = charSpace.FloatValue;
}
示例5: 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();
}