我正在使用iText 7
library(v7.0.5.0)。我从中的
。RadDiagram
(Telerik library)创建了一个PDF文件(a-1B一致性)。Net
生成PDF文件时,在其属性(Acrobat Reader
我可以看到有很多同名的重复字体。
如果我将文件从Acrobat Reader保存到“简化PDF文件”,所有重复的字体都将被清除,每个字体名称只保留一种字体。
我寻找一个解决方案,通过编程删除这些重复字体,因为这些重复字体会显著增加PDF文件的大小。使用Acrobat Reader压缩,文件大小从2.2个月减少到906千欧(无质量损失)。
你可以在这里找到我的PDF文件的一个例子。
这个文件有:
这是一个例子,但有时,我的文件非常大,例如,压缩将大小从16个Mo减少到1个Mo,因为有很多重复的字体。
[编辑]关于我的用例:
从RadDiagram
Telerik对象,我将它们导出到一个PDF文件中,就像图像一样。此PDF文件(只有1页)被序列化为Bytes()
,并保存到数据库中。在一个特定的步骤中,所有序列化的PDF都被合并成一个全局PDF文件。显然,问题在于我保存每个PDF文件时,因为每次创建时,我都将此代码称为:
_pdfFont = PdfFontFactory.CreateFont(FONT_PATH_ARIAL, PdfEncodings.IDENTITY_H, True)
声明:
Private Const FONT_PATH_ARIAL As String = "c:\windows\fonts\Arial.ttf"
Private _pdfFont As PdfFont
_pdfFont
对象在每个SetFont()
方法中被调用。
但是创建步骤很重要,因为当我关闭de Document对象时,这一步需要知道字体,我只为它创建了字体。
最后,这是相同的字体(它们具有相同的名称),但每种字体不合并,所以它们被添加到全局PDF文件中。
[结束编辑]
多谢了。
最后,我找到了另一种保存PDF文件的方法。
现在,我不将它们保存到数据库中,我只使用1个PDF文件,我正在使用PDF字体的字典来重新使用它们,而不是声明几个时间字体,所以不要增加使用字体的数量(即使这是相同的字体(与另一个子集))。
我现在试图修改一个只有文本内容的PDF文件。当我使用 谢谢
问题内容: 有没有一种方法可以使用ant删除重复文件?具体来说,如果我在两个不同的输出目录中具有相同的文件名,则要从第二个目录中删除它。 问题答案: 我想我想出了一个解决方案。
问题内容: 作为我正在做的项目的一部分,我想清理我生成的重复行条目的文件。但是,这些重复项通常不会彼此靠近发生。我想出了一种用Java执行此操作的方法(基本上是复制文件,然后使用嵌套的while语句将一个文件中的每一行与其他文件中的每一行进行比较)。问题是我生成的文件很大而且文本很重(大约22.5万行文本,大约40兆)。我估计目前的程序需要63个小时!这绝对是不可接受的。 但是,我需要一个集成的解
我正在尝试将字体嵌入到我的pdf/a中。 我找到了很多答案,但使用的是iTextSharp 在我的cas中,我使用iText7,但我所尝试的都是错误的: “所有字体都必须嵌入……” 我有一个ttf文件为我的字体,但我没有找到一种方法嵌入到我的pdf使用它... 有人能帮我吗? 事先谢谢 kor6k
问题内容: 如何使用Java删除字符串中的重复空格(包括制表符,换行符,空格等)? 问题答案: 像这样: 例如 输出 那是什么意思 是一个正则表达式。匹配空格,制表符,换行符,回车符,换页或垂直制表符,并说“其中的一个或多个”。因此,以上代码将用一个空格字符折叠所有长于一个字符的“空白子字符串”。
问题内容: 以下示例: 如何删除后两个重复项和? 结果应该看起来像 仅应删除第二个重复项,并且不应更改单词的顺序! 问题答案: