2012-04-10 17 views
0

iTextSharpを使用してpdfファイルにテキストを挿入するには、以下のコードを使用します。何度も正しく動作しますが、それ以外の時は動作しません。itextsharp C#でPDFファイルにテキストを挿入

FileStream pdfOutputFile = new FileStream(pdfTemplate, FileMode.Create); 
PdfReader pdfReader = new PdfReader(pdffile, System.Text.Encoding.UTF8.GetBytes("ownerPassword")); 
PdfStamper pdfStamper = null; 
// pdfReader.Permissions = 1; 
pdfStamper = new PdfStamper(pdfReader, pdfOutputFile); 
AcroFields testForm = pdfStamper.AcroFields; 

PdfContentByte pdfPageContents = pdfStamper.GetUnderContent(index + 1); 
string[] formattext = printTxt.Split(new char[] { '\n' }); 
float lhight = 0; 
float abxt = abx; 

printTxt= "Hello word"; 

ft = new FormattedText(printTxt, Color.Black, "Arial", EncodingType.Winansi, true, 9); 
Bitmap b = new Bitmap(1, 1); 
Graphics graphics = Graphics.FromImage(b); 
Font f = new Font("Arial", 9); 

pdfPageContents.BeginText(); 

BaseFont baseFont = BaseFont.CreateFont(BaseFont.HELVETICA, "ASCII", false); 
pdfPageContents.SetFontAndSize(baseFont,20); // 40 point font 
pdfPageContents.SetRGBColorFill(0, 0, 0); 
float textAngle = 0; 

pdfPageContents.ShowTextAligned(PdfContentByte.ALIGN_LEFT, printTxt, abx+3, (float)aby + 12 + lhight, textAngle); 
pdfPageContents.EndText(); 
+0

[this](http://stackoverflow.com/questions/3992617/itextsharp-insert-text-to-an-existing-pdf) –

+0

私の問題は、このコードは毎回動作しないということです。それは1つまたは別のpdfファイルで動作しないでください –

答えて

1

私はどんなのPDFファイルにテキストを書き込むために使用するアプローチは、私がソフトウェアツールのPDFニトロProfessionalを使用してテキストフィールドを作成することである(これらのフィールドを作成するために、いくつかの他のソフトウェアを使用することができます)。完了したら、次のパターンのコードを使用してこれらのフィールドにテキストを書き込むことができます。

string pdfTemplate = filePath; 
string newFile = outputFilePath; 
PdfReader PDFWriter = new PdfReader(pdfTemplate); 
PdfStamper pdfStampDocument = new PdfStamper(PDFWriter, new FileStream(newFile, FileMode.Create)); 
AcroFields pdfFormFields = pdfStampDocument.AcroFields; 
//For Text field 
pdfFormFields.SetField("txtTextFieldName", "First Text"); 
//For Check Box Field 
pdfFormFields.SetField("chkSomeCheckBox", "Yes"); 
PDFWriter.Close(); 
pdfStampDocument.Close(); 

はそれがお役に立てば幸いです。

+0

私は多くの署名画像、日付と署名者の名前を場所のPDFファイルに挿入したい...サイン画像は右に挿入するが、テキスト(名前、日付)はPDFに挿入しないファイル –

+0

はフォーマットに問題があります。ドキュメントにフィールドを作成することをお勧めしましたか? –

+0

ihaveはDocをpdfに変換してテキストを挿入します。それは働いている。 pdfをimageで作成し、その上にテキストを挿入するとき。それは仕事ではありません –

関連する問題