gpt4 book ai didi

macos - 从 Cocoa 将 View 导出为 PDF

转载 作者:行者123 更新时间:2023-12-03 16:21:38 25 4
gpt4 key购买 nike

Brad Miller @ Cocoa Dev Central写了一篇关于从 Cocoa 创建 PDF 的教程。我尝试按照那里的教程进行操作,但由于它相当旧(2003 年),因此很多代码已被弃用。经过一番摆弄后,我让它开始工作,但是当我尝试导出 PDF 时,打印对话框显示,并且它不会将 PDF 保存到我指定的文件中。

NSPrintInfo *printInfo;
NSPrintInfo *sharedInfo;
NSPrintOperation *printOp;
NSMutableDictionary *printInfoDict;
NSMutableDictionary *sharedDict;

sharedInfo = [NSPrintInfo sharedPrintInfo];
sharedDict = [sharedInfo dictionary];
printInfoDict = [NSMutableDictionary dictionaryWithDictionary: sharedDict];

[printInfoDict setObject:NSPrintSaveJob
forKey:NSPrintJobDisposition];

[printInfoDict setObject:[panel URL] forKey:NSPrintSavePath];

printInfo = [[NSPrintInfo alloc] initWithDictionary:printInfoDict];
[printInfo setHorizontalPagination: NSAutoPagination];
[printInfo setVerticalPagination: NSAutoPagination];
[printInfo setVerticallyCentered:NO];

printOp = [NSPrintOperation printOperationWithView:textView
printInfo:printInfo];

[printOp setShowsProgressPanel:NO];
[printOp runOperation];

我的导出 PDF 实现的完整代码是 here 。上面的代码只是关于导出。

如果有人能看到我在这里做错了什么,我会非常高兴......

最佳答案

其实,当我再读一遍的时候,我自己就在这里找到了问题的答案。问题在于包含以下内容的行:

[printInfoDict setObject:[panel URL] forKey:NSPrintSavePath];

正如您所看到的,文件 URL 被拾取,但它应该是路径而不是 URL。所以我把它改成这样:

[printInfoDict setObject:[[panel URL] path] forKey:NSPrintSavePath];

砰的一声,它起作用了!

关于macos - 从 Cocoa 将 View 导出为 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7930577/

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