我正在尝试使用VisualBasic.Net中的PDFSharp库从PDF中提取文本
以下是加载Crystal Reports生成的发票的代码
Dim SourceFileName As String = "D:\vbpROJECTS\firstpagetest.pdf"
Dim Inputdocument As PdfDocument = PdfReader.Open(SourceFileName, PdfDocumentOpenMode.Import)
Dim TextExtract As String
TextExtract =Inputdocument.Pages(0).Contents.Elements.GetDictionary(0).Stream.ToString
TextBox1.Clear()
TextBox1.Text = TextExtract
这会将文本加载到文本框中,但似乎是编码的。使用XPDFTools pdftotext.exe确认它未加密,因为它能够将所有文本提取为可读格式。 iTextSharp在阅读本文档中的文本时也没有任何问题。
相反,我得到以下它只是部分BT ET剪辑它。
**BT**
1 0 0 -1 580 2168 Tm
/9 143 Tf
(XF22) Tj
[(G)14(8=V2$M;G\\N$)(Y)77(GS)] TJ
0 -180 **Td**
(ST8H$UT=VS$W=VVH2) **Tj**
[(G)14(8HV$XFYY)] TJ
0 -180 Td
(SZ=*FH) Tj
0 -180 Td
([F) Tj
**ET**
还有一些。
Td的
(。]#d ^%XB(%)= @ B%7 @> d(%)= 6696%0.7%.M9%5:???。-M = 69:7%@(%)= D89 @%70%) TJ
-999 -147 Td
(.MF6%F @ 7F-9%F@%O5>>A%TF6a%?=6696%7@%:9-9F?.%7O%N77B6A%C5=@.F.F96%856.%;9%) Tj
0 -147 Td
(-7@OF:89B%=.%.F89%7O%:9-9F?.A%'@D%BF6-:9?=@-F96%-=@@7.%;9%=--9?.9B%=O.9:%) Tj
0 -147 Td
(B9>F
9:d%5 @> 966%:9-7:B9B%7 @%M9%F@`7F-9%=.%.F89%7O%: 9-9F?.A%#> 9 = 69%:9O9:%。7%)Tj
0 -147 Td
(___ A - = @ 7 @ A-7Ab =%O7:%75:%O5>>%。9:86%= @ B%-7 @ BF.F7 @ 6)Tj
我已阅读第9章 http://wwwimages.adobe.com/content/dam/acom/en/devnet/pdf/PDF32000_2008.pdf
它谈论CMap和WinAnsi Text编码。我一遍又一遍地阅读它但却无法理解为什么我在PDF中找不到文本。我也试图找到一个在线WinAnsiDecoder但它似乎不存在,也赢得ansi编码似乎与ASCII几乎相同。以下看起来不像ASCII。
如果我创建一个包含几张图片和几行文本的虚拟Word文档然后保存为PDF并使用上面的代码加载它我会得到一些可以使用解析器读取的文本来消除PDF “标签”ISO32000 PDF参考也是有道理的。
为什么我会收到“ST8H $ UT = VS $ W = VVH2”的文字?
仅供参考,我不想使用iTextsharp。