gpt4 book ai didi

c# - 使用 iTextSharp 提取路径和形状

转载 作者:行者123 更新时间:2023-11-30 22:17:04 29 4
gpt4 key购买 nike

iTextSharp 支持使用 PdfContentByte 类创建形状和路径,您可以在那里设置颜色、绘制曲线和基本元素……是否有一种机制可以相反?我可以通过调用 PdfReader.GetPageContent(...) 获取内容,但我没有找到“解析器”来读取这些操作,将它们应用于图形上下文,例如将其绘制在面板。

例子:

1 1 1 RG
1 1 1 rg
0.12 0 0 0.12 16 31 cm

q
480 421 m
4318 421 l
4318 5459 l
480 5459 l
480 421 l W n
0.074509806931 0.074509806931 0.074509806931 RG
0.074509806931 0.074509806931 0.074509806931 rg /OC /oc1 BDC
....

感谢回复!

最佳答案

这里是提取页面不同命令的起点:

    var file = "test.pdf";
var reader = new PdfReader(file);

var streamBytes = reader.GetPageContent(2);
var tokenizer = new PRTokeniser(new RandomAccessFileOrArray(streamBytes));
var ps = new PdfContentParser(tokenizer);

List<PdfObject> operands = new List<PdfObject>();
while (ps.Parse(operands).Count > 0)
{
PdfLiteral oper = (PdfLiteral)operands[operands.Count - 1];
var cmd = oper.ToString();

switch (cmd)
{
case "q":
Console.WriteLine("SaveGraphicsState(); //q");
break;

case "Q":
Console.WriteLine("RestoreGraphicsState(); //Q");
break;

// good luck with the rest!

}
}

关于c# - 使用 iTextSharp 提取路径和形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16960830/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com