在MonoTouch中,我期待從一個字節數組中創建一個CGPDFDocument
,這個字節數組是從Web服務編碼後傳回來的文本。但是,MonoTouch似乎不支持從本地文件以外的任何文件或從URL下載的文件。從字節數組創建一個CGPDFDocument
任何人都知道如何做到這一點?
在MonoTouch中,我期待從一個字節數組中創建一個CGPDFDocument
,這個字節數組是從Web服務編碼後傳回來的文本。但是,MonoTouch似乎不支持從本地文件以外的任何文件或從URL下載的文件。從字節數組創建一個CGPDFDocument
任何人都知道如何做到這一點?
一個選項是將p /調用到CGPDFDocumentCreateWithProvider來創建您自己的CGPDFDocument
的實例。它不應該太複雜,因爲在MonoTouch中已經有了CGDataProvider。
OTOH接收數組(從Web服務)可能會消耗大量內存(除非您100%確定它們的小尺寸)。例如。字符串到字節的轉換,它必須全部放在內存中......
爲了安全起見,您可能想先序列化數組(或者如果可能,直接更好地直接傳輸)到本地(臨時/緩存)文件中另一個用於GCPDFDocument
實例的內存中副本),然後調用現有的CGPDFDocument.FromFile
API。
UPDATE:MonoTouch的5.3.3+將爲GCPDFDocument
接受一個CGDataProvider
提供新的構造。同時你可以使用下面的代碼。
[DllImport (Constants.CoreGraphicsLibrary)]
extern static IntPtr CGPDFDocumentCreateWithProvider (IntPtr provider);
static GCPDFDocument FromArray (byte[] array)
{
using (var dp = new CGDataProvider (array, 0, array.Length) {
return new CGPDFDocument (CGPDFDocumentCreateWithProvider (dp.Handle));
}
}
非常感謝 - 事實上,我最近發現,將PDF字節數組直接加載到UIWebView中非常容易 – user1281989 2012-04-08 20:03:42