是否有.dll我可以使用.pdf文件作为输入和.html文件作为输出?我想将.pdf转换为.html.我的同事说,逐步进行,从pdf获取文本/字体/图像/边距/链接等,然后创建具有相同内容的新html文件非常困难.他说这几乎是不可能的.所以我在想 - 如果有一些dll我可以作为参考来做到这一点?
我正在使用iTextSharp和reader.GetPageContent方法从PDF中提取文本.我需要找到文档中找到的每个单词的矩形/位置.有没有办法使用iTextSharp获取PDF中单词的矩形/位置?
我必须从发票和账单pdf文件中提取文本
文件布局可能变得复杂,尽管它主要是填充表格.
我已经阅读了几篇关于pdf格式的文章,我们的大脑掌握它的难易程度以及机器理解其结构的难度.
还下载了一些像python的pdfminer和一些java工具的工具,有些甚至有基于规则的布局提取,就像LA-PDBtext这些都是很棒的库,让你走最后一步.
Adobe还有一个名为exportPdf的在线服务,但无法自定义
最重要的是,据我所知,为了从结构化的pdf文件中提取文本并将其转换为XML,应该有一定程度的手工工作.
我还发现了From Data Extractor,这是一个非免费工具,可以设置声称可以完成工作的提取规则,虽然很难找到合适的手册,但它只在Windows上运行.
我想我甚至可以尝试将这些文件转换为图像并尝试tesseract-ocr,但在我花更多时间之前决定在这里寻求建议.
如果有经验的人给我一个暗示,我将非常感激.
我正在尝试使用C#中的itextsharp 读取此 PDF文件,它将此pdf转换为word文件.当我尝试使用英语时,它还需要保持表格形式和单词字体pdf它可以完美地工作但是使用一些印度语,如印地语,马拉地语它不起作用.
public string ReadPdfFile(string Filename)
{
string strText = string.Empty;
StringBuilder text = new StringBuilder();
try
{
PdfReader reader = new PdfReader((string)Filename);
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);
text.Append(currentText);
pdfReader.Close();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
textBox1.Text = text.ToString();
return text.ToString(); ;
}
Run Code Online (Sandbox Code Playgroud) 我使用此代码使用iTextSharp读取pdf内容.当内容是英语时它工作正常,但是当内容是波斯语或阿拉伯语时它不起作用
结果是这样的:
这里是非英语PDF样本用于测试.
ÙŽÙ>ناÙÙ"بÙÙØ·Ø«ÛŒØ¿ÛŒÙ>Ù~Ø²ØØØ§ÙÙ>ÙØÙ"Ù,Ù>Ù...ØÛÛÙ"بٕس©Karl Seguin foppersian.codeplex. com www.codebetter.com 1 1ÙÙ"ب~طثَÙ>نایؿیÙ>Ù〜
Run Code Online (Sandbox Code Playgroud)همانرب لوصا یسیون مرن دیلوت رتهب Ø±Ø§Ø²ÙØ§
解决办法是什么 ?
public string ReadPdfFile(string fileName)
{
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(Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.UTF8.GetBytes(currentText)));
text.Append(currentText);
pdfReader.Close();
}
}
return text.ToString();
}
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试从PDF文件中自动提取重要的关键字.我能够从PDF文档中获取文本信息.但现在我需要知道这些关键字具有哪种字体大小和字体系列.
我已经拥有以下代码:
主要
public static void main(String[] args) throws IOException {
String src = "SEM_081145.pdf";
PdfReader reader = new PdfReader(src);
SemTextExtractionStrategy semTextExtractionStrategy = new SemTextExtractionStrategy();
PrintWriter out = new PrintWriter(new FileOutputStream(src + ".txt"));
Rectangle rect = new Rectangle(70, 80, 490, 580);
RenderFilter filter = new RegionTextRenderFilter(rect);
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
// strategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), filter);
out.println(PdfTextExtractor.getTextFromPage(reader, i, semTextExtractionStrategy));
}
out.flush();
out.close();
}
Run Code Online (Sandbox Code Playgroud)
我已经实现了TextExtraction策略SemTextExtractionStrategy,如下所示:
public class SemTextExtractionStrategy implements TextExtractionStrategy {
private …Run Code Online (Sandbox Code Playgroud) 我的目标是从PDF中检索可能在表格结构中的数据到excel文件.
使用带有iTextSharp的LocationTextExtractionStrategy,我们可以以纯文本形式获取字符串数据,页面内容从左到右.
我怎样才能在这期间向前迈进
PdfTextExtractor.GetTextFromPage(reader,i,new LocationTextExtractionStrategy())
我可以使文本在结果字符串中保留其坐标.
例如,如果pdf中的第一行文本右对齐,则结果字符串必须包含尾随空格或空格,以保持内容右对齐.
请提出一些建议,我将如何继续实现同样的目标.