在阅读pdf文档时向itextsharp添加字体

问题描述 投票:0回答:1

我需要在我的C#程序中读取pdf文件。该文件是波斯语。我使用下面的代码。例如,当字体是Tahoma时它工作正常,但是当字体是波斯语时它不起作用。在阅读pdf时如何向itextsharp添加波斯字体?

波斯语PDF的一个例子:http://uplod.ir/idqrbqzzwl34/Visual_C__2005_Learning_(hashemian_).pdf.htm波斯语pdf是从右到左,但是当提取了itextsharp文本时,它是从左到右,它是不可读的。

c# itextsharp
1个回答
1
投票

您的问题完全错误,您对收到的其他答案的评论也是如此。您假设提取的文本具有“字体”。它没有。您提取的是特定编码中的字节(例如UTF-8)。

请看这部电影:https://www.youtube.com/watch?v=wxGEEv7ibHE

PDF中的文本内容存储为一系列字符。这些字符映射到字形。例如。字符a可以映射到字形,如“a”,“a”,“a”或任何其他字形,包括bc。它只是“代码”,用于查找在页面上绘制字母所需的说明。

你需要的是另一个映射。您需要找到用作内容流中的代码的“字符”与其表示的UNICODE字符之间的映射。在您的PDF中应该有一个ToUnicode映射,但是...正如您在我提到的视频中看到的那样,并非所有PDF都具有此映射。

检查PDF中的文本是否可以提取的最佳方法是通过从Adobe Reader复制/粘贴文本。如果成功,您应该能够以编程方式提取文本;如果不这样做,则需要开始寻找OCR解决方案。

更新:我已经下载了您的PDF并且我已经提取了文本。我看不出有什么遗漏。不幸的是我不能在这里复制/粘贴文本,因为答案的主体限制为30000个字符。

© www.soinside.com 2019 - 2024. All rights reserved.