当前位置: 首页 > 知识库问答 >
问题:

在c#中阅读PDF(希伯来文)

华永新
2023-03-14

需要一些帮助我有一个pdf,我只需要阅读它并将其内容存储在数据库中。出于某种原因,我找不到使用Itext 7实现这一点的简单示例

另一件事,内容是希伯来语的,起初我用的是iTextSharp,但我得到的内容是相反的顺序,所以我有两个选择:1。修正反向代码2。也许可以在Itext7中找到一个更正常的代码,它没有这个问题。

StringBuilder text = new StringBuilder();

if (File.Exists(fileName))
{
    PdfReader pdfReader = new PdfReader(fileName);

    for (int page = 1; page <= pdfReader.NumberOfPages; page++) 
    {
        ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
        string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);

        currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));

        var res = ConvertToHebrew(currentText);
        text.Append(res);
    }
    pdfReader.Close();
}

ConvertToHebrew函数对我来说并不完美,所以我希望能找到一些不需要我尝试修复的东西。

共有1个答案

蔚学真
2023-03-14

如果包含从右向左脚本(如希伯来语或阿拉伯语)的PDF文档格式正确,则页面的内容流将包含从右向左包装文本片段的/ReversedChars指令。iText 7能够处理此类指令,并从格式正确的文档中正确提取从右到左的文本。

此功能是作为LocationTextExtractionStrategy的一部分实现的。要使用它,您基本上必须在代码中用LocationTextExtractionStrategy替换SimpleTextExtractionStrategy。您还应该为新的LocationTextExtractionStrategy实例调用SetRightToLeftRunDirection(true),但是即使没有此标志,您也应该注意到结果的差异。

也就是说,如果文档形成不当(或者不完全正确,这取决于你对它的看法),并且不包含ReversedChars指令,那么iText 7目前无法帮助你。在某个时候,从右向左提取脚本,即使是不完全正确的PDF,也可能在iText 7中实现,但这是未来的事情。

 类似资料:
  • 字体Adobe希伯来文 文本方向RTL 我试过平场和不平场。 当字段没有平坦化时,在使用Acrobat Reader打开生成的PDF后,我看到了我的字段,但它是空的。只有在我点击该字段后,该字段的内容才会正确出现。当我在Chrome上查看PDF时,字段不会出现(或者它可能在那里,但里面没有文本)。 编辑:测试PDF可从这里下载

  • 在 Dreamweaver 中将双向流量应用到阿拉伯语和希伯来语文本;使用标签编辑器、“表格”属性和 Div 属性。 在中东和北非版本的此软件中,可通过阿拉伯语和希伯来语使用新的功能和改进功能。 双向文字流 中东语言的文字大多从右向左 (RTL) 书写。但是,一般而言,最常用的形式为双向 (bidi) 文字 - 混用从左向右和从右向左书写的文字。bidi 文字的一个示例是含有阿拉伯语和英语文字的段

  • Adobe 亚洲语言书写器 借助 Adobe 亚洲语言书写器,您可以使用中东和南亚语言创建内容。您可以键入或混合键入阿拉伯语、希伯来语、英语和其他语言。 您可以在“段落”面板菜单(窗口 > 段落 > 面板菜单)中的可用书写器之间进行选择。例如,您可以使用中东和南亚语言单行书写器或中东和南亚语言逐行书写器。 有关 Illustrator 中支持的其他亚洲语言的更多信息,请参阅适用于亚洲语言文字的书写

  • 启用中东语言功能 若要在 Photoshop 界面中显示中东文字选项,请执行以下操作: 选取“编辑”>“首选项”>“文字”(Windows) 或“Photoshop”>“首选项”>“文字”(Mac OS)。 在“选取文本引擎选项”部分中,选取“中东”。 单击“确定”,并重新启动 Photoshop。 选取“文字”>“语言选项”>“中东语言功能”。 文本方向 要创建阿拉伯语和希伯来语内容,您可以将默

  • " Go forth on your path, as it exists only through your walking. " — St. Augustine of Hippo (attributed) 要阅读的对象 鉴于一些主题有免费的教程,因此我决定不在本书中加以阐述。 修饰器: 函数修饰器 作者: Ariel Ortiz 关于函数修饰器的更多讨论 作者: Ariel Ortiz 可爱的

  • 我有一个编码问题。我有一个Android应用程序,包括一个文本字段,允许用户使用希伯来文键盘和希伯来文字符键。 我希望根据pc862希伯来语代码页对该数据进行编码,以便将其发送到打印机进行打印(打印机配置为根据该代码页接受数据)。我应该能够使用以下代码执行此操作: 根据这里找到的文件http://docs.oracle.com/javase/7/docs/technotes/guides/intl