2010-07-13 23 views
0

CoreGraphics提供了渲染PDF文檔的可能性,這非常棒。但它似乎也可以支持其他類型,如Word文檔,HTML,RTF等。使用Cocoa CoreGraphics渲染多種文檔格式

就讓我們來看看在doc2pdf.py例如在Mac OS X開發的DVD讓我這樣想:

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

    if fnmatch(ext,".txt") or fnmatch(ext,".?") or fnmatch(ext,".??"): 
    tr = c.drawPlainTextInRect(text, pageRect, font_size) 
    elif fnmatch(ext,".rtf"): 
    tr = c.drawRTFTextInRect(text, pageRect, font_size) 
    elif fnmatch(ext,".htm*") or 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) 
    else: 
    return "Error: unknown type '%s' for '%s'"%(ext, input_file)

不幸的是,我不明白是如何工作的CoreGraphics在Python綁定(它似乎是綁定本身是二進制和專有的)。在Apple開發人員文檔中找不到這些方法的C/Obj-C等效項。谷歌沒有發現很多關於這些功能的網頁。

任何想法?

回答

0

我不認爲CoreGraphics單獨做這件事。 NSAttributedString類的App Kit Addition提供了從各種文檔初始化屬性字符串的方法,並在當前的NSGraphicsContext中繪製它。

0

我發現它是如何工作的。

這裏只有通過使用這些格式Cocoa框架支持一個偉大的開源例如這裏解析DOC,DOCX,ODT,RTF等文件: http://www.bean-osx.com/Bean.html