用于创建标签的itextsharp编辑器

时间:2014-12-08 19:44:41

标签: c# itextsharp

我想知道是否存在一些用于编辑itextsharp代码的程序。

现在我在VS lile中直接编写代码:

// Delivery address details
int left_margin = 40;
int top_margin = 720;
writeText(cb, "Delivery address", left_margin, top_margin, f_cb, 10);
writeText(cb, drHead["delCustomerName"].ToString(), left_margin, top_margin-12, f_cn, 10);
writeText(cb, drHead["delAddress1"].ToString(), left_margin, top_margin-24, f_cn, 10);
writeText(cb, drHead["delAddress2"].ToString(), left_margin, top_margin-36, f_cn, 10);
writeText(cb, drHead["delAddress3"].ToString(), left_margin, top_margin-48, f_cn, 10);
writeText(cb, drHead["delZipcode"].ToString(), left_margin, top_margin-60, f_cn, 10);
writeText(cb, drHead["delCity"].ToString() + ", " + drHead["delCountry"].ToString(), left_margin+65, top_margin-60, f_cn, 10);

但是我想使用一些编辑器,因为这是手工编写的可怕。我正在寻找一位编辑,但我找不到它。

1 个答案:

答案 0 :(得分:2)

我猜你继承了一些代码,对吧?我之所以这么说,因为writeText()不是来自iTextSharp,而是某人的特定实现包含了iTextSharp的代码。

iTextSharp是一个最终生成PDF的库,因此受PDF规范的约束。这首先是最重要的事情。即使你已经知道这一点,你也必须始终牢记这一点。

iText以两种基本模式运行,1)完全抽象,你添加“段落”和“表格”,2)手动放置模式,你说“在这个坐标上用这个字体写这个文字,不用担心,我我已经测量了所有东西,所以我知道在哪里插入换行符,所以它看起来并不奇怪。“

完全抽象模式(我的术语,不是他们的)使用Document对象,您创建新Paragraph个对象,Add对象Document和iText表示其余出去给你。控制力较弱,但如果你能够以这种模式生活,你的生活会变得更加容易。

手动放置模式(再次,我的术语,而不是他们的术语)使用PdfWriterPdfContentByte类的实例来发出更接近PDF规范的命令。使用此模式假设您至少部分阅读了规范。例如,您应该知道“段落”和“表格”实际上并不存在于PDF中。

您正在使用的变量cb几乎肯定是PdfContentByte的一个实例,因此您使用的是手动放置模式。

现在回答你的问题。

不,没有GUI程序可以编辑特定于iTextSharp的代码。但是,Adobe Acrobat,Adobe Illustrator和Adobe InDesign等程序确实知道如何使用PDF。那里也可能有免费的。您可以使用这些程序,找到事物的x,y坐标,并手动将它们写入您的代码。