我需要为我的LaTeX文档绘制一些图片,我发现手工制作的PostScript看起来很合适(我想以编程方式做事,需要数学函数等).我也试过TikZ,但这看起来过于复杂,难以使用.
但是,使用普通的标准PostScript有点痛苦,因为绘制形状实际上没有任何标准功能(例如甚至不是矩形).
是否有任何PostScript库包含常见形状的功能并使生活更轻松?在我看来这个问题应该是相当普遍的.
或者我应该跳过PostScript并转向一些优秀的系统?哪一个?
我发现了将多个PDF转换为几个PDF到Postscript的多个选项,但许多是具有命令行限制的命令行程序(此应用程序存在于.NET上).
我们的应用程序生成数万个需要发送到打印机的PDF,除非在打印Postscript之前我们需要编辑Postscript以插入打印命令说明(双面打印,托盘拉动,突出显示颜色等)
我认为一个完美的解决方案可能允许我们将PDF写入流,同时允许我们读取输出流,以便我们可以在将Postscript写入文件之前对其进行编辑.
当然,如果我必须首先创建包含所有10,000个PDF的文件并在另一个传递中编辑它,我也可以.
我应该提到速度很重要.我需要一次打印10,000张,但需要让打印机保持24小时/天的忙碌状态.
我正在寻找PostScript代码来估计PostScript字体的高度(上升空间)和深度(下降空间).字体的边界框(FontBBox)可以用于此吗?`
以下是我的问题的一些背景:字体的字形位于基线上.显然,具有下行的字形将达到基线以下,我想知道基线下降器可以到达多远,以便我可以在布局中提供足够的空间.
我见过PostScript代码,它呈现给定字符串以检查其维度.我对给定字体的一般答案很感兴趣.
我正在使用"pdftops"将.pdf文件转换为.ps文件,然后使用"ps2pdf"转换为反向过程(poppler-utils).问题是,当从.ps文件创建.pdf文件时,文本看起来没问题,但是当我尝试复制它时,字符非常奇怪(就像它们被破坏一样).我在其他文件上使用这些工具很长一段时间,它工作正常.我还尝试了"pdftohtml -xml"来创建.xml文件,文本正常(字符被正确提取).
编辑:输出"pdffonts original.pdf"

输出"roundtripped.pdf"

我正在尝试制作自己的网格(看起来非常像这样:http: //tinyurl.com/cdyre6k-以公制单位为毫米的心电图纸).
我正在使用ReportLab/Python(opensource)来制作这些报告.下面是我的代码片段.
在屏幕上,它看起来很棒!:

然而,当我将它发送到打印机时(是的,我也用打印机设置修改)它会打印一些线条,而不是其他线条(有时它是有条不紊的并且打印出图案式格子图案,有时则是更粗/更细的线条;请记住,打印机的输出是一致的,取决于我设置的笔画宽度.
我尝试了各种笔画宽度组合,以及各种打印机设置组合...我无法正确打印!我尝试了另一种打印机并获得了更好的结果,但我必须将打印机设置设置为超过1200 dpi(CAD级别打印).另一台打印机设置为600dpi.在那台相同的打印机(600dpi)上,我打印了一个由前同事制作的文件,打印就好了(请注意,他没有使用ReportLab,所以我不能使用他的代码/解决方案).
到底是怎么回事?这是打印机上的别名问题吗?如果我将网格转换为位图(或其他格式),它会对我有帮助吗?我该如何解决这个问题(我唯一的选择是使用Python和ReportLab)?ReportLab手册没有帮助,"谷歌"没有帮助,而以前的StackExchange问题似乎没有涵盖这一特定主题.如果我将笔画宽度设置为"1",我可以让网格打印所有行,但是后面的网格线太粗了.
最终结果是我正在处理的折线图,我知道ReportLab有图表功能,但reportlabs图表/网格功能不能给我我的项目所需,所以我被迫让我拥有主要/次要线的自己的网格(也许我错过了一些东西,并开放替代技术,但目前它看起来很好的PDF形式,只是不在打印机).
任何建议表示赞赏!
TIA,
-J
for i in decimal_range(0, _time, 1):
if (i % 5.0 == 0):
if (i % 25.0 == 0):
grid_pattern.add(shapes.Line(_temp_x,
(_temp_y + _height_of_box),
_temp_x,
(_temp_y + _height_of_box+4),
strokeWidth=1,
strokeColor=colors.black))
else:
pass
grid_pattern.add(shapes.Line(_temp_x, _temp_y, _temp_x,
(_temp_y + _height_of_box),
strokeWidth=.12,
strokeColor=colors.pink))
else:
grid_pattern.add(shapes.Line(_temp_x, _temp_y, _temp_x,
(_temp_y + _height_of_box),
strokeWidth=.12,
strokeColor=colors.pink))
_temp_x += 1 * mm
_temp_x = xorigin
for i in range(0, _mv, 1):
if (i …Run Code Online (Sandbox Code Playgroud) 我过早地发布了一个代码高尔夫挑战来使用这个数据集(只是茶壶)绘制犹他茶壶.(经过修订和发布的茶壶挑战)但是当我深入研究数据以便掀起一个小例子时,我意识到我不知道这些数据是怎么回事.我对2D中的Bezier曲线有很好的理解,实现了deCasteljau.但对于3D它的工作原理是否相同?
是! 它确实!
数据包含每个包含16个顶点的补丁.这些是如何布局的标准顺序?如果它们对应于2D曲线,则四个角点实际接触表面,其余12个是控制,对吧?
是!
我的"原始计划"是将形状简化为矩形,将它们投影到画布上,然后绘制灰色的填充形状,通过与光矢量垂直的贴片的点积计算.如果我将它简化到那么远,它甚至会看起来像茶壶吗?是否必须使用光线追踪来获得可识别的图像?
这是主观的.:-(
虽然这可能看起来像几个问题,但它们都是这一个问题的所有方面:"请,请好的Guru,在一些Bezier Patches上学习我?我需要知道什么才能画出茶壶?"
这是我到目前为止编写的代码.(使用此矩阵库:mat.ps)
%!
%%BoundingBox: 115 243 493 487
%-115 -243 translate
(mat.ps)run %include matrix library
/tok{ token pop exch pop }def
/s{(,){search{ tok 3 1 roll }{ tok exit }ifelse }loop }def
/f(teapot)(r)file def
/patch[ f token pop { [ f 100 string readline pop s ] } repeat ]def
/vert[ f token pop { [ f 100 string readline pop s …Run Code Online (Sandbox Code Playgroud) 我注意到Boost精神提供了一些限制,在这里的一个问题上有一个用户请求有关提升精神的帮助,另一个用户给出了答案指定,提升精神适用于语句而不是"通用文本"(I对不起,如果我没记错的话.
现在我想用令牌来考虑Postscript和PDF,并以这种方式简化我对这种格式的处理方式,问题在于PDF是标记语言和编程语言之间的混合,其中包含跳转和表格,在考虑最流行的文件格式(如XML,C++代码和其他语言和格式)时,我无法想到类似的东西.
还有另外一个事实:我真的找不到那些在使用boost :: spirit wiriting pdf解析器或编写器方面有经验的人,所以我问,boost :: spirit它能够解析PDF文件和输出作为代币的元素?
如何pdftk从命令行(或最好从Ruby)使用页面编号添加到预先存在的PDF的底部?
我正在寻找这种格式:
第1页,共2页
第2页,共2页
我有一个Tkinter画布,上面有服务器矩形,文本和线对象。
我用
.postscript(file='file.ps')
Run Code Online (Sandbox Code Playgroud)
画布的方法。
当我尝试在Windows和Linux上使用ghostscript打开文件时,出现以下错误:
error: undefinedresult in stringwidth
Run Code Online (Sandbox Code Playgroud)
您对此有什么解决方案?
谢谢!
编辑:我正在使用python2