ABCpdf 中 doc 对象的默认 (x,y) 轴从左下角开始。有没有办法让它在左上角。?
问问题
350 次
2 回答
3
有几种方法可以将原点设置为左上角。
最简单的方法是将 Doc.TopDown 属性设置为 true。或者,您可以指定一个转换矩阵。
有关 Doc.TopDown 属性的更多信息可以在 ABCpdf 的文档中找到...
于 2011-05-11T14:54:21.680 回答
0
我发现我需要用文档的高度减去所有 y 位置项(然后得到它的绝对值)——我发现我的高度是 840(使用 doc.AddGrid();)。
我注意到在我从 abcpdf v8 升级到 v10 后,TopDown 停止工作(出于 tls1.2 安全原因)
private static void SetText(Doc doc, int xposn, int yposn, string text) {
doc.Pos.X = xposn;
doc.Pos.Y = Math.Abs(yposn - 840); //handle TopDown manually using after v10 upgrade
doc.AddText(text);
}
请注意,我无法计算出转换矩阵,但尝试了这个 - 但不知道要使用的正确矩阵:
using (var doc = new Doc()) {
doc.MediaBox.String = "A4"; // this sets the page to A4 (also removes scrollbar showing in the pdf LOL)
//doc.TopDown = true; //2022-02-16 jn appears to not work in v10
var matrix = new Matrix(1.0f, 1.0f, 1.0f, 1.0f, 0.2f, 0.0f);
doc.Transform.Matrix = matrix;
doc.HtmlOptions.Engine = EngineType.Gecko;
doc.HtmlOptions.PageCacheEnabled = false;
doc.HtmlOptions.UseNoCache = true;
doc.HtmlOptions.PageCacheClear();
...
于 2022-02-16T00:49:59.210 回答