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

本文关键字:itextsharp 添加 字体 文档 pdf | 更新日期: 2023-09-27 18:05:42

我需要在c#程序中读取pdf文件。文件是波斯语的。我使用下面的代码。例如,当字体是Tahoma时,它工作得很好,但当字体是波斯语时,它就不起作用了。我如何在阅读pdf时将波斯语字体添加到itextsharp ?

波斯语PDF示例:.pdf.htm http://uplod.ir/idqrbqzzwl34/Visual_C__2005_Learning_ (hashemian_)波斯语PDF是从右向左的,但当提取了itextsharp文本时,它是从左向右的,无法读取。

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

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

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

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

你需要的是另一个映射。您需要找到在内容流中用作代码的"字符"与它所表示的UNICODE字符之间的映射。在你的PDF中应该有一个ToUnicode映射,但是…正如你在我提到的视频中看到的,并不是所有的pdf都有这种映射。

检查PDF中的文本是否可以提取的最佳方法是从adobereader复制/粘贴文本。如果你成功了,你应该能够以编程的方式提取文本;如果你没有,你需要开始寻找一个OCR解决方案。

更新:我已经下载了你的PDF并提取了文本。我看不出少了什么。不幸的是,我不能复制/粘贴文本,因为一个答案的正文被限制为30000个字符。