当我复制文件时
var document = new Document();
var writer = PdfWriter.GetInstance(document, memoryStream);
document.Open();
var cb = writer.DirectContent;
var reader = new PdfReader(this_file_name);
document.SetPageSize(reader.GetPageSizeWithRotation(1));
document.NewPage();
var page = writer.GetImportedPage(reader, 1);
cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
document.CloseDocument(); writer.Close();
当我打开新文档时 - 它是空的。 我尝试更改pdf版本和压缩级别 - 没有结果。 我不能使用PdfStamper,因为复制文件后需要插入一些文字和图片。this bad file
答案 0 :(得分:1)
PDF是一个很好的例子,说明为什么假设0,0
对应于"左下角"永远不是一个好主意。 PDF实际上可以自由地重新定义他们认为合适的坐标空间。该PDF具有第1页的特定条目:
/MediaBox [0, -1693.08, 2396.52, 0]
这会将y
参数偏移1693.08个单位"向下"。幸运的是,这很容易解决。您正确设置了页面大小,但您还希望在放置模板时使用该页面大小的坐标:
var s = reader.GetPageSizeWithRotation(1);
cb.AddTemplate(page, s.Left, s.Bottom);