ABCpdf AddImageHtml 文本在没有管理员权限的情况下拉伸
ABCpdf AddImageHtml text stretches without administrator rights
问题:
当我 运行 相同的程序管理员与非管理员时,他们会产生不同的结果。
示例:
如您所见,如果没有管理员权限,文本会被垂直拉伸。
重现代码:
var html = File.ReadAllText( "htmldata.txt" );
using( var doc = new Doc() )
{
doc.HtmlOptions.Engine = EngineType.Chrome;
doc.Page = doc.AddPage();
doc.AddImageHtml( html );
doc.Save( "testPDF.pdf" );
Console.WriteLine( $"DPI: {doc.Rendering.DotsPerInch}" );
Console.WriteLine( $"LOG: {doc.Rendering.Log}" );
Console.WriteLine( $"OPTIONS: {string.Join(Environment.NewLine, doc.Options)}" );
float dpiX, dpiY;
using( Graphics graphics = Graphics.FromHwnd( IntPtr.Zero ) )
{
dpiX = graphics.DpiX;
dpiY = graphics.DpiY;
}
Console.WriteLine( $"Transform: {doc.Transform.String}" );
Console.WriteLine($"DPI X:{dpiX}{Environment.NewLine}DPI Y:{dpiY}");
}
Process.Start( "testPDF.pdf" );
Console.ReadKey();
htmldata.txt的内容为:
<body style='font-family:"Source Sans Pro"'>
some text on the page
</body>
备注
我在没有风格的情况下完成了这个,它给出了同样的问题
我已经尝试过的:
发现事件中的差异(管理员与非管理员之间)使用:Process monitor,除了路径之外我无法发现明显的差异。
检查是否正在使用正确的 DLL 使用:listDLLs,正在使用正确的 DLL。
检查%temp%
目录的访问权限为the docs表明AddImageHtml
用它来存储HTML渲染
从代码中可以看出,我尝试比较 DPI 和某些设置,但它们都是一样的。
注
我使用 AddImageHtml
而不是 AddTextStyled
的原因是因为它支持更多 HTML (表格等),所以我不能使用不同的方法(如果它不支持大多数 HTML)。使用它的用户也无法获得管理员权限,这会危及系统。
我知道这是一个老问题,但我在一些 Windows 2012 R2 系统(在 VMWARE 下)上使用带有 Chrome 引擎的 AbcPdf11 时遇到了类似的拉伸问题,我已经修复了通过禁用 Javascript:
doc.HtmlOptions.UseScript = false;
我认为在启用 JS 的情况下,它会尝试根据某些系统设置自动计算 BrowserWidth
。
问题:
当我 运行 相同的程序管理员与非管理员时,他们会产生不同的结果。
示例:
如您所见,如果没有管理员权限,文本会被垂直拉伸。
重现代码:
var html = File.ReadAllText( "htmldata.txt" );
using( var doc = new Doc() )
{
doc.HtmlOptions.Engine = EngineType.Chrome;
doc.Page = doc.AddPage();
doc.AddImageHtml( html );
doc.Save( "testPDF.pdf" );
Console.WriteLine( $"DPI: {doc.Rendering.DotsPerInch}" );
Console.WriteLine( $"LOG: {doc.Rendering.Log}" );
Console.WriteLine( $"OPTIONS: {string.Join(Environment.NewLine, doc.Options)}" );
float dpiX, dpiY;
using( Graphics graphics = Graphics.FromHwnd( IntPtr.Zero ) )
{
dpiX = graphics.DpiX;
dpiY = graphics.DpiY;
}
Console.WriteLine( $"Transform: {doc.Transform.String}" );
Console.WriteLine($"DPI X:{dpiX}{Environment.NewLine}DPI Y:{dpiY}");
}
Process.Start( "testPDF.pdf" );
Console.ReadKey();
htmldata.txt的内容为:
<body style='font-family:"Source Sans Pro"'>
some text on the page
</body>
备注
我在没有风格的情况下完成了这个,它给出了同样的问题
我已经尝试过的:
发现事件中的差异(管理员与非管理员之间)使用:Process monitor,除了路径之外我无法发现明显的差异。
检查是否正在使用正确的 DLL 使用:listDLLs,正在使用正确的 DLL。
检查
%temp%
目录的访问权限为the docs表明AddImageHtml
用它来存储HTML渲染从代码中可以看出,我尝试比较 DPI 和某些设置,但它们都是一样的。
注
我使用 AddImageHtml
而不是 AddTextStyled
的原因是因为它支持更多 HTML (表格等),所以我不能使用不同的方法(如果它不支持大多数 HTML)。使用它的用户也无法获得管理员权限,这会危及系统。
我知道这是一个老问题,但我在一些 Windows 2012 R2 系统(在 VMWARE 下)上使用带有 Chrome 引擎的 AbcPdf11 时遇到了类似的拉伸问题,我已经修复了通过禁用 Javascript:
doc.HtmlOptions.UseScript = false;
我认为在启用 JS 的情况下,它会尝试根据某些系统设置自动计算 BrowserWidth
。