Lou*_*Lou 7 printing graphics wolfram-mathematica
我想画一个矩形(或更多),印在纸上显示矩形,单位为厘米.所以
Graphics[{Rectangle[{0, 0}, {19, 28}], Orange, Rectangle[{0, 0}, {1, 1}]}]
Run Code Online (Sandbox Code Playgroud)
将打印为两个矩形,可以测量为1厘米x 1厘米(橙色一个),黑色矩形为19x28厘米.
似乎有些变量很重要:ImageSize当然还有AspectRatio.
我使用AspectRatio->19/28和用于ImageSize各种设置,ImageSize->{19*27,28*27}但它一直不是很准确.
我将图形导出为TIFF,然后使用Windows照片库打印到整页照片.有任何人对此有经验吗?必须有一个公式而不是反复试验.
更新:我尝试了@Szabolcs的建议,我使用了以下代码:
g = Graphics[{White, EdgeForm[Directive[Thick, Black]],
Rectangle[{0, 0}, {18, 28}], Orange, Rectangle[{0, 0}, {10, 10}]}]
final = Show[g, AspectRatio -> Automatic,
PlotRange -> {{-0.5, 18.5}, {-0.5, 28.5}}]
cm = 72/2.54
Export["final.pdf", Show[final, ImageSize -> {19 cm, 29 cm}]]
Run Code Online (Sandbox Code Playgroud)
这非常有效.10x10cm的橙色矩形是精确测量10x10cm
cm 72/2.54的值不是我预期的,因为我虽然Windows使用96dpi和Mac 72dpi(从www读取).然而,72是有效的价值.我也一直在玩框架,但后来变得丑陋.没有找到一种方法来获得正确的结果,以及所有可能的设置.应该在选定的边界内自己创建框架/刻度等,但这不是我想要追求的路径.
g = Graphics[{Rectangle[{0, 0}, {19, 28}], Orange, Rectangle[{0, 0}, {1, 1}]}]
Run Code Online (Sandbox Code Playgroud)
好的,您需要做的第一件事就是设置x和y使用相同单位的方向,这意味着
Show[g, AspectRatio -> Automatic]
Run Code Online (Sandbox Code Playgroud)
但这已经是默认值.
您需要做的第二件事是选择绘图区域的大小和范围.让你的矩形居中于21乘30:
plotArea = {{0, 21}, {0, 30}} - {1, 1}
Show[g, AspectRatio -> Automatic, PlotRange -> plotArea]
Run Code Online (Sandbox Code Playgroud)
您需要做的第三件事是关闭添加任何填充/边距,使图形的实际尺寸大于绘图范围:
final = Show[g, AspectRatio -> Automatic, PlotRange -> plotArea, PlotRangePadding -> 0, ImagePadding -> 0]
Run Code Online (Sandbox Code Playgroud)
我相信ImageMargins没有区别,但如果确实如此,那么也将它设置为0.
您需要做的最后一件事是将其导出为可保留图像尺寸的可打印格式,并设置图像的大小,使得1 cm在绘图上为1个单位.Mathematica接受打印机点的图像尺寸,所以让我们定义:
cm = 72/2.54
Export["final.pdf", Show[final, ImageSize -> 21 cm]]
Run Code Online (Sandbox Code Playgroud)
我们希望情节宽21厘米,因为它宽21个.使用PDF作为导出格式,而不是TIFF.在ImageSize被内部使用需要Show解决一些问题Export...
现在在Adobe Reader中打开PDF,打开打印对话框,确保Page Scaling设置为None!我不知道如何在其他读者中这样做...还要确保你的身材适合纸张(21 x 30厘米对于A4来说太大了)
我不打算做测试打印,所以让我知道这是否适合你:-)这样生成的PDF大小正好是21 x 30厘米,所以如果出现问题,必须在打印时发生阶段.
| 归档时间: |
|
| 查看次数: |
1164 次 |
| 最近记录: |