【问题标题】:Can't print UIWebView with text color. Why?无法使用文本颜色打印 UIWebView。为什么?
【发布时间】:2016-11-27 08:33:30
【问题描述】:

我有一个UIWebView。我想使用 AirPrint 打印它的内容。我想出了这段代码:

@IBAction func print(_ sender: Any) {
    let printController = UIPrintInteractionController.shared

    let printInfo = UIPrintInfo(dictionary:nil)
    printInfo.outputType = UIPrintInfoOutputType.general
    printInfo.jobName = "some name"
    printController.printInfo = printInfo

    let formatter = webView.viewPrintFormatter()

    formatter.perPageContentInsets = UIEdgeInsets(top: 72, left: 72, bottom: 72, right: 72)
    printController.printFormatter = formatter

    printController.present(animated: true, completionHandler: nil)
}

当我运行应用程序时,打印交互控制器和一切正常。

但是,我在 html 中有这样的内容,因为我想强调一些文本:

<span style="color: #ff0000">some text</span>

"some text" 在 web 视图中显示为红色,但是当我在打印交互控制器中查看预览时它是黑色的!换句话说,所有的颜色都消失了!

我尝试将 HTML 更改为:

<span style="background: #ff0000">some text</span>

但打印预览显示相同。我很惊讶,因为&lt;hr&gt;&lt;h3&gt; 标签在预览中都呈现得很好。

有没有办法打印彩色文本?

注意事项:

  • 确实选择了“模拟彩色激光打印机”
  • 我知道我可以截取 web 视图并打印出来。但这不会只打印屏幕上显示的 HTML 部分吗?

【问题讨论】:

  • 我刚刚使用您引用的确切跨度设置了一个 HTML 页面,将其加载到 UIWebView 中并使用您的打印代码打印它,我看到了红色文本。似乎还有其他原因导致了问题。您能否提供一个指向未打印的实际网站的链接?
  • @CraigGrummitt 抱歉,我似乎无法编辑问题。这是我试图进行的编辑的 pastebin 链接:pastebin.com/raw/B87WUivY
  • Apple 有一些代码可以将 HTML 转换为 PDF。我没试过,但也许它会解决你的问题github.com/ResearchKit/ResearchKit/blob/…

标签: ios swift printing uiwebview airprint


【解决方案1】:

看看你的 CSS 的这一部分:

@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }

@media print 部分为您的内容在打印时的外观定义了额外的规则。 link

在此部分中,您有一个 *:after 元素,它在页面上的每个元素之后应用内容。 link

*:after 部分中,您声明黑色(#000),甚至通过将这种颜色声明为!important 来加倍确定黑色 - 赋予此声明比元素中任何颜色声明更重要的权重本身。 link

所以你有几个解决这个问题的选择:

  1. 只需从颜色行中删除!important标签:

    颜色:#000;

  2. 从您的 CSS 中删除整条颜色线。

  3. 从您的 CSS 中删除 *:after 部分。
  4. 从您的 CSS 中删除 @media 打印部分。

这完全取决于你的具体目标。

【讨论】:

  • 哦!我不知道您可以定义在 css 中打印时页面的外观!我会试试的!
猜你喜欢
  • 2019-02-22
  • 2020-03-14
  • 1970-01-01
  • 1970-01-01
  • 2018-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多