我已經編寫了一個應用程序,用於以編程方式從數據庫中填寫PDF模板中的表單並將結果保存到磁盤。除了不按預期方式呈現的多行文本字段之外,所有內容都正常工作。它們應該是頂部,左邊對齊,線條之間沒有間隙。iTextSharp中多行文本表單域的對齊問題
結果我得到的是在這裏:
然而,當我點擊進入使用任何PDF閱讀器表單字段,字段是否自行解決到什麼我期望的那樣。見:
我使用的代碼是漂亮的鍋爐板的東西。
PdfStamper stamper = new PdfStamper(reader, ms, '\0', false);
AcroFields form = stamper.AcroFields;
List<DocumentField> fields = GetData(id);
foreach (DocumentField field in fields)
{
form.SetField(field.FieldName, field.Value);
}
stamper.FormFlattening = true;
stamper.Close();
reader.Close();
我正在使用System.Environment.NewLine
添加carraige退貨。有誰知道什麼可能會導致這種行爲和解決方案,使左上角沒有大的差距對齊。謝謝。
更新與溶液
予移除的字段並重新添加它,它表現爲預期。實際上問題似乎是我使用的是一種名爲「Cambria」的字體,如果將字段設置爲使用該字體,則返回該行爲。
*問題在於我使用的是一種名爲'Cambria'的字體* - 某些字體包含的信息會使程序認爲它的字形比實際大得多。也許這是這裏的問題。 – mkl
[在這個問題](http://stackoverflow.com/a/16584687/1729265)坎布里亞也有一個高度問題。 – mkl