是否可以使用C#中的iTextSharp修改PDF中的专色名称,它只是需要更改的颜色名称。
答案 0 :(得分:4)
因此,您有一个使用某些专色的现有PDF,例如名为“ABC”的颜色,并且您希望操作该PDF以使其名称为“XYZ”。
这是可能的,但它需要低级别的PDF语法操作。
您需要创建一个PdfReader实例,查找定义专色的字典,更改名称,然后使用PdfStamper根据更改的PdfReader实例创建新文件。
关于如何回答您的具体问题,没有“现成的”示例(我怀疑其他人,但iText的原始开发人员会回答这样的问题),但您可以通过查看代码示例获得一些灵感来自第二版“iText in Action”的第13章:http://itextpdf.com/book/chapter.php?id=13
请参阅此示例中的manipulatePdf()
方法:http://itextpdf.com/examples/iia.php?id=239
在此示例中,使用上述原理将URL替换为另一个URL。
您需要调整此示例,以便找到存储专色名称的位置的路径,更改该名称并保留更改。
提示:专色颜色名称将在第一个元素是名称(/ Separation)的数组中,第二个条目将是您要更改的名称(这是您要用新名称替换的名称) PdfName
实例),等等。
如何找到这个/ Separation数组?我会遍历页面(getPageN()
方法将为您提供页面字典),获取每个页面的资源(pageDict.getAsDict(PdfName.RESOURCES)
),查找/ Colorspace字典的存在,然后查找所有该词典中的/分色。每当遇到要更改的名称时,请替换第二个元素。
第13章中的示例与ISO-32000-1结合使用(可以从Adobe.com网站下载)将引领潮流。