我試圖從MAC上的C++(XCode)應用程序打印文檔。我當前使用的是Launch Services框架,但我沒有注意到printto選項(標誌)。這是由Launch Services支持的嗎?還有其他方法可以做到這一點嗎?在MAC OS X上打印,printto
感謝, 馬爾科
我試圖從MAC上的C++(XCode)應用程序打印文檔。我當前使用的是Launch Services框架,但我沒有注意到printto選項(標誌)。這是由Launch Services支持的嗎?還有其他方法可以做到這一點嗎?在MAC OS X上打印,printto
感謝, 馬爾科
根據Technical Note TN2082: The Enhanced Print Apple Event(在傳統文檔),你應該能夠指定kPMPrinterAEType
類型,其值是PMPrinter
參考的keyAEPropData
參數。
雖然這個技術說明有點不清楚。看起來好像keyAEPropData
參數同時包含打印設置和打印機。接收器可以通過將參數的「實際」值強制爲兩種不同類型來檢索這兩條信息。這就產生了一個問題,即你是否可以用kPMPrinterAEType
來指定參數值並使其工作,或者它是否需要其他類型。
無論如何,你可以構建參數的AEDesc
並在LSLaunchFSRefSpec
結構的passThruParams
領域把它傳遞給LSOpenFromRefSpec()
。
它可能有助於使用腳本編輯器將增強打印Apple事件發送到測試應用程序,然後轉儲該事件。這可能會清除參數的構造方式,因此您可以用相同的方式構建它。
核心打印/ –
可以使用它打印到某些打印機嗎? –
是的,'PMPrinter'參考來自Core Printing。您可以使用Core Printing來獲取PMPrinter參考,將其放入您提供給'LSOpenFromRefSpec()'的'AEDesc'中。而且,是的,我相信這是您將打印指向特定打印機的方式。你將不得不嘗試弄清楚如何使它工作。 –
你是什麼意思「printto option」?通過啓動服務顯示你正在做什麼。 –
我的意思是打印文件到特定的打印機(不是默認的,如Win上的ShellExecute(printto)),這裏有些代碼 –
std :: string originalString(「/ Users/mahmood1/Desktop/3.rtf」); OSStatus ERR = :: FSPathMakeRef( (常量UINT8 *)originalString.c_str(), &REF, 假 ); :: LSLaunchFSRefSpec規格= {NULL, 1, &REF, NULL, 2,//這是標誌用於打印 asyncRefCon}; :: LSOpenFromRefSpec(&spec,&outLaunchedRef); –