999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PostScript文件與PDF文件間數(shù)據(jù)轉(zhuǎn)換

2013-03-11 10:50:04殷,王
關(guān)鍵詞:頁面文本信息

孫 殷,王 鵬

(1.浙江商業(yè)職業(yè)技術(shù)學(xué)院,浙江 杭州310053;2.浙江工業(yè)大學(xué),浙江 杭州310014)

在可變數(shù)據(jù)印刷系統(tǒng)中,每個電子頁面的內(nèi)容(如文字、圖形、圖像)經(jīng)過頁面描述語言合成后產(chǎn)生相應(yīng)的可變數(shù)據(jù)印刷頁面,最終形成特定的數(shù)據(jù)文件。PostScript文件(簡稱PS)和PDF文件是目前存儲可變數(shù)據(jù)印刷頁面常用的文件格式,因此,研究這兩種文件格式之間的數(shù)據(jù)轉(zhuǎn)換對可變數(shù)據(jù)印刷的發(fā)展具有一定的意義。而當(dāng)前PS文件與PDF文件之間的轉(zhuǎn)換主要有兩種方式[1]:(1)通過專業(yè)的軟件(如Acrobat Distiller)轉(zhuǎn)換;(2)通過虛擬打印機(jī)來實現(xiàn)。

但是這兩種方式都不利于自主研究數(shù)據(jù)印刷系統(tǒng)的開發(fā)。本文根據(jù)PS文件格式和PDF文件格式的特點,利用PS解釋器Ghostscript提供的API接口,通過VC6.0實現(xiàn)了PS文件和PDF文件的相互轉(zhuǎn)換,并給出相應(yīng)的代碼。

1 PostScript和PDF文件結(jié)構(gòu)

1.1 PostScript文件

PostScript是由Adobe公司開發(fā)的頁面描述語言,其最大特點是可以將印刷品中包含的文字、圖形、圖像、字體和顏色等各種元素用一種計算機(jī)數(shù)據(jù)來表現(xiàn)和描述,然后經(jīng)過RIP(光柵圖像處理器)快速地解釋為可控制打印設(shè)備輸出用的點陣信息。用PostScript語言所描述的頁面文件稱為PS文件,其后綴名為.ps或.eps。

PostScript程序可訪問的所有數(shù)據(jù)都是以對象(Object)形式存在的[2],對象由操作符產(chǎn)生、管理和撤銷。常用的對象有整數(shù)和實數(shù)、布爾型、數(shù)組、壓縮數(shù)組、串、名字、字典等[3-4]。程序中的數(shù)據(jù)存儲在堆棧中并通過堆棧被操作符管理執(zhí)行。

PostScript語言解釋器對語句的執(zhí)行是逐句解釋執(zhí)行,控制比較靈活,一切操作均通過堆棧進(jìn)行。例如用粗線畫一個圓:

%%Title:用粗線畫一個圓

/inch{72 mul}def

4.25 inch 5.5 inch

2.5 inch

0 360 arc

1.75 inch setlinewidth

stroke

showpage

以‘%’開頭的第一段語句表示注釋,第二段語句定義了名字對象‘inch’,接著定義圓的中心位置(4.25,5.5),半徑2.5;然后畫角度為360°的圓;最后定義粗線的寬度1.75,畫出粗線的路徑進(jìn)行顯示。

1.2 PDF文件

便攜式文件格式PDF(Portable Document Format)是Adobe公司繼PostScript后于1993年推出的一種電子文件格式[5]。它具有能夠完整地保存任何原文檔中的文字、格式、顏色、圖形、可加密等優(yōu)秀特性,廣泛應(yīng)用于數(shù)據(jù)印刷系統(tǒng)中。

PDF文件主要由四部分組成:文件頭(Header)、文件體(Body)、交叉引用表(Cross-referrence table)和文件尾(Trailer)。PDF作為一種結(jié)構(gòu)化的文件格式,它是由一些具有特定數(shù)字標(biāo)號的“對象”的模塊所組成。其文檔結(jié)構(gòu)是一種樹形結(jié)構(gòu),通過文件尾(Trailer)可以找到文件體的根對象Catalog[6],根對象包含PDF文檔的大綱(Outline)、頁面組對象(Pages Tree)等。文檔結(jié)構(gòu)具體層次關(guān)系如圖1所示。

其中頁面對象(Page)作為PDF中最重要的對象,包含了該頁面的文字、圖片、頁面大小等信息。頁面中包含的信息是包含在一個稱為流(stream)[7-8]的對象里,這個流的長度(字節(jié)數(shù))必須直接給出或指向另外一個對象。

圖1 PDF文檔結(jié)構(gòu)

2 文件格式轉(zhuǎn)換算法的實現(xiàn)

根據(jù)前兩節(jié)的PostScript文件結(jié)構(gòu)可知,要實現(xiàn)PS文件到PDF文件的轉(zhuǎn)換,首先需要對PS文件中的不同信息(文字、圖形和圖像等)進(jìn)行解析,然后轉(zhuǎn)換為對應(yīng)的PDF對象。兩者間轉(zhuǎn)換的總流程主要為:

(1)導(dǎo)入要轉(zhuǎn)換的PostScript文件,初始化PS解釋器;

(2)開始掃描PS文件,記錄當(dāng)前代碼段所在頁。判斷頁信息是否已經(jīng)到末尾,是則退出,否則繼續(xù)向下掃描;

(3)讀取PS頁面描述信息,對其中的文本信息、圖形信息和圖像信息分別進(jìn)行提取并處理;

(4)將第三步中處理的文本、圖形和圖像信息進(jìn)行重構(gòu),然后分別轉(zhuǎn)換為相對應(yīng)的PDF對象;

(5)判斷PS文件是否掃描結(jié)束,是則回到第(2)步,否則回到第(3)步;

(6)轉(zhuǎn)換算法結(jié)束。

圖2為PS文件轉(zhuǎn)換為PDF文件的總流程圖。

圖2 轉(zhuǎn)換總流程圖

由于PostScript文件對文本、圖形和圖像的描述機(jī)制各不相同,因此,其相應(yīng)的信息提取算法也不盡相同。在PostScript文件中,圖像是取樣值的矩形數(shù)值,每個取樣值表示某種彩色。按行或者列掃描圖像矩形所得的一串取樣數(shù)據(jù)定義了一個圖像。除了矩形數(shù)組之外,PS程序中還包括一些圖像參數(shù):源圖像的格式、圖像取樣數(shù)據(jù)的數(shù)據(jù)源、圖像空間坐標(biāo)等。因此,對PS文件中圖像的提取主要是將圖像的參數(shù)和圖像取樣數(shù)據(jù)進(jìn)行提取,其對應(yīng)的提取算法流程圖如圖3所示。

圖3 圖像提取流程圖

在標(biāo)準(zhǔn)的PostScript文件中,文本大都是以字庫[9]的形式進(jìn)行保存,因此在PostScript中的字符可以由PS解釋器根據(jù)字庫提取出對應(yīng)的字符。對PS文件中文本信息的提取流程如圖4所示,主要過程如下:

(1)掃描文檔,記錄當(dāng)前頁面信息。判斷是否已掃描到文件尾,是則跳轉(zhuǎn)到第(5)步,否則跳到第(2)步;

(2)繼續(xù)掃描,判斷是否掃描到文本提示符,是則跳到第(3)步,否則跳回第(1)步;

(3)根據(jù)文本提示符獲取相應(yīng)的字庫詞典,查找字庫獲取PS所描述的字符;

(4)保存第(3)步提取的文本信息;

(5)結(jié)束文本掃描。

圖4 PS文件中文本提取算法流程圖

掃描文件時通過尋找關(guān)鍵操作符函數(shù)FindStringInBuffer(),可以得到需要的操作符位置。源程序如下:

由于PS解釋器的實現(xiàn)比較復(fù)雜,本文通過利用PS解釋器Ghostscript提供的API接口函數(shù)對PS文件進(jìn)行解釋轉(zhuǎn)換。首先通過接口函數(shù)gsapi_new_instance()新建一個要轉(zhuǎn)換的實例。轉(zhuǎn)換過程主要在接口函數(shù)gsapi_init_with_args()中進(jìn)行,即初始化PS解釋器并將輸入PS對象轉(zhuǎn)換為對應(yīng)的PDF對象。主要轉(zhuǎn)換程序如下:

3 效果及結(jié)論

本文的程序在VC6.0上編譯通過,并可以將輸入的PS文件(my.ps)轉(zhuǎn) 換為PDF文件(my.pdf)。轉(zhuǎn)換前后的結(jié)果如下:

由圖5和圖6可以看出,轉(zhuǎn)換前后的圖像幾乎完全一樣。由圖7中文本的轉(zhuǎn)換結(jié)果可以看出,轉(zhuǎn)換的字符內(nèi)容一樣。通過修改輸入文件名和輸出文件名類型,例如輸入文件為.pdf格式文件,輸出文件為.ps文件,也可以實現(xiàn)PDF文件到PS文件的轉(zhuǎn)換。因此,在設(shè)計開發(fā)可變數(shù)據(jù)印刷系統(tǒng)時,可以將該程序作為數(shù)據(jù)轉(zhuǎn)換的一部分嵌入到印刷軟件系統(tǒng)中,具有一定的實用性。但是,由于PS解釋器并非獨立設(shè)計,受到其接口函數(shù)的限制,程序的延伸性不是很好。

圖5 my.ps文件中圖形

圖6 my.pdf文件中圖形

圖7 文本轉(zhuǎn)換結(jié)果

[1]張志偉,孔凡讓,吳欣.PostScript格式文獻(xiàn)中數(shù)學(xué)表達(dá)式的提取方法[J].計算機(jī)應(yīng)用與軟件,2008,25(11):157-159.

[2]USA Adobe Systems Inc.PostScript language reference mannal.Addison Wesley Protessional,1990.

[3]何明,匡燕玲,李小龍,等.頁面描述語言PostScript及其轉(zhuǎn)換程序[J].北京工業(yè)大學(xué)學(xué)報,2004,20(4):102-104.

[4]徐福培,潘志庚.頁面描述語言及其程序設(shè)計[M].南京:南京大學(xué)出版社,1994.

[5]USA Adobe Systems Inc.Document management-Portable document format-Part 1:PDF 1.7[J].Adobe Systems Incorporated,2008,PDF 32000-1.

[6]李珍,田學(xué)東.PDF文件信息的抽取與分析[J].計算機(jī)應(yīng)用,2003,23(12):145-148.

[7]王婉,韓逸秋,徐福培.PDF文件格式及其向PS文件轉(zhuǎn)換的研究[J].計算機(jī)科學(xué),2001,28(9):123-127.

[8]吳一民,朱檬,羅綿川.基于.NET平臺PostScript文件解析標(biāo)引系統(tǒng)設(shè)計與實現(xiàn)[J].微計算機(jī)應(yīng)用,2009(10):5863.

[9]段華偉,黃靈閣.計算機(jī)文字處理技術(shù)現(xiàn)狀[J].印刷質(zhì)量與標(biāo)準(zhǔn)化,2004(5):39-41.

猜你喜歡
頁面文本信息
大狗熊在睡覺
刷新生活的頁面
在808DA上文本顯示的改善
基于doc2vec和TF-IDF的相似文本識別
電子制作(2018年18期)2018-11-14 01:48:06
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學(xué)隱喻
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
如何快速走進(jìn)文本
語文知識(2014年1期)2014-02-28 21:59:13
同一Word文檔 縱橫頁面并存
淺析ASP.NET頁面導(dǎo)航技術(shù)
主站蜘蛛池模板: 国产精品亚欧美一区二区三区| 人人91人人澡人人妻人人爽| 人人妻人人澡人人爽欧美一区| www精品久久| 国产玖玖视频| 中文字幕亚洲电影| 欧美国产综合色视频| 亚洲精品第五页| 国产色婷婷| 99re在线视频观看| 久热re国产手机在线观看| 99免费在线观看视频| 日本道中文字幕久久一区| 亚洲中文字幕在线一区播放| 欧美激情福利| 这里只有精品国产| 国产手机在线ΑⅤ片无码观看| 9啪在线视频| 亚洲天堂2014| 人妻丰满熟妇啪啪| 午夜视频免费试看| 日韩在线视频网| 国产成人欧美| 最新国产网站| 久久a毛片| 午夜精品一区二区蜜桃| 国产成人精品一区二区不卡| 18禁不卡免费网站| 91色老久久精品偷偷蜜臀| 国产精品视频猛进猛出| 日本在线国产| 中文字幕亚洲无线码一区女同| 欧美成人精品在线| 国产拍在线| 欲色天天综合网| 97精品久久久大香线焦| 在线观看无码a∨| 秋霞午夜国产精品成人片| 18禁黄无遮挡免费动漫网站| 狼友视频一区二区三区| 天天躁狠狠躁| 日韩无码真实干出血视频| 日本不卡免费高清视频| 国产又色又爽又黄| 亚洲自拍另类| 精品欧美日韩国产日漫一区不卡| 在线看片中文字幕| 亚洲成人黄色网址| 婷婷六月天激情| 宅男噜噜噜66国产在线观看| av大片在线无码免费| 亚洲国产系列| 日韩欧美色综合| 国产精品2| 亚洲中字无码AV电影在线观看| 亚洲无码高清视频在线观看| 国产1区2区在线观看| 五月婷婷综合网| 无码综合天天久久综合网| 亚洲综合狠狠| 国产黄在线观看| 国产91无毒不卡在线观看| 欧美在线天堂| 亚洲国产精品日韩av专区| 欧美一区福利| 日韩最新中文字幕| 久久五月天综合| 午夜毛片免费观看视频 | 欧美a在线| 九九久久99精品| 黄色a一级视频| 国产精品理论片| 狼友av永久网站免费观看| 中文无码影院| 亚洲成人手机在线| 国内精品自在欧美一区| 亚洲AV一二三区无码AV蜜桃| 国产精品播放| 久久综合色播五月男人的天堂| 国内嫩模私拍精品视频| 免费毛片全部不收费的| 国产成人精品2021欧美日韩|