私はこれに苦労しています。教祖の助けが必要です!.
itextsharp を使用して、サーバーに保存したくないテキストをオンザフライで書き込んでいます。それをメモリ ストリームに入れて、pdf で表示するだけです。
このコードを変更するにはどうすればよいですか。
var reader = new PdfReader(filePath);
var size = reader.GetPageSizeWithRotation(1);
var document = new Document(size);
var fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
var writer = PdfWriter.GetInstance(document, fs);
document.Open();
var cb = writer.DirectContent;
for (int page = 1; page <= reader.NumberOfPages; page++)
{
document.NewPage();
var importedPage = writer.GetImportedPage(reader, page);
cb.AddTemplate(importedPage, 0, 0);
BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
cb.BeginText();
cb.SetFontAndSize(bf, 10);
cb.ShowTextAligned(Element.ALIGN_LEFT, lefttext, 50, 400, 90);
cb.EndText();
cb.BeginText();
cb.SetFontAndSize(bf, 10);
cb.ShowTextAligned(Element.ALIGN_JUSTIFIED_ALL, headertext, 280, 720, 0);
cb.EndText();
cb.BeginText();
cb.SetFontAndSize(bf, 10);
cb.ShowTextAligned(Element.ALIGN_JUSTIFIED_ALL, footertext, 280, 50, 0);
cb.EndText();
}
document.Close();
fs.Close();
writer.Close();
reader.Close();
コードを修正しましたが、今回は最初のページに同じページを複数回書き込みます。何が間違っている可能性がありますか?この初心者を助けてください:(
var reader = new PdfReader(server.MapPath("~/Data/162013.pdf"));
using (var ms = new MemoryStream())
{
var stamper = new PdfStamper(reader, ms);
var cb = stamper.GetOverContent(1);
var size = reader.GetPageSizeWithRotation(1);
var document = new Document(size);
document.Open();
for (var page = 1; page <= reader.NumberOfPages; page++)
{
document.NewPage();
var importedPage = stamper.GetImportedPage(reader, page);
cb.AddTemplate(importedPage, 0 , 0);
var bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
cb.BeginText();
cb.SetFontAndSize(bf, 10);
cb.ShowTextAligned(Element.ALIGN_LEFT, "sdfdsf", 50, 400, 90);
cb.EndText();
cb.BeginText();
cb.SetFontAndSize(bf, 10);
cb.ShowTextAligned(Element.ALIGN_JUSTIFIED_ALL, "sdfsdfsd", 280, 720, 0);
cb.EndText();
cb.BeginText();
cb.SetFontAndSize(bf, 10);
cb.ShowTextAligned(Element.ALIGN_JUSTIFIED_ALL, "sdfsdf", 280, 50, 0);
cb.EndText();
}
stamper.FormFlattening = true;
document.Close();
stamper.Close();
DownloadAsPDF(ms);
}
}