The question about printing workflow

魏宇曦 snowmint612 at gmail.com
Thu Feb 21 17:26:01 UTC 2019


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 起來因此無法確定它其中傳遞的參數裡的指令是做了什麼事。


不知道是否有人對這一方面有了解呢?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20190222/1dff9ad1/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Printing_model.png
Type: image/png
Size: 126582 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20190222/1dff9ad1/attachment.png>


More information about the LibreOffice mailing list