gpt4 book ai didi

skiasharp - PDF 页面上的多个剪切区域不起作用

转载 作者:行者123 更新时间:2023-12-03 17:34:02 27 4
gpt4 key购买 nike

我正在使用 SkiaSharp 将标签打印为 PDF(和其他内容)。 PDF 的每一页都可以有多个行和列。我需要将每个标签剪裁到正确的大小,这样它就不会破坏相邻的标签。

为了测试,每个标签都有一个延伸太远的矩形加上 7 行文本和一个靠近垂直中间的圆圈。

我的代码是这样的:

using (var region = new SKRegion())
{
region.SetRect(_labelClipRect);
_currentCanvas.ClipRegion(region, SKClipOperation.Intersect);
_labelView.Draw(_currentCanvas, _printRequest.Device.DPI, xOffsetPX, yOffsetPX);
}

结果是:
Snippet of a PDF showing clipping errors
每页上的第一个标签看起来是正确的,但其余的都很时髦。矩形和圆形丢失,文本根本没有剪裁。

有人看过/得到过这样的样本吗?

谢谢

最佳答案

每次调用 _currentCanvas.ClipRegion将传递的区域与当前区域相交,它不会将剪辑设置为此区域。
尝试保存 Canvas 状态并在绘制标签后恢复:

using (var region = new SKRegion())
{
region.SetRect(_labelClipRect);
_currentCanvas.Save();
_currentCanvas.ClipRegion(region, SKClipOperation.Intersect);
_labelView.Draw(_currentCanvas, _printRequest.Device.DPI, xOffsetPX, yOffsetPX);
_currentCanvas.Restore();
}

关于skiasharp - PDF 页面上的多个剪切区域不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50371523/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com