【发布时间】:2020-11-13 08:06:01
【问题描述】:
我使用的是 iTextSharp 5.0 版。
对于我的项目,我需要使用 pdfWriter 将我的 pdf 文档复制到另一个 pdf 文档中。我不能使用 pdfCopy 和 pdfStamper。
所以在这个操作过程中所有的注解都会丢失。
首先,我开始寻找如何在adobe reader UI上获取“铅笔评论绘图标记”的注释,如下所示:
对于我的测试,我正在使用这个带有绘图标记的 pdf 文档,我添加了我自己:https://easyupload.io/3c6i1g
我找到了如何获取注解字典:
Dim pdfReader As New PdfReader(pdfPath)
Dim page As PdfDictionary = pdfReader.GetPageN(0)
Dim annots As PdfArray = page.GetAsArray(PdfName.ANNOTS)
If annots IsNot Nothing Then
For i = 0 To annots.Size - 1
Dim annotDict As PdfDictionary = annots.GetAsDict(i)
Dim annotContents As PdfString = annotDict.GetAsString(PdfName.CONTENT)
Dim annotSubtype As PdfString = annotDict.GetAsString(PdfName.SUBTYPE)
Dim annotName As PdfString = annotDict.GetAsString(PdfName.T)
Next
End If
当循环解析我的注释时,annotName 变量会返回我的名字,所以我肯定会解析我正在寻找的注释,但 annotSubtype 等于 Nothing,这怎么可能?根据第 12.5.2 节表 1666 (https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf) 的 pdf 规范,subtype 参数是必需的,所以这不是说这不应该是一无是处吗?
另外,如何获取与此注释相关的图像?我以为它会存储在注释字典的内容中,但这在上面的代码中也没有返回任何内容......
关于为什么我不能首先使用 pdfStamper:我的 pdf 文档的一个页面必须调整大小(缩小)才能在页面底部添加一些文本,所以我必须使用 pdfWriter .
问题:如何使用 iTextSharp 5.0 获得注释注释的绘制线?
【问题讨论】:
-
您的 URL easyupload.io/2rxh7a 返回 FILE NOT FOUND。
-
嗨 mkl,谢谢我编辑了它:easyupload.io/3c6i1g
标签: vb.net pdf itext pdf-generation