Date: prev next · Thread: first prev next last
2019 Archives by date, by thread · List index


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


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.