如何在PostScript中进行调试?我可以在Linux上使用GhostView/GhostScript,但我无法查看堆栈,词典等.
我需要在postscript中确定字符串的高度(以给定的比例和字体).
/Helvetic-Oblique findfont
10 scalefont
setfont
10 10 1 0 360 arc fill
10 10 moveto (test) dup stringwidth pop 2 div neg 0 rmoveto show
Run Code Online (Sandbox Code Playgroud)
将在(10,10)水平(但尚未垂直)打印测试.(看到这个,我还在10,10处显示一个小圆圈).我还需要确定字符串高度以使文本垂直居中,但我无法找到它的功能.
我正在开发一个UNIX系统,我想将数千个PDF文件合并到一个文件中以便打印它.我不知道他们提前有多少页.
我想双面打印,这样两个文件就不会在同一页面上.
因此,我将合并文件对齐,使得每个文件将以奇数页开始,如果下一个要写的页是偶数页,则将添加空白页.
有没有免费的方法来查看android上的postscript文件?我无法在网上找到解决方案,但肯定有很多人必须要这样做.
我试图将R图保存为EPS文件,但我对图的以下组件有问题 - 灰色透明多边形(透明黑=灰色效果):
polygon(x.polygon, y.polygon.6, col="#00000022", border=NA)
Run Code Online (Sandbox Code Playgroud)
将这个代码保存为PDF而不是EPS时,这行代码可以正常工作.看起来EPS不支持透明度?我还有其他选择吗?
以下是完整情节的代码:
postscript(file="Figure.eps", width=5.5, height=5.5, onefile=F, horizontal=F)
ts(t(data.frame(initial_timepoint, second_timepoint, third_timepoint, final_timepoint)))->obj
obj[,-c(3,7)]->obj1
plot(obj1, plot.type="single", lwd=0.6, xaxs="i",yaxs="i",xlab="",ylab="LV ejection fraction (%)",xaxt='n',yaxt='n',ylim=c(0,70),col="black")
axis(1, at=c(1,2,3,4), labels=c("1","2","3","4"),cex.axis=1)
axis(2, at=seq(0,70,10), labels=c("0%","10%","20%","30%","40%","50%","60%","70%"),cex.axis=1, las=1)
abline(v=c(2,3),lwd=0.6,lty=2)
stderr <- function(x) sqrt(var(x,na.rm=TRUE)/length(na.omit(x)))
avg<-c(mean(initial_timepoint,na.rm=T), mean(second_timepoint,na.rm=T), mean(third_timepoint,na.rm=T), mean(final_timepoint,na.rm=T))
err<-c(stderr(initial_timepoint), stderr(second_timepoint), stderr(third_timepoint), stderr(final_timepoint))
my.count <- c(1,2,3,4)
my.count.rev <- c(4,3,2,1)
y.polygon.6 <- c((avg+err*1.96)[my.count],(avg-err*1.96)[my.count.rev])
x.polygon <- c(my.count, my.count.rev)
polygon(x.polygon, y.polygon.6, col="#00000022", border=NA)
lines(avg,col="black",lwd=0.8,lty=3)
lines((avg+err*1.96),lwd=0.8,lty=3)
lines((avg-err*1.96),lwd=0.8,lty=3)
dev.off()
Run Code Online (Sandbox Code Playgroud) 无论如何在PostScript中使用unicode字符串(最有可能是UTF-8,但可能是任何编码)?
到目前为止,我一直在使用此函数将字体转换为Latin1编码:
/latinize {
findfont
dup length dict begin
{ 1 index /FID ne {def}{pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict
end
definefont pop
}bind def
/HelveLat /Helvetica latinize
/HelveLatbold /Helvetica-Bold latinize
Run Code Online (Sandbox Code Playgroud)
但我真的不喜欢它.
您可以使用当前字体获取字符串的宽度,stringwidth虽然这实际上会推动堆栈上的偏移坐标,但y值似乎总是无用的.有没有办法确定字符串的确切高度,可能包括也可能不包括下行链接?
在后记中,roll操作员非常通用且难以可视化.你如何确保你正朝着正确的方向前进?
我希望得到一个可靠的处理,roll因为我希望能够使用变量转换函数
/f { % x y z
/z exch def
/y exch def
/x exch def
x dup mul
y dup mul
z dup mul add add % x^2+y^2+z^2
} def
Run Code Online (Sandbox Code Playgroud)
使用堆栈操作进入函数,更像是
/f { % x y z
3 1 roll dup mul % y z x^2
3 1 roll dup mul % z x^2 y^2
3 1 roll dup mul % x^2 y^2 z^2
add add % x^2+y^2+z^2
} def
Run Code Online (Sandbox Code Playgroud)
要么
/f { % …Run Code Online (Sandbox Code Playgroud) 运行embedFonts我创建的一些EPS文件,我收到一条错误消息:
> embedFonts("foo.ps")
Unknown device: pswrite
Unrecoverable error: undefined in .uninstallpagedevice
Operand stack:
defaultdevice
Error in embedFonts("foo.ps") :
status 1 in running command 'gs -dNOPAUSE -dBATCH -q -dAutoRotatePages=/None -sDEVICE=pswrite -sOutputFile=/tmp/Rtmp3Lv0dj/Rembed2cd86df573a1 '-sFONTPATH=' 'foo.ps''
Run Code Online (Sandbox Code Playgroud)
我怎样才能避免这个错误?
我想从PDF文件中删除所有图像.
页面布局不应更改.所有图像都应该用空格替换.
postscript ×10
ghostscript ×4
fonts ×2
pdf ×2
r ×2
android ×1
debugging ×1
metrics ×1
plot ×1
string ×1
transparency ×1
unicode ×1
unix ×1