Dot-Net

是否可以修改 PDF 表單欄位名稱?

  • January 26, 2021

這是情況。我有一個帶有自動生成的 pdf 表單欄位名稱的 PDF。問題是這些名稱對使用者不是很友好。它們看起來像:topmostSubform

$$ 0 $$.Page1$$ 0 $$。網站地址$$ 0 $$ 我希望能夠更改它們,使它們類似於網站地址。我可以訪問 ABCPDF 並且我有使用 iTextSharp 的經驗,但是我嘗試使用這些 API 來執行此操作(訪問表單欄位並嘗試重命名),但似乎不可能。

有沒有人有任何嘗試通過某種 API(最好是開源的)來做到這一點的經驗。程式碼也是.Net。

好消息:您可以在 iTextSharp 中更改欄位名稱。

但是,您實際上無法編輯 PDF。您將閱讀現有的 PDF,更新記憶體中的欄位名稱,然後寫出修改後的 PDF。要更改欄位名稱,請呼叫 AcroFields.RenameField 方法。

這是一個片段:

PdfReader reader = new PdfReader(PDF_PATH);
using (FileStream fs = new FileStream("Test Out.pdf", FileMode.Create)) {
   PdfStamper stamper = new PdfStamper(reader, fs);
   AcroFields fields = stamper.AcroFields;
   fields.RenameField("oldFieldName", "newFieldName");
   stamper.Close();
}

現在是壞消息:您可以在重命名欄位中使用的字元似乎存在限制。

我用您的範例欄位名稱測試了上面的程式碼段,但它不起作用。刪除句點,它確實有效。我不確定是否有解決方法,但這可能對您來說是個問題,

引用自:https://stackoverflow.com/questions/2343657