pdf文件打印出來后很多文字消失了該怎么辦?

有位朋友在博客里問了我一個問題:遇到一問題,找了很久都沒有找到問題所在,同一圖層,同一顏色,同一文字樣式的文字,打印成PDF時,打印預覽顯示全部文字,但確定,打印成PDF后,打開PDF,只顯示部分字體,是什么地方出了問題?如下圖所示。
一、分析原因并解決問題
1、光看描述我無法知道是什么原因,我懷疑是打印驅(qū)動或圖的問題,就讓這位朋友把圖發(fā)給我。收到圖后我在AutoCAD 2011版上用內(nèi)置的dwg to pdf的驅(qū)動試了一下,確實如此,現(xiàn)象很容易就重現(xiàn)了,并且很快地找到了問題。這個問題也比較特殊,不知道其他人是否遇到過,估計不常見。之所以寫下來,主要是想將我分析問題的思路跟大家分享一下,希望對大家有幫助。打印完P(guān)DF后,我首先看哪些文字是打印出來的,哪些文字是沒有打印出來的,然后我在圖中分別選中了一個可以打印和一個不能打印的文字,打開屬性框(CTRL+1)。我們來看看他們有哪些共同屬性,哪些不同的屬性,如下圖所示。
2、從屬性框中可以看出兩個文字是單行文字,圖層相同,文字樣式相同,只是寬度因子不同。其實從圖面上也可以看出來文字的寬度不同,而且一個邊界比較平滑,一個則能看到一些鋸齒。 為了看到比屬性框更多的信息,我輸入LI(LIST)命令,進一步查看一下這兩個文字的參數(shù),如下圖所示。
3、從這里可以看到兩個文字的寬度因子分別是1和0.9,可以打印出來的是0.9,我嘗試將寬度因子為1的寬度因子改為0.9,這些字就能打印出來了。但我感覺這應該不是問題根源所在,而且也想不通為什么0.9就能打印出來,而1就打印不出來呢!在上圖中我還注意到一個細節(jié),就是這個文字樣式的字體是simplex。字體名后面沒有帶shx,說明用的是操作系統(tǒng)的字體simplex.ttf,而不是CAD字體simplex.shx。跟CAD的simplex.shx字體類似,simplex也只有單字體字符,不包含漢字,哪些漢字是如何顯示出來的呢? 輸入ST,打開文字樣式對話框,發(fā)現(xiàn)這個文字樣式真的很奇怪,如下圖所示。
4、這個文字樣式設(shè)置的字體是simplex,“使用大字體”勾選框是灰的,而且右側(cè)“字體樣式”下拉列表被激活了,說明使用的是系統(tǒng)字體。這個字體不包括中文,國內(nèi)幾乎不可能有人這么設(shè)置字體,而圖中的中文只所以能顯示,是CAD采取了自動替換的策略,應該被替換成了宋體顯示了。我們選跟simplex類似的SHX字體試一下,就知道正常顯示的時候是什么狀態(tài)。在字體名列表中選一種其他的SHX文件,然后在選回simplex.shx,如下圖所示。
5、如果點“應用”按鈕使用這種設(shè)置并關(guān)閉文字樣式對話框,然后輸入RE命令重生成圖形,你會發(fā)現(xiàn)剛才那些漢字都變成了問號,這才是這種文字樣式設(shè)置下中文的正常狀態(tài),如下圖所示。
6、顯然這張圖的文字樣式的數(shù)據(jù)有錯誤,本身樣式設(shè)置是無法顯示中文的,但CAD的自動替換蒙蔽了我們,使我們想不到是文字樣式的問題。我將文字樣式修改成能顯示漢字的字體,例如直接在字體列表里選擇“新宋體”,或者勾選“使用大字體”后,大字體選擇hztxt.shx,然后再打印,就完全正常了,所有文字都可以正常打印了。雖然這個問題解決了。
這個里面還是有兩個疑問:
1)為什么文字樣式會變成這樣?
2)為什么之前寬度因子為0.9的可以打印出來,而寬度因子為1的卻打印不出來?對于問題1我也無法解釋得很清楚。從這位朋友的說明和文字樣式的名稱來看,這張圖是天正建筑繪制的圖紙,然后進行了轉(zhuǎn)換,可能在天正高版本轉(zhuǎn)天3文件時數(shù)據(jù)轉(zhuǎn)換導致了這種錯誤,AutoCAD2007以后版本與之前版本格式之間相互轉(zhuǎn)換也會出現(xiàn)文字樣式的字體出現(xiàn)錯誤的問題,比如以前我見過字體設(shè)置為宋體被解析錯導致漢字顯示不正確的狀況。
3)從來沒見過國內(nèi)在文字樣式中用操作系統(tǒng)的simplex字體的,而且這張圖中字體替換成宋體后很多文字都超出了表格邊框,我猜測這張圖原始的字體設(shè)置應該是simplex.shx加上一種大字體,在轉(zhuǎn)存或轉(zhuǎn)換的過程中,simplex.shx被寫成simplex,后面的大字體自然就丟失了。這種文字樣式雖然轉(zhuǎn)錯了,但對于CAD講這種文字樣式也是正確的,所以修復圖紙也無法解決這個問題,必須手動解決。至于問題2我通過驗證確認了我的猜測。CAD在打印輸出PDF時,如果文字使用的是操作系統(tǒng)的TTF字體,而且寬度因子是1,就會保留原有的字體和文字,在PDF文件中我們可以選中這些文字,而寬度因子不是1的,在輸出PDF的時候則會轉(zhuǎn)換為圖形,再PDF中無法選中,如下圖所示。
7、我想CAD輸出PDF的流程可能是這樣的:在輸出成PDF文件時,寬度因子不是1的文字CAD先按錯誤的文字樣式生成了圖形數(shù)據(jù)寫入了PDF文件,而寬度因子是1的文字則將文字內(nèi)容和字體寫入了PDF文件,而寫入的字體是simplex,PDF查看器中能找到這個字體,但這個字體中根本就沒有漢字,因此那些正常寬度的漢字無法顯示。而打印預覽跟圖形窗口顯示的流程類似,能顯示的文字在打印預覽中都能看到。
二、將文字輸出成圖形
1、如果我們在輸出成PDF后不需要對文字進行修改或其他處理,還有其他方法,就是將文字輸出成圖形。在打印對話框中單擊特性按鈕,打開繪圖儀配置編輯器,在其中點自定義特性,打開PDF選項對話框,在右小角取消默認選項,勾選下面的將所有文字轉(zhuǎn)換為圖形。
總結(jié):
1、PDF輸出時會將設(shè)置了寬度比例的文字直接輸出成圖形;如果文字沒有設(shè)置寬度比例,如果字體找不到,輸出時會文字消失,如果是SHX字體,也會輸出成圖形,如果是操作系統(tǒng)的TTF文字,可以在PDF中保留文字。
2、如果文字樣式有問題,建議還是修改文字樣式,當然如果覺得修改文字樣式麻煩,也可以在打印輸出中直接設(shè)置將所有文字輸出成圖形。
3、通過上面的記錄和分析,不僅希望能幫助遇到同類問題的朋友,也希望能給其他人一些啟發(fā),自己遇到問題能快速找到解決辦法,避免在一個問題上耽誤太多時間。
注意事項:
以上技巧適用于AUTOCAD和浩辰CAD等有內(nèi)置PDF驅(qū)動的軟件
相關(guān)推薦:
相關(guān)文章
- pdf怎么裁剪頁面?pdf文件中想裁剪某個頁面,該怎么自由裁剪呢?下面我們就來看看pdf文件的裁剪方法,很簡單,需要的朋友可以參考下2016-12-02
- pdf文件中怎么插入圖片?想要編輯pdf文件,插入圖片,該怎么插入呢?下面我們就來看看使用捷速pdf閱讀器給pdf文件添加圖片的教程,需要的朋友可以參考下2016-12-02
- PDF文件怎么插入二維碼圖形?想在pdf文件中插入二維碼,該怎么出入呢?這需要使用pdf編輯器來完成,下面我們就來看看pdf添加二維碼的方法,需要的朋友可以參考下2016-12-02
- PDF文件怎么添加文字?pdf文檔中想要添加一些重要的信息,該怎么插入文字呢?下面我們就來看看pdf文件使用Adobe Reader軟件添加文字的教程,需要的朋友可以參考下2016-12-01
- PDF文件怎么添加貝茨編號?PDF文件中想要添加貝茨編號,該怎么添加呢?今天我們就來看看使用pdf編輯器給文件添加貝茨編號的方法,需要的朋友可以參考下2016-11-30
- PDF文件的閱讀幾乎都沒什么問題,只需下載PDF閱讀器即可??蓪τ赑DF文件的編輯修改,卻是很多人的痛病PDF文件的閱讀幾乎都沒什么問題,只需下載PDF閱讀器即可。可對于PDF文2016-11-28
- 怎么樣把pdf轉(zhuǎn)換成word?最簡單的方法就是借助轉(zhuǎn)換器,下面小編就給大家?guī)戆裀DF轉(zhuǎn)換成word的詳細步驟,一起來看看吧2016-11-23
迅捷pdf轉(zhuǎn)換器怎么編輯PDF文件的內(nèi)容?
迅捷pdf轉(zhuǎn)換器怎么編輯PDF文件的內(nèi)容?想要修改pdf文件,但是卻沒辦法直接編輯,該怎么辦呢?下面我們就來看看pdf文件的編輯方法,需要的朋友可以參考下2016-11-21- pdf文件怎么快速添加書簽?pdf文件文字很多,沒辦法一次閱讀完,就想添加書簽,該怎么給pdf文檔添加書簽呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2016-11-20
百度閱讀器怎么將pdf文件轉(zhuǎn)換為word格式?
百度閱讀器怎么將pdf文件轉(zhuǎn)換為word格式?經(jīng)常從網(wǎng)上下載的文件是pdf格式的,想轉(zhuǎn)換成word格式的,該怎么轉(zhuǎn)換呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2016-11-15