【问题标题】:Rendering multiple document formats with Cocoa's CoreGraphics使用 Cocoa 的 CoreGraphics 渲染多种文档格式
【发布时间】:2010-07-13 19:15:08
【问题描述】:

CoreGraphics 提供了呈现 PDF 文档的可能性,这很棒。但它似乎也可以支持其他类型,如 Word 文档、HTML、RTF 等。

快速浏览一下 Mac OS X Developer DVD 上的 doc2pdf.py 示例让我这么想:

 pageRect = CGRectMake(0, 0, 612, 792)
  c = CGPDFContextCreateWithFilename(output_file, pageRect)
  c.beginPage(pageRect)

  如果 fnmatch(ext,".txt") 或 fnmatch(ext,".?") 或 fnmatch(ext,".??"):
    tr = c.drawPlainTextInRect(text, pageRect, font_size)
  elif fnmatch(ext,".rtf"):
    tr = c.drawRTFTextInRect(text, pageRect, font_size)
  elif fnmatch(ext,".htm*") 或 fnmatch(ext,".php"):
    tr = c.drawHTMLTextInRect(text, pageRect, font_size)
  elif fnmatch(ext,".doc"):
    tr = c.drawDocFormatTextInRect(text, pageRect, font_size)
  elif fnmatch(ext,"*ml"):
    tr = c.drawWordMLFormatTextInRect(text, pageRect, font_size)
  别的:
    return "Error: unknown type '%s' for '%s'"%(ext, input_file)

不幸的是,我不明白 CoreGraphics 的 Python 绑定是如何工作的(而且绑定本身似乎是二进制和专有的)。我在 Apple 开发人员文档中找不到这些方法的 C/Obj-C 等效项。谷歌搜索到的网页并没有太多谈论这些功能。

有什么想法吗?

【问题讨论】:

    标签: html cocoa ms-word core-graphics rtf


    【解决方案1】:

    我不认为只有 CoreGraphics 能做到这一点。 NSAttributedString 类的 App Kit Addition 提供了从各种文档初始化属性字符串并将其绘制到当前 NSGraphicsContext 中的方法。

    【讨论】:

      【解决方案2】:

      我发现了它的工作原理。

      这里有一个很棒的开源示例,仅通过使用 Cocoa 框架对这些格式的支持来解析 doc、docx、odt、rtf 等文件: http://www.bean-osx.com/Bean.html

      【讨论】:

        猜你喜欢
        • 2017-12-12
        • 2023-03-23
        • 1970-01-01
        • 2011-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-28
        相关资源
        最近更新 更多