【发布时间】:2014-03-08 03:53:08
【问题描述】:
我有一个生成 PDF 文件的应用程序。我想实现这一点:某些页面将使用普通纸打印(存在于特定的打印机托盘中),而其他页面将使用特殊的不干胶纸打印(来自另一个打印机托盘)
如果 PDF 文件本身可以包含这些在打印时读取的信息,它会解决问题,但我认为这是不可能的。
我设法检查了 PDF 并生成了一个包含其规范的文件。这是一些代码:
sw = New StreamWriter(File.Open(DATOutputFile, FileMode.Create))
sw.WriteLine("Zustell".PadRight(20, " ") & ZustellPages(0))
Dim i As Integer
Dim aux = ""
For i = 0 To AddressPages.Count - 2
aux = aux & AddressPages(i) & ","
Next
aux = aux & AddressPages(i)
sw.WriteLine("Adressen".PadRight(20, " ") & aux)
aux = ""
For i = 0 To BotenPages.Count - 2
aux = aux & BotenPages(i) & ","
Next
aux = aux & BotenPages(i)
sw.WriteLine("Botenbezirk".PadRight(20, " ") & aux)
aux = ""
For i = 0 To Etiquetas.Count - 2
aux = aux & Etiquetas(i)(0) & "-" & Etiquetas(i)(1) & ","
Next
aux = aux & Etiquetas(i)(0) & "-" & Etiquetas(i)(1)
sw.WriteLine("Label".PadRight(20, " ") & aux)
sw.Close()
此位创建一个如下所示的文件:
也就是说,我知道哪些页面包含标签、地址等。在订购打印时,每个页面都指定到不同的打印机托盘。
如何做到这一点?
我可以从 PDF 或在创建 Crystal 报告时创建带有托盘规格的后期脚本文件吗?
编辑:
我从 PDF 创建了一个 PS 文件,在每个页面的规范开头,有这样的内容:
%%Page: 11 72
%%BeginPageSetup
%%PageBoundingBox: 0 0 596 842
%%PageOrientation: Portrait
%%EndPageSetup
%%<!--LARADOCID--xx/10000000/E/0000011-->
<< /MediaPosition 3 /TraySwitch false >> setpagedevice
<< /PageSize [595 842] /ImagingBBox null >> setpagedevice
STARTP
我想在这里插入一些代码来指定用于该页面的托盘,但是我不知道该怎么做。
【问题讨论】:
标签: vb.net pdf printing postscript