- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在批量创建一些 SVG,需要将它们转换为 PDF 文档以便打印。我一直在尝试使用 svglib
及其 svg2rlg
方法,但我刚刚发现在我的文档中保留矢量图形绝对令人震惊。它几乎不能正确定位文本。
我动态生成的 SVG 格式正确,我已经在原始输入上测试了 svglib
以确保这不是我引入的问题。
那么,除了 svglib
和 ReportLab,我还有哪些选择?它必须是免费的或非常便宜,因为我们已经超出了该项目的预算。我们付不起 ReportLab Plus 每年 1000 美元的费用。
我正在使用 Python,但在这个阶段,只要它能在我们的 Ubuntu 服务器上运行,我就很高兴。
编辑:测试王子。好多了,但它仍然忽略了一半的文档。
最佳答案
我使用 inkscape为了这。在你的 Django View 中做这样的事情:
from subprocess import Popen
x = Popen(['/usr/bin/inkscape', your_svg_input, \
'--export-pdf=%s' % your_pdf_output])
try:
waitForResponse(x)
except OSError, e:
return False
def waitForResponse(x):
out, err = x.communicate()
if x.returncode < 0:
r = "Popen returncode: " + str(x.returncode)
raise OSError(r)
您可能需要将您在 .svg 中引用的所有字体文件作为参数传递给 inkscape,因此如果您的文本在 .pdf 输出中显示不正确,请记住这一点。
关于python - 将 SVG 转换为 PDF(svglib + reportlab 不够好),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8853553/
killer = killer.Replace("(", "\("); 试图在大括号前放置'\',它显示“错误1无法识别的转义序列” 我还尝试在其前面加上“@”,但这会导致两个反斜杠。 最佳答案 使用
我创建了一个包含书籍的小型数据库,并试图在 C# 中使用正则表达式获取书名、作者和书籍年份,但出现错误。 数据库看起来像这样: Eragon // Christopher Paolini // 200
当我尝试编译时 scalala我得到一个 OutOfMemoryError: > compile [info] [info] == compile == [info] Source analysi
这个问题在这里已经有了答案: Regex escape with \ or \\? (5 个答案) 关闭 4 年前。 我遇到了 ) 不够的错误,但据我所知,我已经得到了所有的 )。 行获取错误: s
我正在尝试使用 pthread_create 函数创建一个线程。电话是这样的:res pthread_create(&threadID, &atributte, function, argument)
我需要能够遍历我的整个对象图并记录所有成员字段的所有内容。 例如:对象 A 具有对象 B 的集合,对象 B 具有对象 C 的集合,并且 A、B、C 上有附加字段,等等。 Apache Commons
我的 create.jspx 中有一行,如下所示: 此字段显示一个框,其中的行由 2 个实体之间的关系 @ManyToMany 填充。 现在的问题是,第一个实体只有一个填充此框的 String 属性
ctags -R dirName, vim -t Tags 非常强大,因为在这两个命令之后,你现在可以在该项目的代码之间导航,例如你可以使用 :tag functionName 跳转到某个函数的代码,
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: iphone 5 simulator - Cannot click on bottom of screen?
我有一个庞大的关键字表,一个关键字出现在一个外键中,例如 key=2 word=download key=3 word=download key=4 word=game 目前我有另一个字段称为字母索引
这个问题在这里已经有了答案: How to change stack size for a .NET program? (4 个答案) 关闭 7 年前。 我在 bmp 中有以下用于“blob 填充”
我是一名优秀的程序员,十分优秀!