首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PDFTextStream从PDF文件中提取僧伽罗字符

使用PDFTextStream从PDF文件中提取僧伽罗字符
EN

Stack Overflow用户
提问于 2014-09-12 09:33:24
回答 2查看 953关注 0票数 0

我试图得到一个pdf的内容,是在僧伽罗(例如:http://archives.dailynews.lk/2001/pix/GazetteS14-01-03.pdf)。

我在计算机中保存了pdf,并使用了以下代码。

代码语言:javascript
复制
import java.io.IOException;

import com.snowtide.pdf.OutputTarget;
import com.snowtide.pdf.PDFTextStream;

public class ExtractTextAllPages {
    public static void main (String[] args) throws IOException {
        String pdfFilePath = "/home/chamila/semester7/fyp/gazette/GazetteS14-01-03.pdf";
        PDFTextStream pdfts = new PDFTextStream(pdfFilePath); 
        StringBuilder text = new StringBuilder(1024);
        pdfts.pipe(new OutputTarget(text));
        pdfts.close();
        System.out.printf("The text extracted from %s is:", pdfFilePath);
        System.out.println(text);
    }
}

但是,作为输出,我得到的是如下所示。

代码语言:javascript
复制
Y%S ,xld m%cd;dka;%sl iudcjd§ ckrcfha .eiÜ m;%h                 1
wxl 1"844 – 2014 ckjdß ui 03 jeks isl=rdod – 2014'01'03

^rcfha n,hmsg m%isoaO lrk ,§'&

I jeks fldgi : ^IIw& jeks fPoh - m<lsÍï
;k;=re - wenE3;=

                 Y%S ,xld fmd,sia fomd3;fïka;=j
.............................

原因是什么?我怎样才能得到pdf的确切内容?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-12 10:24:34

原因是什么?

所讨论的文档根本不包含用于正确提取文本的信息。更糟糕的是,它包含了误导的信息。

例如

头线

使用以下运算符生成:

代码语言:javascript
复制
BT
/TT4 1 Tf
19.2 0 0 32 184.205 938.105 Tm
-0.0006 Tc
0.1376 Tw
(Y%S ,xld m%cd;dka;%sl iudcjd§ ckrcfha .eiÜ m;%h) Tj
ET

(即使用字体TT4,在一定大小的位置使用特定的字符和字间距绘制序列Y%S ,xld m%cd;dka;%sl iudcjd§ ckrcfha .eiÜ m;%h。)

字体TT4现在声称是:

代码语言:javascript
复制
/Subtype/TrueType
/FontDescriptor 66 0 R
/LastChar 255
/Widths[...]
/BaseFont/CKAKNH+FMAbabldBold
/FirstChar 32
/Encoding/WinAnsiEncoding
/Type/Font

即使用WinAnsiEncodingTrueType字体,而不使用ToUnicode映射。

因此,文本提取器被认为作为标题绘制的序列Y%S ,xld m%cd;dka;%sl iudcjd§ ckrcfha .eiÜ m;%h表示字符"Y%S,xld m%cd;dka;%sl iudcjd§ckrcfha .eiÜm;%h",因此PDFTextStream返回该字符串。

显示的象形文字显示不同的字符,这是因为嵌入式字体文件对那些看起来完全不同于"Y%S,xld m%cd;dka;%sl iudcjd§ckrcfha .eiÜm;%h“的字体具有图形绘制指令。

我怎样才能得到pdf的确切内容?

使用OCR。

票数 3
EN

Stack Overflow用户

发布于 2014-09-12 10:25:33

根据雪潮文档(http://downloads.snowtide.com/javadoc/PDFTextStream/2.3.2/index.html?pdfts/examples/XMLFormExport.html ),PDFTextStream支持所有单字节和双字节的Unicode字符集.

据我所知,僧伽罗的大部分字符都是三个字节。这就是问题所在

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25805136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档