从PDF中提取文本并将其保存到数据库 - 保留间距

时间:2010-09-02 12:55:03

标签: pdf text crystal-reports formatting fonts

我有一个PDF文档,其中只包含需要保存到MSSQL中的varchar列的文本。第一个问题是PDF中的文本间距也需要保留,这不能简单地通过从PDF复制粘贴到SSMS中来完成。

好的,所以我需要一个应用程序来将PDF作为文本阅读,同时保留间距。但现在第二个问题出现了:PDF以Helvetica字体呈现,但保存在数据库中的文本将在Crystal报表(Crystal 8 ...... bleh)的Arial中显示,并且在显示时,它需要看起来像PDF(即相同的对齐方式)尽可能。

我提出的解决方案是将PDF转换为矢量图像,将生成的字节流保存到DB中,然后通过Crystal拉入字节。不幸的是,由于时间限制,现在无法实现,所以我需要一个快速而肮脏的解决方案。

基本上,一旦我从PDF中获得了Helvetica版本,我就不得不用间距将其转换为在Arial中看起来正确。我需要一个可以为我做这个的工具,因为我没有时间写一个 - 任何建议?

2 个答案:

答案 0 :(得分:0)

您的Crystal版本是否处理动态图像位置?如果是这样,您可以保存PDF的图像(我确定这里有一个实用工具),并在Crystal Report中创建一个图像对象,其图像位置设置为您想要的任何PDF。

答案 1 :(得分:0)

我担心这是一个用户教育问题:Arial字体的输出与Helvetica字体的输出间隔不同。这需要向用户解释。

提到宁可之门 - http://en.wikipedia.org/wiki/Rathergate - 可能有助于说服他们;基本上,Dan Rather的职业生涯结束了,因为他不理解不同字体中字符间距的重要性。 (/过简化)

另一种方法可能是使用字体编辑器,以保存具有Helvetica间距属性的Arial字体版本,然后在报告中使用这种新字体 - 这真的是一个kludge,它看起来很糟糕,可能会违反font的版权(可能是微软拥有的)。我真的不推荐它。