确定属性,例如在iTextSharp中PDF是Simplex还是Duplex

本文关键字:PDF Simplex Duplex 还是 iTextSharp 属性 | 更新日期: 2023-09-27 17:59:23

我正在使用iTextSharp阅读和管理PDF文档。例如为背景或徽标和背景冲压覆盖物。PDF是声明文件,所以我不能举一个例子。我想知道如何查看PDF的设置,看看PDF文件是Simplex还是Duplex,以及诸如此类的信息。如有任何帮助或建议,我们将不胜感激。目前,我测试第二页的某些标准,这是一种糟糕的方法。提前感谢,编码快乐!

确定属性,例如在iTextSharp中PDF是Simplex还是Duplex

双工模式存储在文档的/ViewerPreferences字典中的/Duplex键下。它支持三个值,/DuplexFlipLongEdge/DuplexFlipShortEdge/Simplex。您可以使用以下代码来检查:

//Assume false by default since this was introduced in PDF 1.7
Boolean isDuplex = false;
//Bind a reader to our file
using (var r = new PdfReader(testFile)) {
    //Get the view preferences
    var prefs = r.Catalog.GetAsDict(PdfName.VIEWERPREFERENCES);
    //Make sure we found something
    if (prefs != null) {
        //Get the duplex key
        var duplex = prefs.Get(PdfName.DUPLEX);
        //Make sure we got something and it is one of the duplex modes
        isDuplex = (duplex != null && (duplex.Equals(PdfName.DUPLEXFLIPLONGEDGE) || duplex.Equals(PdfName.DUPLEXFLIPSHORTEDGE)));
    }
}

两年后我知道了,但我只是花了几个小时搜索,找到了这个。。。但最终发现。。。

我创建了一个运行此脚本的按钮(如果可用,会弹出双面打印预选的打印机对话框…请注意,选择另一台打印机会擦除此预选。如果您按此方式翻转,也会将"长"更改为"短"…q8)

var pp = this.getPrintParams(); pp.DuplexType = pp.constants.duplexTypes.DuplexFlipLongEdge; this.print(pp);