2012-06-13 387 views
0

我的程序創建adobe ai或(eps)文件,我想將其複製到粘貼板。 我在Adobe Illustrator複製樣品AI對象,並通過「紙板檢查」檢查紙板:如何將eps文件複製到剪貼板/粘貼板?

enter image description here

我的代碼以下,但複製沒什麼紙板:

void copyEPS(CFDataRef data) 
{ 
    OSStatus err = noErr; 
    PasteboardRef theClipboard; 

    err = PasteboardCreate(kPasteboardClipboard, &theClipboard); 
    // err is 0 
    err = PasteboardClear(theClipboard); 
    // err is 0 
    PasteboardSynchronize(theClipboard); 

    err = PasteboardPutItemFlavor(theClipboard, (PasteboardItemID)1, 
     CFSTR("AICB"), data, 0); 
    // err is 0 
    CFRelease(data); 
} 

我該怎麼辦呢? Thankyou。

回答

0

PasteboardPutItemFlavor()的字符串是一個UTI,所以在這種情況下可能應該設置爲CFSTR("com.adobe.encapsulated-postscript")。可可API也可以用於類似的輸入。

+0

我用「com.adobe.encapsulated-postscript」和eps數據複製到粘貼板,但InDesign或Illustrator不粘貼它,如果我使用「dyn.ah62d4rv4gk8ycwndkk」作爲類型,它粘貼到這兩個程序(接受爲eps)並且一切正常,你知道如何生成「dyn.ah62d4rv4gk8ycwndkk」字符串嗎?我一直使用UTTypeCreatePreferredIdentifierForTag,但我不知道什麼通過「inTag」參數來生成「dyn.ah62d4rv4gk8ycwndkk」。謝謝。 –

+0

我相信'UTTypeCreatePreferredIdentifierForTag()'是唯一的方法。在這種情況下,對於前兩個參數,「kUTTagClassOSType」和「CFSTR(」AICB「)」看起來很不錯。不幸的是,我不知道你是否會得到相同的'dyn。*'字符串;我不知道所有Mac電腦上的字符串是否相同,或者即使在重新啓動時計算機上的字符串相同。用作原始字符串可能不可靠。 –

+0

使用kUTTagClassOSType和CFSTR(「AICB」)生成的「dyn.agk8ycwndkk」; –