I want to know the details about the printing job workflow. Currently, I found this site to talk about the printing workflow : https://wiki.openoffice.org/wiki/Mac_OS_X_Porting_-_Native_Printing I want to know How does step 3 (as picture Pringting_model) work? Does it use any Linux system call or API? I focus on the genprnpsp.cxx and try to understand the full workflow about printing. In EndJob function, it has call the createPDF(), then createPDF() call the passFileToCommand(), I can't find any file that how calling this function ( all about in genprnpsp.cxx ) in sw folder, so I don't know what the parameter "rCommand" actually do. Hope somebody can answer this question. ========================================== Maybe some developers understand the Chinese, so I describe more complete in Chinese. 不知道有沒有人了解 LibreOffice 將列印工作傳遞給系統時作了什麼動作? 經過有點長時間搜尋的過程仍沒有太大的了解,發問在 askLibreOffice 和 IRC 目前也沒有收到任何回答,於是想問問看這裡。 像是列印過程中 ( 由 LibreOffice 丟工作給外部 Printer 間的這個過程 ) 使用了什麼 API 或是 System call,也就是在 setPrinterInfo 以及 Print start job 之後,是如何進行列印或輸出成 PDF 的。 目前針對列印部分 PspSalPrinter看了 source code ,但透過 visual studio 的檢視呼叫階層找不到呼叫這些 function 的程式。看了 SW 內的程式也還沒有看到跟 PspSalPrinter相關的呼叫。 找了一段時間找到了一篇比較仔細的列印說明,但內容上沒有到很深入,下面附上連結: https://wiki.openoffice.org/…/Mac_OS_X_Porting_-_Native_Pri… <https://l.facebook.com/l.php?u=https%3A%2F%2Fwiki.openoffice.org%2Fwiki%2FMac_OS_X_Porting_-_Native_Printing%3Ffbclid%3DIwAR0IMrSnbghNzS1mkxku7oO37SHEkHEjlMjAXZd_3XokZX-lI8krwNlk1Aw&h=AT3uCc68DyjXIqhy_QbJWLfu7TlVJoKIpzWrZJ9SflJrkVUekymRl9ga8aYa-XNyfi7vTlNAlGaXZHkeLxinYRs8JhLseabxgHg-yyZygIbU-AwMyz8o2pdjgswNhygB5xXNCT26IhafW0rnB6QqxgrD> 看了他的附圖 Print_model 我想我是想要知道關於第三步驟的詳細作法,也就是經由 svtool 取得使用者想要的列印設定並且準備就緒時,真正呼叫 VCL PspSalPrinter 的部分: (3) "The user application has now everything needed to print the document. So, it asks VCL to draw pixels, lines, characters, etc on an OutputDevice. At this point, I don't know exactly where the OutputDevice is instancied (who decides that it would be a screen, an Aqua printer or a PostScript printer. This is not really important since we understand the main idea of how printing works." 但看了 PspSalPrinter 相關的程式碼之後感覺還是沒有真正接觸到系統的呼叫,雖說有找到 createPDF 函式下的 passFileToCommand,但因為程式無法成功 build 起來因此無法確定它其中傳遞的參數裡的指令是做了什麼事。 不知道是否有人對這一方面有了解呢?
Attachment:
Printing_model.png
Description: PNG image