WebView (OSX) 未在打印面板预览中呈现

2024-05-06

我的应用程序创建并打印 WebView。输出页面正在正确组装和打印,但我没有在打印面板中预览页面。

NSRect printViewFrame = {};
printViewFrame.size.width = paperSize.width - marginLR*2;
printViewFrame.size.height = paperSize.height - marginTB*2;
WebView *printView = [[WebView alloc] initWithFrame: printViewFrame frameName:@"printFrame" groupName:@"printGroup"];
[printView setShouldUpdateWhileOffscreen: YES];

// use the template engine to generate the document HTML

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *supportDir = [[paths objectAtIndex:0] stringByAppendingPathComponent: [[NSProcessInfo processInfo] processName]];
NSString *templatePath = [[supportDir stringByAppendingPathComponent: @"Templates"] stringByAppendingPathComponent: @"Default.mustache"];
GRMustacheTemplate *template = [GRMustacheTemplate templateFromContentsOfFile: templatePath error: NULL];

NSString *webviewHTMLString = [template renderObject: reportDict error:NULL];

// Print it

[[printView mainFrame] loadHTMLString: webviewHTMLString baseURL: tempImageURL];
NSPrintOperation *printOp = [NSPrintOperation printOperationWithView: [[[printView mainFrame] frameView] documentView] printInfo: printInfo];
[printOp setShowsPrintPanel: YES];  
[printOp runOperation];
[printView release];

此外,如果我尝试使用备用 printOperation 在后台打印,我会得到一个空白页:

[printOp runOperationModalForWindow: mainWindow delegate:self didRunSelector:@selector(printOperationDidRun:success:contextInfo:) contextInfo: nil];

有任何想法吗?


事实证明[[printView mainFrame] loadHTMLString: webviewHTMLString baseURL: tempImageURL];在渲染完成之前不会阻塞。修改后的代码如下:

{   
    .
    .
    .

    // Load the frame, print it in the delegate when the load is complete   
    [printView setFrameLoadDelegate: self];
    [[printView mainFrame] loadHTMLString: webviewHTMLString baseURL: tempImageURL];
}

//  WebView has completed loading, so it can be printed now.
- (void) webView: (WebView *) printView didFinishLoadForFrame: (WebFrame *)frame
{
    NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];

    NSPrintOperation *printOp = [NSPrintOperation printOperationWithView: [[[printView mainFrame] frameView] documentView] printInfo: printInfo];
    [printOp setShowsPrintPanel: YES];
    [printOp runOperation];
    [printView release];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WebView (OSX) 未在打印面板预览中呈现 的相关文章

  • 在java中查找OSX的版本

    我需要测试 java 中 osx 的版本是否 Try System getProperty os name and or System getProperty os version 它返回字符串 HERE https docs oracle
  • 如何为整个 iOS 应用程序设置自定义字体而不指定大小

    我正在尝试在整个我的应用程序中应用自定义字体iOS app 我发现我可以使用 UILabel appearance setFont UIFont fontWithName Proxima Nova size 17 0 设置所有的默认字体和大
  • 是否可以在android中打印网页而不弹出窗口?

    我正在使用默认的 Android 打印机选项 Android 版本 4 4 我想绕过 printManager 适配器弹出窗口 如何在android中隐藏弹出窗口并直接打印到打印机 您不能扩展 PrintManager 类 这是最后一堂课
  • 使用不同的背景颜色保存 MATLAB 图窗

    我想打印一个带有深色背景和白色标签的 MATLAB 图 如果我使用print or saveas命令我不知何故失去了颜色 绘图符号再次变暗 背景变为白色 points rand 100 3 plot3 points 1 points 2 p
  • 当用户按下打印时运行脚本,并且在脚本结束之前不开始假脱机(linux,cups)

    我需要做的是结合用户按下打印来执行 python 程序 脚本 并且在该程序退出之前不要让打印作业假脱机 原因是打印驱动程序不是开源的 我需要更改用户设置 在本例中是部门 ID 和密码 通常是每个用户 但因为这是一个信息亭 具有相同帐户的不同
  • Mac OS High Sierra 下无法打开 pty

    我的问题的本质是 用户程序如何在 Mac OS High Sierra 上打开 pty 例如 dev ptyp0 设备名称的标准 open 似乎不起作用 尽管它的保护是 crw rw rw 上下文是在 Mac OS 下运行 Emacs 在
  • 在谓词中使用@min

    我当前获取 min 或 max 值的版本是 for NSManagedObject destination in allSpecifics allRates addObject destination valueForKey rate NS
  • 从 Android 模拟器使用 WebView WebGL

    据我了解 WebGL 仅在 Android Lollipop 中的 WebView 更新 Play 商店中的 WebView 组件 和较新版本 无需 Play 商店更新 中受支持 但是 我有一个使用 Android 7 1 1 的模拟器 并
  • 在 Mac 上更新 Make 版本

    我正在尝试更新 mac 上的 make 版本 但遇到了问题 最小项目依赖项是 4 1 但我的版本似乎是 3 81 我已将 Xcode 更新到最新版本并安装了命令行工具 但它似乎仍然是旧版本 有谁遇到过这个问题或知道解决方法吗 这是我所做的
  • NSRunAlertPanel 显示在“活动窗口”后面

    我正在尝试整理一个简单的错误报告包 如果我的主程序崩溃 它会保存崩溃日志 然后启动报告程序 报告程序询问用户是否可以将崩溃日志发送给我 然后就这样做了 我正在使用 NSRunAlertPanel 创建一个基本消息框 由于某种原因 该消息框显
  • CIImage内存未释放

    我正在尝试拍摄一系列图像 混合当时的 X 图像并生成新图像 这是我必须完成此任务的代码 static func blendImages blendFrames Int blendMode CIImage BlendMode imagePat
  • Cocoa 我可以隐藏/显示 NSTextField / NSSecureTextField

    有没有办法在 Cocoa 中打开和关闭 secureTextField 操作系统 我希望用户可以选择查看他们的密码 在 iOS 中 我可以执行类似 textField setSecureTextEntry YES 的操作 我找到了 secu
  • Android WebView setCertificate 问题 SSL 问题

    我看过很多关于 SSL 错误的帖子和信息 并且我自己也偶然发现了一个 我尝试使用 GlobalSign CA BE 证书通过 Android WebView 访问网页 但收到不受信任的错误 对于大多数手机来说 处理这个问题效果很好 只需告诉
  • 从沙箱中的帮助应用程序读取 NSUserDefaults

    我找到了一些阅读资源NSUserDefaults另一个应用程序的 Objective C NSUserDefaults 缓存会阻止其他应用程序准确读取更改 https stackoverflow com questions 10667848
  • 如何使用 Objective-C 加载 dylib 或 .a(静态库)文件?

    C 代码 Windows Assembly assembly Assembly LoadFrom AssemblyPath System Type objTypes assembly GetTypes Type libType null 我
  • 并行磁盘 I/O

    我有几个想要阅读的日志文件 不失一般性 假设日志文件处理如下 def process infilepath answer 0 with open infilepath as infile for line in infile if line
  • NSRunningApplication - 终止

    我将如何使用NSRunningApplication 我有与启动应用程序相反的东西 NSWorkspace sharedWorkspace launchApplication appName 但我想关闭一个 当我调试代码时出现错误NSRun
  • 如何在 Mac 操作系统中播放声音?

    我想在专为 Mac OS X Lion 10 7 而不是 iPhone 设计的 Objective C 应用程序中播放 mp3 文件 谢谢 看看NSSound http developer apple com library mac doc
  • Objective C 中最好的多线程方法?

    我正在开发一个 iPad 应用程序 目前正在努力寻找多线程的最佳方法 让我用一个简化的例子来说明这一点 我有一个包含 2 个子视图的视图 一个目录选择器和一个包含所选目录中所有图像缩略图的图库 由于 下载 和生成这些缩略图可能需要相当长的时
  • MacOSX 下 libpng 的链接器错误

    我正在使用 MacOSX 10 7 2 和 Xcode 4 2 1 我安装了libpng使用端口 我试图在我的应用程序中加载 PNG 图像 但出现链接器错误 Undefined symbols for architecture x86 64

随机推荐

  • Docker:Nginx 和 php5-fpm docker 不说话

    我想进行完全 Docker 化的 Drupal 安装 我的第一步是让容器与 Nginx 和 php5 fpm 一起运行 两者都基于 Debian 我在 CoreOS alpha 频道 使用 Digital Ocean 我的 Dockerfi
  • 如何让Register-ObjectEvent在后台运行?

    我有一个使用 PowerShell 的脚本Register ObjectEvent观察文件夹的更改 由于 Register ObjectEvent 仅在 PowerShell 会话处于活动状态时才起作用 因此我需要保持 PowerShell
  • C# 中的监视器与互斥体[重复]

    这个问题在这里已经有答案了 可能的重复 C 中各种线程同步选项之间有什么区别 https stackoverflow com questions 301160 what are the differences between various
  • CSS 中的垂直线(与
    相对)

    我知道它不存在 但是有纯CSS版本吗 想要设置高度 并将其设置为 1px 宽 如果可能的话 带有阴影 只是无法理解纯 CSS 的方式来做到这一点 需要绝对定位 因为我的容器有两个并排的 div 例如 60 40 的分割 需要两者之间的垂直规
  • 在 Kivy 应用程序中获取文本输入值

    Python Kivy 新手尝试构建一个测试应用程序 其中包含输入框 确定按钮和单击确定按钮时应更改文本的标签 但我得到了 NameError 全局名称 txt1 未定义 我究竟做错了什么 import Kivy import kivy i
  • 无法从同一项目的 bin 目录导入模块

    我正在构建一个库 该库将通过 pip 包含在其他项目中 我有以下目录 venv 是 virtualenv project bin run py myproj init py logger py venv 我激活虚拟环境 在 bin run
  • 减法进位标志

    我正在使用 MASM32 有了这个代码 mov eax 5 sub eax 10 CF 状态标志将被设置 但使用我的铅笔和纸 我实际上看到 MSB 没有任何进位 是的 我知道从较少的数字中减去大的数字集CF 但我想知道为什么 因为使用这段代
  • 等待多个延迟对象完成并使用解析值

    我正在尝试找出一种方法来等待多个延迟对象并在完成后处理它们 可能就像开始延迟对象的下一组 我被困住了 因为以下结果不是预期的结果 我期待结果为 allDone resovled values are 1 2 3 实际结果是 allDone
  • Android EditText 验证后更改焦点并在对话框中显示错误

    我有一个带有 3 个 EditText 字段的简单活动 用户 通行证 确认 在 用户 字段中输入内容并且该人在键盘上单击 下一步 后 我在那里有一个 setOnFocusChangeListener 来验证输入 如果验证失败 将打开一个对话
  • 将 Django South 与多个代码分支结合使用的工作流程

    我很好奇其他 Django 开发人员在使用多个代码分支进行开发时如何使用 South 管理数据库迁移 让我举一个示例场景 举例来说 您从主干开始开发 您从主干创建分支 A 此时 最后一个迁移版本为app 1是0010 然后您为app 1在创
  • Ajax - 下载前获取文件大小

    基本上 我想弄清楚是否应该使用 AJAX 下载文件 具体取决于文件大小有多大 我想这个问题也可以改写为 如何仅获取ajax请求的标头 EDIT ultima rat0 https stackoverflow com users 239962
  • 如何使用流对 Map 中的值求和?

    我想要与流等效的内容 public static
  • 当用户拖动列表视图项目时检测何时需要滚动

    介绍 我正在实现列表视图项目的重新排列 而不使用 OLE 拖放 PROBLEM 我已经成功解决了大部分任务 除了当用户想要将项目放置在当前不可见的位置时向上 向下滚动之外 问题 我可以使用以下消息向上 向下滚动列表视图 SendMessag
  • LegacyUnhandledExceptionPolicy 不允许捕获(并吞下)ThreadAbortException?

    我正在使用 NET 1 1 兼容模式来处理未处理的异常 问题是 当 LegacyUnhandledExceptionPolicy 设置为 1 这就是我想要的 时 我无法捕获并吞下 ThreadAbortException 示例代码 应用程序
  • Bokeh 相当于 matplotlib 子图

    我正在寻找一种方法来创建包含多个子图的绘图 例如 fig ax0 ax1 plt subplots nrows 2 sharex True 可以在 matplotlib 中完成 然后可以通过以下方式解决ax0 and ax1 有没有办法在
  • 使用未声明的标识符“gl_InstanceID”

    大家好 我一直在IOS平台上尝试在OpenGLES2 0中进行实例化绘制 我的渲染代码 glEnableVertexAttribArray glVertexAttribPointer glDrawElementsInstancedEXT G
  • 如何向 tabularinline 块的每一行添加行号

    我有一个 ModelAdmin 类 其内联类型为 TabularInline 我希望 TabularInline 的每一行在其左侧显示一个行号 随着新记录添加到内联中 该数字会增加 并且会在编辑表单时显示 我更喜欢行号不是内联数据模型的一部
  • R 在 readHTMLTable 调用维基百科时崩溃

    尝试抓取维基百科页面 类似的事情我之前已经做过很多次了 library XML myURL lt http en wikipedia org wiki List of US Open MenUs Singles champions y lt
  • 如何通过Java编码在运行时将My Jar加载到ClassPath?

    我正在 Net Beans 中使用 Swing 我有自己的 jar 其中包含类和方法 我将使用 JAVA Reflection API 调用这些类和方法 但在此之前我想在运行时将 Jar 加载到类路径中 我有一个 J 按钮 单击该按钮我将获
  • WebView (OSX) 未在打印面板预览中呈现

    我的应用程序创建并打印 WebView 输出页面正在正确组装和打印 但我没有在打印面板中预览页面 NSRect printViewFrame printViewFrame size width paperSize width marginL