我正在使用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);
}
Run Code Online (Sandbox Code Playgroud)
结果是:
每页上的第一个标签看起来都是正确的,但其余的都很时髦.缺少矩形和圆形,文本根本没有剪裁.
有人见过这样的样品吗?
谢谢
我有大量要从数据库中删除的项目(1M+),我分叉了一个后台作业来处理这个问题,这样用户就不必等待它完成继续他/她正在做,问题是,当项目被删除时,应用程序变得无响应,所以我想我会逐块处理项目并睡眠几秒钟然后继续。
这是处理删除的代码:
// laravel job class
// ...
public function handle()
{
$posts_archive = PostArchive::find(1); // just for the purpose of testing ;)
Post::where('arch_id', $posts_archive->id)->chunk(1000, function ($posts) {
//go through the collection and delete every post.
foreach($posts as $post) {
$post->delete();
}
// throttle
sleep(2);
});
}
Run Code Online (Sandbox Code Playgroud)
预期结果:帖子被分块并处理每个块,然后空闲 2 秒,重复此操作直到删除所有项目。
实际结果:随机数量的项目被删除一次,然后过程结束。没有错误没有指标,没有线索?
有没有更好的方法来实现这一点?