我正在尝试理解我使用打印机以编程方式进行通信的选项,以便从应用程序软件中打印出来.换句话说,当用户告诉我的应用程序他们想要打印某些内容时会发生什么.我理解它在"旧时代"的运作方式,并试图了解更复杂的现代世界.
在过去,有两种主要类型的打印机:HP打印机,它们了解HPGL和Postscript打印机.因此,您可以使用这两种语言之一发送打印件,打印机会将您的代码转换为页面上的点.您还可以将位图嵌入为二进制数据.例如,在HPGL(或PCL)中,您可以给出一个基本上说"请打印此位图,这里是栅格数据"的命令,然后是一个巨大的二进制数据块.显然,如果你这样做,进入打印机的数据量会更多,并且可能会阻塞打印机.Postscript具有相同的能力.如果您打印文本,您可以告诉打印机在字体TimesNewRoman(或其他)中打印文本"xyz",打印机将为您计算所有点(这意味着打印机必须知道字体,
现在,据我所知,PDF格式与Postscript类似,但它不是像Postscript这样的语言,只能包含"对象".因此,例如,在Postscript中,您可以制作一个循环并说"打印此圆圈50,000次",移动其确切位置.在PDF中,我的理解是你不能这样做,你必须将每个圆圈指定为一个单独的"对象".
那么,现代打印机如何工作?我还可以将HPGL/PCL发送到打印机吗?所有打印机现在都标准化了Postscript吗?如果是这样,这是否意味着我最好的选择是生成Postscript,然后将原始数据发送到打印机?如果我发送Postscript,我是否必须以某种方式告诉打印机它是Postscript?
在Windows中,我知道打印的"标准"方式,即查询设备功能和请求设备上下文,然后您可以使用该上下文的Windows调用绘制线条,形状和文本.然而,与Postscript(或HPGL/PCL)相比,这显然非常原始.有没有办法可以直接与打印机驱动程序通信,或者告诉Windows:"这是我的Postscript代码,请将其传递给打印机进行打印"?
我在内存中(在Java Tomcat webapp中)有Postscript代码/数据(?),我想直接发送到网络PS打印机.是否有一种简单的方法(即只是弹出一个端口并发送文本)来打印它,绕过所有O/S特定的驱动程序和东西(希望甚至不需要额外的罐子)?指向示例代码的链接显示了如何执行此操作?
谢谢,戴夫
我的操作系统是Windows 7 32位.我安装了RedMon1.7,Ghostscript 8.71和GSview 4.9 ; 安装成功.我在Windows 设备和打印机中添加了新的本地打印机,单击了" 创建新端口",然后从" 端口类型"列表中选择了" 重定向端口 " .单击Next并在Add New Port窗口中命名为RPT1:并单击OK,但它显示无法添加指定端口.操作无法完成(错误0x00000001)
我尝试给端口提供不同的名称,RPT2:,RPT4:,VPport:等但都给出了相同的结果.已禁用Windows防火墙但已尝试但仍会出现相同的错误,已禁用防病毒软件(Avira)但未进行任何更改.
什么可以阻止Windows 7添加重定向端口?
顺便说一下,我按照本教程中的说明创建了一个postscript打印机.
http://www.stat.tamu.edu/~henrik/GSPSprinter/GSPSprinter.html
欣赏任何想法或建议.谢谢
我正在使用包含Matlab绘制的数字到LaTeX中.我通常的工作流程如下:
重点:当我尝试在轴标签,图例,标题等非ASCII字符中使用时(确切地说:波兰国家字符,例如''',''',''','ć')编码在Matlab图编辑器很好,字符显示正常.在输出到.eps后,它们都是错的(例如:"Głębokość"变成"G³êbokoœæ").
是否存在通过调整Matlab选项或更改工作流程来正确执行此操作的方法?
注:我发现,出口png格式或其他非矢量格式正确处理字符编码,但我想避免这样做是 -我要求的方式,以"保持载体".直接导出到.pdf会产生与.eps相同的效果,例如它会产生错误的结果.
PS.Matlab是R2008a,.latex文件是用pdflatex编译的,带有来自MikTeX 2.9的epstopdf的.eps文件(全部在Win7下).
我有进口一些Python模块,如Python脚本bs4,json,os,requests,signal,sys,和time.有时我在PWD中注意到以下文件:
$ ls -la
-rw-rw-r-- 1 dotancohen dotancohen 12429677 Jun 26 11:37 bs4
-rw-rw-r-- 1 dotancohen dotancohen 12291853 Jun 26 11:36 json
-rwxrwxr-x 1 dotancohen dotancohen 1681 Jun 26 11:51 my-app.py
-rw-rw-r-- 1 dotancohen dotancohen 12291851 Jun 26 11:36 os
-rw-rw-r-- 1 dotancohen dotancohen 12291855 Jun 26 11:36 random
-rw-rw-r-- 1 dotancohen dotancohen 12291851 Jun 26 11:36 re
-rw-rw-r-- 1 dotancohen dotancohen 12429682 Jun 26 11:38 …Run Code Online (Sandbox Code Playgroud) 我安装ghostscript并更新了相应的path variables...但是,当我尝试执行此命令时出现错误:
C:\PROGRA~1\gs\gs8.64\lib>pdf2ps mydocument.pdf mydocument.ps
Access is denied.
Unable to open command line file _.at
Run Code Online (Sandbox Code Playgroud)
这是正确的命令吗?我错过了一些配置或路径设置吗?否则,是否有一种理智的方法来进行这种转换?
gs -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH \
-sDEVICE=pdfwrite -sOutputFile=output.pdf input.pdf
Run Code Online (Sandbox Code Playgroud)
我正在使用(尝试无论如何)使用Ghostscript来减少我的PDF文件大小.上面的命令看起来像它的工作,它大大减少了文件大小,但随后几个字段出现乱码.至于我可以追踪它,它正在进行字体替换.IE,同一文本=相同的乱码文本.
当它到达我时,字体嵌入在PDF中.另外,我试图将所有字体添加到Fontmap中.
任何想法,理想情况下我希望它使用嵌入式字体,而不必更新gs系统字体/编辑字体图等.我正在使用Ubuntu 9.10和嵌入的字体是Windows字体,Arial/TimesNewRoman.
谢谢.
我通常可以使用ghostscript将PDF转换为PNG:
gs \
-q \
-dNOPAUSE \
-dBATCH \
-sDEVICE=pnggray \
-g2550x3300 \
-dPDFFitPage \
-sOutputFile=output.png \
input.pdf
Run Code Online (Sandbox Code Playgroud)
但这对某些PDF文件不起作用.例如,上面的命令将此PDF文件转换为此PNG - 原始PDF只是PNG左下角的一个小图像,而不是填充整个页面.
有没有更强大的方法使用ghostscript或其他一些命令行工具将PDF转换为PNG?
注意:如果我在OS X上预览中通过"print - > save as pdf"生成有问题的新PDF文件,那么命令工作正常.
我转换PDF - >许多JPEG和许多JPEG - >许多PDF使用ghostscript.我需要在每个转换的JPEG(PDF)页面上添加水印文本.是否可以只使用Ghostscript和PostScript?
我找到的唯一方法:
gswin32c -q -sDEVICE = pdfwrite -dBATCH -dNOPAUSE -sOutputFile = output.pdf watermark.ps input.pdf
但这将watermark.ps在第一个单独的页面上插入水印output.pdf.
我可以直接在输出PDF页面上执行此操作吗?
我可以直接在输出JPEG页面上执行此操作吗?
<<
/BeginPage
{ gsave
/Helvetica_Bold 120 selectfont
.85 setgray 130 70 moveto 50 rotate (Sample) show
grestore
} bind
>> setpagedevice
Run Code Online (Sandbox Code Playgroud)
如果我使用/EndPage而不是/BeginPage- 它说不setpagedevice适用...
如何重新制作此脚本/EndPage?