我现在可以制作的PDF: 截图http://yart.com.au/junk/itextsharp_problem.jpg
我希望文本填满左下方的空间.我怎样才能做到这一点?谢谢!
这是我的代码:
private static void CreatePdf4(string pdfFilename, string heading, string text, string[] photos, string emoticon)
{
Document document = new Document(PageSize.A4.Rotate(), 26, 36, 0, 0);
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(pdfFilename, FileMode.Create));
document.Open();
// Heading
Paragraph pHeading = new Paragraph(new Chunk(heading, FontFactory.GetFont(FontFactory.HELVETICA, 54, Font.NORMAL)));
document.Add(pHeading);
// Photo 1
Image img1 = Image.GetInstance(HttpContext.Current.Server.MapPath("/uploads/photos/" + photos[0]));
img1.ScaleAbsolute(350, 261);
img1.SetAbsolutePosition(46, 220);
img1.Alignment = Image.TEXTWRAP;
document.Add(img1);
// Photo 2
Image img2 = Image.GetInstance(HttpContext.Current.Server.MapPath("/uploads/photos/" + photos[1]));
img2.ScaleAbsolute(350, 261);
img2.SetAbsolutePosition(438, 220);
img2.Alignment = Image.TEXTWRAP; …Run Code Online (Sandbox Code Playgroud) 我正在为我住的地方附近的食品储藏室做一些"无偿"的开发.他们被表格和文书工作所淹没,我想开发一个简单地从他们的MySQL服务器(我在之前的项目中为他们设置)中读取数据的系统,并将数据提供给他们所需的所有表格的PDF版本.填写.这将极大地帮助他们并为他们节省大量时间,并消除填写这些表格时产生的许多人为错误.
不知道任何有关PDF文件的内部,我可以预见这里有两个途径:
所以我的第一个问题是:我面临的两条途径中的哪一条?PDF是否具有"字段"的概念,还是需要通过告诉PDF库放置数据的位置的像素坐标来"填写"这些文档?
其次,我显然需要一个开源(和Java)库来完成这项工作.iText似乎是一个良好的开端,但我听说它可能很难合作.任何人都可以在这里提出一些想法或一般建议吗?提前致谢!
我正在尝试使用iTextSharp在PDF文档的每个页面上创建一个页脚,其格式为Page#of#,跟随iText页面和书籍上的教程.虽然我一直在cb.SetFontAndSize(helv,12)上得到一个例外; - 未将对象引用设置为对象.有谁能看到这个问题?代码如下.
谢谢,罗布
public class MyPdfPageEventHelpPageNo : iTextSharp.text.pdf.PdfPageEventHelper
{
protected PdfTemplate total;
protected BaseFont helv;
private bool settingFont = false;
public override void OnOpenDocument(PdfWriter writer, Document document)
{
total = writer.DirectContent.CreateTemplate(100, 100);
total.BoundingBox = new Rectangle(-20, -20, 100, 100);
helv = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
}
public override void OnEndPage(PdfWriter writer, Document document)
{
PdfContentByte cb = writer.DirectContent;
cb.SaveState();
string text = "Page " + writer.PageNumber + " of ";
float textBase = document.Bottom - 20;
float textSize = 12; …Run Code Online (Sandbox Code Playgroud) 我正在使用iText写一个PDF.在某些情况下,我需要使用该SetVisibleSignature功能对PDF进行签名.使用此功能,我们需要指定要将内容写入的矩形.
但是我很难计算出字符串的宽度,这样我就可以在设置PDF上的签名之前设置矩形.
如何计算iText中的字符串宽度?
我正在开发一个Java应用程序,它使用iText对可在线提供的PDF进行数字签名.我已经能够使用从GlobalSign获得的测试证书签署文档,并且它非常有用.测试证书是GlobalSign的"DocumentSign for Adobe PDF"的一部分.我必须使用此证书的原因是我的证书链回到Adobe Root CA,据我所知(我可能是错的)是Adobe Reader开箱即用的唯一CA.我尝试了VeriSign和Entrust的常规SSL证书,但是由于它们不受信任而无法正常工作.
现在我需要获得永久性证书,但GlobalSign(以及VeriSign和其他人)想要向我推销一项服务,该服务需要额外的硬件来进行我不想要的双因素身份验证.似乎没有办法获得证书.我的问题是,还有其他人经历过这个吗?是否有其他方法可以获得Adobe Reader将信任的证书(除了让最终用户手动将证书输入到可信证书列表中)?我错过了什么吗?
感谢您的任何帮助,您可以提供.
在itext中我有一个块/短语/段落(我不介意哪个),我想在页面上的其他位置定位,例如300 x 200.我该怎么做?
我正在使用itext生成pdf文件.我想在页面中间对齐我的标题.目前我正在使用这样的
Paragraph preface = new Paragraph();
for (int i = 0; i < 10; i++) {
preface.add(new Paragraph(" "));
}
Run Code Online (Sandbox Code Playgroud)
这是正确的还是有其他最好的方法来做到这一点.
我想用itext生成一个pdf.我会在某些时候添加内容以进行分页.我需要插入几个单独的conenidos依赖来源,所以我要求用户在单独的页面上这样做.有任何想法吗???
我找到了重新编写旧代码的方法,这些代码将PDF文件签名为新文件,这标志着来自Web服务的MemoryStreams(字节数组).简单吧?那是昨天.今天我无法让它发挥作用.
这是旧代码,它使用FileStreams并且它可以工作:
public static string OldPdfSigner(PdfReader pdfReader, string destination, string password, string reason, string location, string pathToPfx)
{
using (FileStream pfxFile = new FileStream(pathToPfx, FileMode.Open, FileAccess.Read))
{
...
using (PdfStamper st = PdfStamper.CreateSignature(pdfReader, new FileStream(destination, FileMode.Create, FileAccess.Write), '\0'))
{
PdfSignatureAppearance sap = st.SignatureAppearance;
sap.SetCrypto(key, chain, null, PdfSignatureAppearance.WINCER_SIGNED);
sap.Reason = reason;
sap.Location = location;
return destination;
}
}
}
Run Code Online (Sandbox Code Playgroud)
下面是我自己重做的内容,它抛出System.ObjectDisposedException:无法访问已关闭的Stream.
public static byte[] PdfSigner(PdfReader pdfReader, string password, string reason, string location, string pathToPfx)
{
using (FileStream pfxFile = new FileStream(pathToPfx, FileMode.Open, …Run Code Online (Sandbox Code Playgroud) itext ×10
java ×5
pdf ×5
.net ×2
c# ×2
itextsharp ×2
forms ×1
memorystream ×1
pdfstamper ×1
text-width ×1
x509 ×1