在和浩辰CAD使用者交流過程中,碰到過一個奇怪的問題,今天寫出來供大家參考。同一圖層,同一顏色,同一文字樣式的文字,打印成PDF時,預覽正常,打印后不顯示。本文介紹CAD輸出pdf 預覽正常打印時候文字消失是什么原因
如下圖:
打印效果和預覽效果
光看描述我無法知道是什么原因,我懷疑是打印驅動或圖的問題,就讓這位朋友把圖發給我。收到圖后我在CAD上用內置的dwg to pdf的驅動試了一下,確實如此,現象很容易就重現了,并且很快地找到了問題。
這個問題也比較特殊,不知道其他人是否遇到過,估計不常見。之所以寫下來,主要是想將我分析問題的思路跟大家分享一下,希望對大家有幫助。
打印完PDF后,我首先看哪些文字是打印出來的,哪些文字是沒有打印出來的,然后我在圖中分別選中了一個可以打印和一個不能打印的文字,打開屬性框(CTRL+1)。我們來看看他們有哪些共同屬性,哪些不同的屬性,如下圖所示。
從屬性框中可以看出兩個文字是單行文字,圖層相同,文字樣式相同,只是寬度因子不同。其實從圖面上也可以看出來文字的寬度不同,而且一個邊界比較平滑,一個則能看到一些鋸齒。
為了看到比屬性框更多的信息,我輸入LI(LIST)命令,進一步查看一下這兩個文字的參數,如下圖所示。
從這里可以看到兩個文字的寬度因子分別是1和0.9,可以打印出來的是0.9,我嘗試將寬度因子為1的寬度因子改為0.9,這些字就能打印出來了。但我感覺這應該不是問題根源所在,而且也想不通為什么0.9就能打印出來,而1就打印不出來呢!
在上圖中我還注意到一個細節,就是這個文字樣式的字體是simplex.shx,這只是一個小字體,沒有大字體,而圖中那些文字是單行文字,漢字是怎么顯示出來的呢?我決定看看文字樣式的設置,輸入ST,打開文字樣式對話框,發現這個文字樣式真的很奇怪,如下圖所示。
這個文字樣式設置的字體明明是一個小字體(simplext.shx),但“使用大字體”勾選框是灰的,而且右側“字體樣式”下拉列表被激活了,這只有使用系統字體,如宋體等TTF字體時才會這樣。我們可以試一下,在字體名列表中選一種其他的SHX文件,然后在選回simplex.shx,你會發現文字樣式對話框變了,如下圖所示。
如果點“應用”按鈕使用這種設置并關閉文字樣式對話框,然后輸入RE命令重生成圖形,你會發現剛才那些漢字都變成了問號,這才是這種文字樣式設置的正常狀態,如下圖所示。
顯然這張圖的文字樣式的數據有錯誤,問題應該就出在這兒。我將文字樣式修改成能顯示漢字的字體,例如直接在字體列表里選擇“新宋體”,或者勾選“使用大字體”后,大字體選擇hztxt.shx,然后再打印,就完全正常了,所有文字都可以正常打印了。
雖然這個問題解決了,這個里面還是有兩個疑問:
1、為什么文字樣式會變成這樣?
2、為什么之前寬度因子為0.9的可以打印出來,而寬度因子為1的卻打印不出來?
對于問題1我也無法解釋得很清楚,從這位朋友的說明和文字樣式的名稱來開,這張圖是浩辰建筑繪制的圖紙,然后進行了轉換,可能在浩辰高版本轉天3文件時數據轉換導致了這種錯誤,也可能是其他原因。我嘗試修復打開此圖紙,修復了圖中的一些其他錯誤,但文字樣式的錯誤依舊,還只能手動修改。
至于問題2我通過驗證確認了我的猜測。CAD在打印輸出PDF時,如果文字使用的是操作系統的TTF字體,而且寬度因子是1,就會保留原有的字體和文字,在PDF文件中我們可以選中這些文字,而寬度因子不是1的,在輸出PDF的時候則會轉換為圖形,再PDF中無法選中,如下圖所示。
我想CAD輸出PDF的流程可能是這樣的:在輸出成PDF文件時,寬度因子不是1的文字CAD先按錯誤的文字樣式生成了圖形數據寫入了PDF文件,而寬度因子是1的文字則將文字內容和字體寫入了PDF文件,而寫入的字體是simplex.shx,PDF查看器中根本不可能找到這樣的字體,因此就不能顯示,或者PDF因為不識別字體就根本沒生成這些文字的數據。而打印預覽跟圖形窗口顯示的流程類似,能顯示的文字在打印預覽中都能看到。
以上就是碰到的CAD輸出pdf 預覽正常打印時候文字消失是什么原因。希望能幫到遇到同樣問題的朋友。當然也可以換個打印驅動試試,其實打印驅動也是會有bug的。感謝你的閱讀
2019-09-04
2019-06-18
2019-06-18
2019-05-30
2022-10-11
2022-07-29
2023-11-10
2023-11-10
2023-11-09
2023-11-09
2023-11-09
2023-11-09