我必須使用由我不認識的人創建的 PDF 表單。為什么創建表單的程式(Word PDF 匯出?)在解碼的 PDF 的第 6909 行將術語“Stunde”拆分為“S”、“t”和“unde” ?三部分之間沒有視覺上的中斷。
/TT1 1 Tf
11.04 0 0 11.04 59.16 476.1203 Tm
(Datum)Tj
/C2_1 1 Tf
<0003>Tj
/TT1 1 Tf
(der)Tj
0.424 -1.315 Td
(T?tigkeit)Tj
-0.0022 Tc 0 11.04 -11.04 0 261.24 437.7203 Tm
[(Ve)-4.6<7267fc74>-4.2(ungssat)-4.2(z)]TJ
/C2_1 1 Tf
0 Tc <0003>Tj
/TT1 1 Tf
-0.0021 Tc 0.935 -1.315 Td
[<2880>-6.1(/)-7.2(S)0.8(t)-4.1(unde)-4.5(\))]TJ % <<< the important line
0 Tc 11.04 0 0 11.04 340.92 468.8003 Tm
(Anlass/Art)Tj
/C2_1 1 Tf
導致
[
]
為了獲得上面的源代碼,我按照這里的描述解碼了 PDF 檔案。我對 PDF 檔案格式一無所知。
背景:我不得不替換“Stunde”這個詞,它讓我瘋狂地在源代碼中找到寫“Stunde”的地方(部分),因為沒有免費的 PDF 編輯器似乎能夠在沒有水平文本的情況下使用問題。
學術獎勵問題:是否可以將列的總和設定為表單欄位的默認值?(可修改;每次更改列時都會更改。)為什么我能夠用“Einsatz”替換“Stunde”而不會因為現在不規則的偏移而損壞 PDF 檔案?
uj5u.com熱心網友回復:
為什么創建表單的程式(Word PDF 匯出?)在解碼的 PDF 的第 6909 行將術語“Stunde”拆分為“S”、“t”和“unde”?
正如@gettalong 在他的回答中提到的那樣,在您的情況下,這很可能是為了應用字距調整。
如果您開始研究其他一些 PDF 生成器的輸出,您會發現 Word 的這種匯出實際上在拆分單詞方面非常不顯眼:
- 有 PDF 制作者在為其明確設定文本矩陣后單獨繪制每個字符,并且
- 還有一些 PDF 生成器將所用字體的字符的寬度資訊設定為零,并使用TJ指令中的數字相應地在字符之間轉發當前文本矩陣。
這并沒有涵蓋所有要找到的變體,到目前為止還沒有......
因此,
我不得不替換“Stunde”這個詞,它讓我瘋狂地在源代碼中找到寫“Stunde”的地方(部分)
在你的情況下,替換實際上是一項相當微不足道的任務......
是否可以將列的總和設定為表單欄位的默認值?(可修改;每次更改列時都會更改。)
如果所有有問題的列值都存盤在表單欄位中,您可以在表單更改后使用 JavaScript 重新計算總和。要將其僅用作“默認值”,您可以使用其他(隱藏)欄位來標記該欄位是否已被觸摸。但請注意:并非所有 PDF 查看器都支持 JavaScript。此外,PDF 的 JavaScript 物件模型不是在獨立的(如 ISO)規范中指定的,而是在 Adob??e 的規范中指定的,這會使對規范的解釋產生偏差。
為什么我能夠用“Einsatz”替換“Stunde”而不會因為現在不規則的偏移而損壞 PDF 檔案?
由于我們不知道您如何準確地應用更改,這顯然很難說。
但是,很可能您確實損壞了 PDF 和您打開它的 PDF 查看器,只是修復了引擎蓋下的損壞。PDF 查看器有一種強烈的傾向,即在不通知用戶的情況下進行此類幕后修復;結果是野外的大部分PDF實際上被破壞了。
uj5u.com熱心網友回復:
您看不到視覺中斷,但“S”、“t”和“unde”之間的標準距離已經改變。這是由支持例如字距調整的 PDF 撰寫器完成的,以便單詞看起來更好。這就是它以這種方式拆分的原因。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/463633.html
上一篇:如何在節點JS中除錯任何檔案而不在launch,json中指定檔案名
下一篇:如果提示為空,如何停止js腳本
