65.9K
CodeProject 正在变化。 阅读更多。
Home

在 HTML5 查看器会话中进行文档水印处理以确保安全

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2015年3月23日

CPOL

4分钟阅读

viewsIcon

20222

HTML5 查看器中的水印功能允许在共享敏感文档内容的同时,遏制未经授权使用的可能性。本文将介绍如何在 HTTP 查看会话请求的正文中应用 JSON 属性来为文档添加水印。

引言

理论上,文档安全很简单:当你不希望任何人看到文档时,不要让它们变得可访问。

但实际上,潜在的敏感文档内容通常需要与广泛的受众共享,同时必须采取措施来控制该受众滥用该内容的可能性。解决此问题的最常见方法是提供受保护的 PDF 或以“只读”模式保存的 Microsoft Word 文档。但这些解决方案都无法真正阻止聪明的用户创建完美格式、可编辑的文档副本,然后以各种方式滥用。

通过 HTML5 查看器交付文档比只读是一个巨大的进步。通过任何设备上的浏览器窗口,HTML5 查看器会显示文档的高保真、完美格式的 SVG 副本,而原始文件可能驻留在服务器上的 PDF、Word、Excel、CAD 或几乎任何其他原生格式。通过网络发送 SVG 而不是原始文件,可以使预期用户完全可读内容,同时永远不会让用户访问可用于创建伪造副本以进行篡改的完整文档文件。

为了获得更高的安全性,可以应用数字版权管理 (DRM) 来防止打印或复制文本。而且,作为 SVG 转换的副产品,潜在的敏感元数据甚至与原始文档相关的任何恶意软件都不会到达用户。

为了获得更高的安全性,可以在通过 HTML5 查看共享的文档页面中轻松地在查看会话中添加数字水印,而无需更改原始文档。

为了说明通过 HTML5 查看增强文档安全性的便捷性,本文简要介绍了通过 HTML5 查看器的 Web API 为文档添加数字水印所需的步骤。该示例使用了 Accusoft Cloud Services Viewer,它最近在 Beta 实现中部署了 Web 集成服务。

通过 API 添加水印

在 HTML5 查看器中创建新的查看会话时,您可以指定一个或多个文本、斜排文本和图像水印应用于传递给用户的每个内容页面。水印不会以任何方式影响源文档;它只是在查看会话中应用。

通过设置您发送以创建新查看会话的 HTTP 请求正文中的附加 JSON 属性来定义水印。

您为查看会话设置的水印属性将应用于文档的所有页面。您可以在一个查看会话中指定多个水印,也可以应用混合类型的水印。

例如,斜排文本水印可用于在应用图像水印显示公司徽标在每页右上角的同一页面上显示“保密”文本。

在水印内部,您可以进行广泛的属性和选项来自定义。例如

  • 在文本水印的文本字符串中使用特殊替换语法“{{pageNumber}}”和“{{pageCount}}”在每一页上显示当前页码和/或总页数

    "text": "Page {{pageNumber}} of {{pageCount}}"

  • 您可以通过在文本字符串中插入控制字符 '\n' 来创建多行文本水印,以指示换行;例如

    "text": "ACME Corporation\nConfidential"

  • 提供“fontFamily”属性来指定文本水印的字体。当未设置“fontFamily”属性时,将使用执行查看器的客户端浏览器的默认字体来渲染文本。

  • 文本(非斜排)和图像水印可以与页面中九个常用位置对齐。您可以使用两个属性为文本和图像水印选择这九个位置中的任意一个

    horizontalAlign - 可以是“left”、“right”或“center”。默认为“center”。
    verticalAlign - 可以是“bottom”、“middle”或“top”。默认为“middle”。

    例如,要将文本水印放在页面的右下角,请将 horizontalAlign 设置为 right,并将 verticalAlign 设置为 bottom。斜排水印始终在页面中央。

代码示例

以下示例演示了定义单个文本水印。代码示例后面是显示水印的 HTML5 查看器的图像。

POST https://api.accusoft.com/PCCIS/V1/ViewingSession
Content-Type: application/json
{
    "tenantId": "my application name",
    "externalId": "my-unique-document-name.docx",
    "render": {
        "flash": {
            "optimizationLevel": 1
        },
        "html5": {
            "alwaysUseRaster": false
        }
    },
    "watermarks": [
        {
            "type": "text",
            "opacity": 0.6,
            "text": "jdoe\n67.79.169.114\n11/13/2014 2:24 PM\nNOT FOR DISTRIBUTION",
            "color": "red",
            "fontFamily": "Consolas",
            "fontSize": "16pt",
            "fontWeight": "bold",
            "verticalAlign": "bottom",
            "horizontalAlign": "right"
        }
    ]
}

图像水印的源文件必须是 PNG 格式。应用于 PNG 文件的透明度选项将在水印中得到尊重,以便图像的透明部分可以显示其下方的页面内容。

下一个示例显示了在整个页面上应用单个图像水印的代码。在示例输出中,三色 Accusoft 徽标跨越页面中心。请注意,PNG 图像源的透明区域不会阻碍其下方的页面内容。

POST https://api.accusoft.com/PCCIS/V1/ViewingSession
Content-Type: application/json
{
    "tenantId": "my application name",
    "externalId": "my-unique-document-name.docx",
    "render": {
        "flash": {
            "optimizationLevel": 1
        },
        "html5": {
            "alwaysUseRaster": false
        }
    },
    "watermarks": [
        {
            "type": "image",
            "opacity": 0.3,
            "src": "http://www.mysite.com/img/logo.png",
            "autoSize": "fit"
        }

摘要

在分发敏感内容时,水印是一种有价值的安全预防措施。使用 HTML5 查看会话应用水印不仅易于操作且非常灵活,而且还有一个优点是不会更改源文档。保持源文档的原始状态不仅是良好的文档管理实践,而且对于某些行业的特定文档的法规遵从性也是必需的。

通过启用水印和基于 DRM 的保护,并且无需传输和本地保存原始文档文件,HTML5 查看为共享敏感文档内容同时防止其被篡改或滥用提供了灵活、高性能的解决方案。

© . All rights reserved.