【问题标题】:SVG to PDF using svglib使用 svglib 将 SVG 转为 PDF
【发布时间】:2013-05-03 07:08:43
【问题描述】:

我正在尝试使用svglibreportlab在python中将SVG转换为PDF。所以,我安装了这两个,下面是他们site上的示例,我完全按照它是,如下所示。

>>> from svglib.svglib import svg2rlg
>>> from reportlab.graphics import renderPDF
>>> drawing = svg2rlg("SVGMonitor.svg")
Failed to load input file!

我收到此错误Failed to load input file!。请提出可能是什么问题?

我尝试转换的svg 文件是一个有效文件,并且具有足够的权限。

使用python 2.6

【问题讨论】:

  • 如果"SVGMonitor.svg" dows 在您执行import os;print os.listdir('.') 时没有出现,那么您在错误的目录中。
  • 能否请您粘贴整个错误?
  • @User:我在正确的目录中,已验证。除了这个错误,我没有得到任何其他信息。我只得到 1 行作为输出,即Failed to load input file!,没有别的。
  • 为您的 SVG 使用 absolute path 看看它是否会消失。
  • @SamRad:我已经尝试过了。

标签: python svg reportlab


【解决方案1】:

因为它太长,所以将其发布为答案:

这是你调用的函数:

# from http://philip-tzou-code-art.googlecode.com/svn/trunk/PDF/svglib.py
def svg2rlg(path):
    "Convert an SVG file to an RLG Drawing object."

    # load SVG file
    try:
        doc = xml.dom.minidom.parse(path)
        svg = doc.documentElement
    except: 
                       # try except is really a bad thing like this
        print "Failed to load input file!"
        #return

    # convert to a RLG drawing
    svgRenderer = SvgRenderer(path)
    svgRenderer.render(svg)
    drawing = svgRenderer.finish()

    return drawing

去掉tryexcept 试试。它有什么作用?

【讨论】:

    猜你喜欢
    • 2012-02-09
    • 1970-01-01
    • 2016-01-20
    • 2015-10-04
    • 2013-06-29
    • 2011-05-06
    • 2020-12-14
    • 1970-01-01
    相关资源
    最近更新 更多