第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在不創(chuàng)建新PDF的情況下更新PDF?

如何在不創(chuàng)建新PDF的情況下更新PDF?

HUH函數(shù) 2019-11-03 08:04:10
我需要用另一個(gè)單詞替換現(xiàn)有PDF AcroField中的一個(gè)單詞。我正在使用iTEXTSHARP的PDFStamper做同樣的事情,并且工作正常。但是,這樣做需要?jiǎng)?chuàng)建一個(gè)新的PDF,我希望所做的更改能夠反映在現(xiàn)有PDF本身中。如果我將目標(biāo)文件名設(shè)置為與原始文件名相同,則不會(huì)反映任何更改。我是iTextSharp的新手,我在做錯(cuò)什么嗎?請(qǐng)幫助..我正在提供我正在使用的代碼段  private void ListFieldNames(string s)    {        try        {            string pdfTemplate = @"z:\TEMP\PDF\PassportApplicationForm_Main_English_V1.0.pdf";            string newFile = @"z:\TEMP\PDF\PassportApplicationForm_Main_English_V1.0.pdf";            PdfReader pdfReader = new PdfReader(pdfTemplate);            for (int page = 1; page <= pdfReader.NumberOfPages; page++)            {                PdfReader reader = new PdfReader((string)pdfTemplate);                using (PdfStamper stamper = new PdfStamper(reader, new FileStream(newFile, FileMode.Create, FileAccess.ReadWrite)))                {                    AcroFields form = stamper.AcroFields;                    var fieldKeys = form.Fields.Keys;                    foreach (string fieldKey in fieldKeys)                    {                        //Replace Address Form field with my custom data                        if (fieldKey.Contains("Address"))                        {                            form.SetField(fieldKey, s);                        }                        }                    stamper.FormFlattening = true;                    stamper.Close();                }            }        }
查看完整描述

2 回答

?
慕容708150

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊

如我的《iText in Action》一書中所述,您不能同時(shí)讀取和寫入文件。想一想Word的工作原理:您無法打開Word文檔并直接對(duì)其進(jìn)行寫入。Word總是創(chuàng)建一個(gè)臨時(shí)文件,將更改寫入其中,然后用它替換原始文件,然后丟棄該臨時(shí)文件。


你也能做到:


閱讀與原來的文件PdfReader,

為創(chuàng)建一個(gè)臨時(shí)文件PdfStamper,完成后,

用臨時(shí)文件替換原始文件。

要么:


將原始文件讀入byte[],

創(chuàng)建PdfReader與此byte[],和

將原始文件的路徑用于PdfStamper。

第二種選擇更為危險(xiǎn),因?yàn)槿绻鷪?zhí)行某些操作會(huì)導(dǎo)致中的異常,則您將丟失原始文件PdfStamper。



查看完整回答
反對(duì) 回復(fù) 2019-11-04
?
翻翻過去那場(chǎng)雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊

我遵循了您的第一種方法,并使用壓模創(chuàng)建了一個(gè)臨時(shí)文件,該文件后來用于替換原始文件。但是,由于PDF是從SDL Tridion發(fā)布并存儲(chǔ)在Tridion文件系統(tǒng)中的,因此我們無法對(duì)原始文件進(jìn)行任何更改-編輯/刪除它。Evrytime我嘗試刪除原始錯(cuò)誤,并給出以下錯(cuò)誤:e:\ Web \ Compliance \ NonPCI \ SDL \ wwwroot \ xyzrights \ updatePdf.aspx:line 150訪問路徑'E:\ Web \ Compliance \ NonPCI \ SDL \ wwwroot \ xyzrights \ Images \ ListPrograming_Part1_AcroForm.pdf'被拒絕。請(qǐng)幫助.

查看完整回答
反對(duì) 回復(fù) 2019-11-04
  • 2 回答
  • 0 關(guān)注
  • 368 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)