如何将Inkscape SVG文件导出为PDF并保持图像的完整性?


41

无法让Inkscape干净地导出PDF,并且似乎没有很多有用的资源。尤其是,透明胶片很困难-有时透明度会消失,有时会变成固体。

我在Inkscape中摆弄了“另存为PDF”设置,并使用CutePDF将PDF打印为PDF,但没有成功。是否有某种导出或创建文件的方法,以便可以得到可预期的结果?


希望@ DA01将在这里插入。他对Inkscape非常熟悉。
艾伦·吉尔伯森

我不会说得很深...但是我是它的粉丝。我不知道答案,但我的猜测是SVG和PDF只是不同的文件格式,并且支持每个规范的不同部分。SVG在透明度,模糊,混合等方面可以做很多事情,我认为PDF尚不支持。您可能必须首先通过Adobe Illustrator运行SVG,以希望AI将其转换为PDF满意的格式。
2012年

自从提出此问题以来,Inkscape已经进行了一些更新。我很想知道这种情况现在处于什么位置,并且想知道SVG到PDF转换的特定部分是否仍然存在问题。
Scribblemacher

Answers:


21

Inkscape(v.0.91)支持命令行选项,因此我更喜欢这样做:

inkscape --file=mySVGinputFile.svg --export-area-drawing --without-gui --export-pdf=output.pdf

实际上,这是LyX用于准备在LaTeX中使用的SVG图像的命令。我已使用PlantUML生成SVG,然后将其转换为PDF。

这是inkscape中SVG的屏幕截图,其中具有纯矢量表示形式(包括字体)。

Inkscape中的SVG

这是放大的PDF的屏幕截图,从单词循环中选择了文本“ oo”,表明它仍然是PDF中的文本:

PDF在Acrobat中


1
这很好。仅供参考,Mac OS命令行工具位于:/Applications/Inkscape.app/Contents/Resources/bin/inkscape- --file=/My/File.svg在其后插入您的等等。
Demis

我使用自定义的base64字体对其进行了测试,但是Inkscape(0.92)显然不支持它。
xamid '18

8

其实,这已被要求,并回答了在这里的Linux用户。

您需要安装librsvg2-bin。我只是补充说,您需要将页面适合您的svg,否则将被截断。在Inkscape中:文件->文档属性->选择svg对象->适合选择的页面。

然后运行:

rsvg-convert -f pdf in.svg > out.pdf

到目前为止,这是最好的答案:只有一个有效!
Werner

该工具甚至不能保持正确的字体大小,更不用说正确的字体了。
xamid


5

您是否要导出到.PDF以保持编辑功能?否则,如果您试图与Inkscape中的某人共享图像,请将其另存为.JPG或.PNG(如果需要半透明的背景)。


1
过去,尝试另存为PNG / jpeg会大大降低图像的物理尺寸和分辨率。也许我只是做错了?
Zelbinian'2

您是否下载了最新版本的Inkscape?
kamalo'2

@ Zelbinian,SVG没有固有的大小或分辨率。只有当您要导出为PNG时,Inkscape才会要求提供尺寸。将其指定为所需的大小。
Abhranil Das 2012年

7
将矢量图像更改为光栅图像肯定不会保持图像的完整性(其他方面)。
Sparhawk

3

在Linux操作系统上,我导出为PNG,然后使用转换工具将其转换为PDF。


2
+1这不是一个坏答案……事实上,这是我用来解决Inkscape遮罩形状缺陷的一种方法(当直接转换为PDF时会“爆炸”)。对于Inkscape无法完全转换为PDF的复杂SVG,有时进行栅格化是可行的解决方法。
2013年

3

我喜欢使用Inkscape进行绘制-它比Illustrator直观得多,并且产生非常专业的结果。

但是,我使用Inkscape来准备要发布的图形,并且很难导出具有出版质量设置的图形。将文件另存为.eps不能正确嵌入我的字体,而.pdf不允许我以印刷质量进行保存。(我正在使用Windows XP和Inkscape版本0.48.4。)

为了解决这个问题,我遵循了在此链接上找到印刷机质量数据的指示。

这些逐步说明向您展示了如何使用嵌入的文本打印到PDF并按质量设置。

对于某些较大的图形,我确实很难打印到pdf(只有图形的随机部分最终会出现在pdf中,这非常令人沮丧!)。为了避免这个问题,我将Inkscape图形的各个方面进行了分组,并缩小了整体尺寸。由于某种原因,这确实工作得很好,这些数字我得到了漂亮的pdf。

另一个选择是将图形切成两半(如果可能)并打印两个pdf。这些可以在Adobe Acrobat Professional中组合(可从此链接下载旧版本。

单击“创建PDF”,选择“来自多个文件”,然后选择要合并的pdf。这些将显示为pdf文档中的单独页面。将它们组合到一个页面转到File --> PrintPage Handling的变化Page ScalingMultiple pages per sheet

然后,您可以自定义每张纸需要多少页。单击确定,您的2个PDF现在将合并为一个页面。

我希望这些信息对对出版物质量数据有严格要求的人有所帮助。


1

我正在使用Inkscape并将SVG常规存储为PDF。远离过滤器和不透明的设置,因为PDF(或者应该说InkScapes导出为PDF)不能很好地处理此功能。

我改用色标而不是不透明色级来直接柔化调色板上的颜色并完全避免使用滤镜。我知道这很麻烦,并且限制了您的能力。但是,如果我遵循这些规则,出口看起来会很好。


0

多年来,我一直无法解决Inkscape生成的PDF的透明度问题,如果有的话,这些问题原来是PDF查看器(或者在一种情况下是深奥打印机)的问题,而不是Inkscape的问题。因此,我想说使用新版本的Inkscape应该可以解决此类问题。

就是说,从Inkscape 0.47(自2009年开始)开始,就有用于PDF导出的栅格化滤镜效果选项,该选项应栅格化PDF格式不支持的所有那些滤镜(例如模糊),并使其他所有矢量化。



0
  1. 打印
  2. 在“ 渲染”选项卡中选择“ 位图”,然后选择所需的分辨率。
  3. 在“ 常规”选项卡中选择您的PDF打印机。
  4. 打印。

渲染选项卡

位图dpi和打印


0

如果您安装了FoxIt Reader,则只需

  1. 文件->打印Ctrl+ P
  2. 选择“ FoxIt Reader PDF打印机”将文件导出为PDF。

0

如果您出于共享目的进行转换,则将其导出为png。在文件选项卡中,有一个单独的选项可以导出为png。这样可以避免麻烦。


3
您能否详细说明它将解决的麻烦是什么?为什么?
维尔兹

0

如果您已经在文档属性上设置了页面大小(请确保您的元素适合页面)>进入打印预览。在这里,您可以将其另存为pdf,也可以按所需大小进行打印,而不会降低分辨率。


0

我也遇到了这个问题,现有的答案都对我无效。我在这里找到了解决方案:https : //bugs.launchpad.net/inkscape/+bug/1004887

为每个图像添加一个过滤器,然后另存为pdf。确保选中“光栅化滤镜效果”。我当时正在处理灰度图像,所以我应用了灰度滤镜,以便图像不会被明显改变。


0

我在保存为pdf时遇到了incskape 0.92.4的麻烦“ * .pdf文件无法保存”,只是将字段“使用ID限制导出”留空(facepalm), 在此处输入链接描述


1
您的图片链接已断开,答案也不是很明确...除了这是一个非常老的问题之外,您确定要添加有用的信息吗?选中“ 如何回答”,然后编辑您的答案以添加更多详细信息/修复损坏的图像链接。
卢西亚诺

-1

尝试使用Windows 7附带的截屏工具。如果尚未将其固定到任务栏,则可以在“所有程序”,“附件”下找到它。看起来像一把剪刀。它将保存为jpeg,然后打开jpeg并使用可爱的PDF打印。


这可能不是Zelbinian正在寻找的解决方案。导出为PDF意味着将保留矢量对象。正如另一个答案所指出的,无论如何,您都可以将文件导出为JPG,在这种情况下,截图是一种较差的方法
JohnB 2013年

-1

我将文档(包括图像上的渐变层和具有透明性的图像)保存为JessyInk压缩的PDF。设置DPI并保存。在Zip文件中,您将找到应有的PDF文件。


-1

很长一段时间以来,我一直对此问题感到恼火。截至2019年,我能找到的最好方法是采用中间的脚步步骤。使用Make语法:

rsvg-convert -f ps $^ | gs -sDEVICE=pdfwrite -sOutputFile=$@ -f -

其中$^,源文件$@是目标文件。

默认情况下,它将输出带有伪脚本9.27的PDF 1.7。它解决了我用inkscape(1.0版Alpha)pdf保存引擎发现的所有问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.