Protecting electronic files against text extraction and optical character recognition

By converting plain text to visual representations and rendering text only upon user interaction, the method safeguards electronic files from direct extraction and OCR, addressing data security issues in machine learning model training.

WO2026161537A1PCT designated stage Publication Date: 2026-07-30VALENT TECHNOLOGIES INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
VALENT TECHNOLOGIES INC
Filing Date
2026-01-22
Publication Date
2026-07-30

AI Technical Summary

Technical Problem

Existing electronic file protection methods fail to effectively prevent direct text extraction and optical character recognition, leading to data scraping, intellectual-property infringement, and privacy breaches, especially in the context of machine learning model training.

Method used

Convert plain text in electronic files to visual representations using graphical shape primitives and animations, rendering text only upon user interaction to thwart direct extraction and OCR analysis.

Benefits of technology

Protects electronic files from unauthorized text extraction and OCR while maintaining human readability and file compatibility, enhancing security against high-throughput automated processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2026012122_30072026_PF_FP_ABST
    Figure US2026012122_30072026_PF_FP_ABST
Patent Text Reader

Abstract

A method includes: opening a source electronic document including a plurality of visible text characters that are displayed when the source electronic document is rendered; extracting, by a computer system, the plurality of visible text characters from the source electronic document and associated metadata including text styling data and coordinates of the visible text characters in the source electronic document; generating, by the computer system, a plurality of visual representations of the plurality of visible text characters in accordance with the text styling data using a plurality of graphical shape primitives; placing, by the computer system, the plurality of visual representations of the plurality of visible text characters in a protected electronic document at the coordinates of the plurality of visible text characters in the source electronic document; and saving the protected electronic document as a protected version of the source electronic document.
Need to check novelty before this filing date? Find Prior Art

Description

PROTECTING ELECTRONIC FILES AGAINST TEXT EXTRACTION AND OPTICAL CHARACTER RECOGNITIONCROSS-REFERENCE TO RELATED APPLICATION(S)

[0001] This application claims priority to and the benefit of U.S. Provisional Patent Application No. 63 / 748,279 filed on January 22, 2025, the entire disclosure of which is incorporated by reference herein.FIELD

[0002] The present disclosure relates to computer security technologies, specifically systems and methods for protecting electronic files against text extraction and optical character recognition.BACKGROUND

[0003] Electronic documents may contain text that is only meant to be accessed by authorized users. However, the increasing value of text data, such as for training large language models (LLMs), has resulted in the creation and deployment of numerous automated software approaches that compile and collect this information. These approaches are typically able to extract text directly from the underlying electronic files even when it is not displayed on user devices (e.g., articles requiring a subscription). Additionally, several approaches can also reproduce text that is not explicitly represented in the underlying electronic files by analyzing what is displayed on user devices (e.g., OCR the contents of a screenshot).

[0004] The above information disclosed in this Background section is only for enhancement of understanding of the present disclosure, and therefore it may contain information that does not form the prior art that is already known to a person of ordinary skill in the art.SUMMARY

[0005] Aspects of embodiments of the present disclosure relate to systems and methods for protecting electronic files against text extraction and optical character recognition.BRIEF DESCRIPTION OF THE DRAWINGS

[0006] The accompanying drawings, together with the specification, illustrate exemplary embodiments of the present invention, and, together with the description, serve to explain the principles of the present invention.

[0007] FIG. 1 is a flowchart of a method for generating a protected electronic document based on a source electronic document, according to one embodiment of the present disclosure.

[0008] FIG. 2 shows the construction of a visual representation of a lowercase ‘i’ from graphical shape primitives, according to one embodiment of the present disclosure.

[0009] FIG. 3 is a schematic depiction of text in a source electronic document and a protected electronic document, according to one embodiment of the present disclosure.

[0010] FIG. 4 is a schematic depiction of a portion of a protected electronic document according to one embodiment of the present disclosure.

[0011] FIG. 5 is a flowchart of a method for generating a protected electronic document based on a source electronic document, according to one embodiment of the present disclosure.

[0012] FIG. 6A is a flowchart of a method for generating a protected electronic document based on a source electronic document, according to one embodiment of the present disclosure.

[0013] FIG. 6B is a schematic depiction of rendering different portions of a visual representation in different frames of an animation, according to one embodiment of the present disclosure.

[0014] FIG. 7 is a block diagram illustrating a representative software architecture, which may be used in conjunction with various hardware architectures as described herein.

[0015] FIG. 8 is a block diagram illustrating components of a processing circuit or a processor, according to some example embodiments, configured to read instructions from a non-transitory computer-readable medium (e.g., a non-transitory machine-readable storage medium) and perform any one or more of the methods discussed herein.DETAILED DESCRIPTION

[0016] In the following detailed description, only certain exemplary embodiments of the present invention are shown and described, by way of illustration. As those skilled in the art would recognize, the invention may be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Like reference numerals designate like elements throughout the specification.

[0017] Modem digital files such as PDFs, word-processing documents, and e-books frequently contain textual information intended solely for authorized human consumption. The lack of a streamlined and effective mechanism to block both directtext extraction and screen-based OCR leaves many content owners exposed to data scraping, intellectual-property infringement, and privacy breaches, such as in the unauthorized use of the content of the digital files for training machine learning models such as large language models (LLMs).

[0018] Many standard file formats embed plain-text elements alongside formatting instructions, enabling extraction utilities to identify and retrieve underlying text streams with ease. For instance, in PDF and XML-based documents, ASCII or Unicode character data is interleaved with layout and styling commands in predictable patterns. As such, automated tools and scripts can programmatically extract embedded text directly from document structures even when access controls or obfuscation measures are applied. Similarly, images and scanned pages provide an avenue for optical character recognition (OCR) software to recognize and reconstruct text content from rendered visuals. Although certain formats support encryption of text layers or inclusion of image-only pages, such measures can lead to increased file size and impact rendering performance. Additionally, the growing use of web-based viewers and automated pipelines for document processing has heightened the demand for protection schemes that maintain compatibility and responsiveness.

[0019] Although some content protection schemes employ encryption, digital rights management, or document watermarking, these solutions often require specialized viewers or impose restrictions that degrade the user experience. While content providers may use encryption and other access-control mechanisms to restrict file access, these approaches do not fundamentally prevent the extraction or reconstruction of textual data once a document is opened. For example, attempts to obfuscate text via custom fonts or character mapping can be circumvented by robust extraction tools and do not address visual reproduction. Likewise, document watermarking and viewer-based restrictions may deter copying at a small scale but fail to stop high-throughput automated processing or OCR-based harvesting.

[0020] As such, aspects of the present disclosure relate to file-based solutions that transparently render content for human consumption while resisting both direct text extraction and OCR analysis.

[0021] One aspect of embodiments of the present disclosure relates to providing protection against text extraction by reading a source electronic file in a format such as Portable Document Format (PDF), although embodiments of the present disclosure are not limited thereto, and may be applied to electronic files in other formats that support functionality used by the present disclosure (e.g., control of placement of graphical primitives embedded in a file and, in some embodiments, animations) and converting the source electronic file into an equivalent protectedelectronic file. Additional examples include, but are not limited to, slide presentations supporting animation features (e.g., Microsoft® PowerPoint® documents, Apple® Keynote® documents, and the like), WebM videos, and documents based on hypertext markup language (HTML) such as web pages, HTML-formatted emails, and electronic books such as in the EPUB file format.

[0022] The resulting protected file is, for human readers, functionally almost identical to the original file except that all 'plain text' (e.g., ASCII and / or Unicode characters), contained in the file are removed. As used herein, “plain text” or “text characters” mean any symbolic representation of written language encoded or processed as text by computing systems or rendering engines. This includes ASCII (7-bit and extended 8-bit), Unicode code points and grapheme clusters in any block, representation (UTF-8 / 16 / 32), or normalization (NFC / NFD / NFKC / NFKD), and reasonable equivalents. Reasonable equivalents include byte sequences in legacy encodings (e.g., ISO-8859, Windows code pages, Shift-JIS, GBK, Big5), glyph IDs and font mappings (cmap), control / escape sequences, markup tokens that render text (e.g., HTML, SVG, PDF), accessibility or “actual text,” entities, and invisible textual controls (whitespace, zero-width, bidirectional controls, variation selectors).

[0023] FIG. 1 is a flowchart of a method for generating a protected electronic document based on a source electronic document, according to one embodiment of the present disclosure. In some embodiments of the present disclosure, the operations of method 100 are performed by a computer system including one or more processing circuits and having instructions stored in one or more memories that, when executed by the one or more processing circuits, configure the computer system to implement the protection of an electronic file.

[0024] The method begins by analyzing the binary contents of the input source electronic document. The binary contents of the file contain plain text (e.g., ASCII) characters for two main purposes: (i) to represent the ASCII text displayed or contained in the file; and (ii) to describe the program and the format used to display the contents of the file (which is done using the instructions required by the specific file format of the electronic file). For example, hypertext markup language (HTML) documents are composed of plain text, which includes (i) text that is displayed when the HTML document is rendered and (ii) markup text that is not displayed but that affects the rendering of the HTML document, such as HTML tags for modifying the appearance of text (e.g., emphasis, bold, underlining), HTML tags defining user interface controls (e.g., hyperlinks, buttons, input boxes, etc.), executable code that is embedded in-line (e.g., inline JavaScript), and the like. In a similar manner, a PDF document may include text that is displayed when the PDF document is renderedand may also include text that controls the layout of the PDF, such as styling information about the text (e.g., font name, font size, color, and the like).

[0025] Table 1 , below, shows an example of plain text displayed and contained in a PDF file.Table 1 / Length 1178stream1 00 -1 0192 cmq1 1 1 rg ZaO gs0 0 192 192 ref0 0 0 rg BT12.479531 00 -12.479531 9.1233.36 TmZf-0-01 Tf[(S)-5(om)5(e)19(t)4(h)-4(i)7(n)-4(g )7(t)4(h)-4(at)3( )8(n)-4(e)19(v)18(er )10(c)21(h)-4(an)-6(ges)]TJ / Span « / ActualText <feff0020> » BDC EMC 0 -1.500056 Td [(w)9(i)7(t)4(h)-4( )9(t)4(h)-4(e )8(n)-4(i)7(gh)-6(t)5( )9(or )10(t)4(h)-4(e )9(d)-3(a)37(y)75(,)9( )8(as)]TJ / Span « / ActualText <feff0020> » BDC EMC 0 -1.500056 Td[(l)7(on)-4(g )7(as )9(t)4(h)-4(e )8(p)-3(ast)4( )9(represents)]TJ / Span « / ActualText <feff0020> » BDC EMC 0 -1.500056 Td[(t)4(h)-4(e )9(f)6(u)-5(t)5(u)-5(re,)11( )8(t)5(o)19(w)28(ard)-3(s )10(w)9(h)-4(i)7(c)21(h)-5( )9(i)7(t)]TJ / Span « / ActualText <feff0020> » BDC EMC 0 -1.500056 Td[(w)9(i)7(l)7(l)8( )8(ad)-4(v)17(an)-6(ce )11 (i)7(n)-4( )8(a )7(st)6(rai)8(gh)-6(t)4( )9(l)7(i)7(n)-4(e,)]TJ / Span « / ActualText <feff0020> » BDC EMC 0 -1.500056 Td [(bu)-6(t)4( )9(w)9(h)-5(i)8(c)21(h)-5(,)9( )9(at )11(t)4(h)-4(e )9(en)-5(d)-3(,)9( )9(h)-4(as)]TJ / Span « / ActualText <feff0020> » BDC EMC 0 -1.500056 Td [(cl)9(osed )7(i)7(n)-4( )9(on)-5( )9(i)7(t)5(sel)9(f)6( )8(i)8(n)-5(t)5(o )8(a )7(ci)9(rc)4(l)7(e.)]TJ ET Qendstreamendobj

[0026] The above PDF file would be rendered by a PDF reader to display the visible text “Something that never changes with the night or the day, as long as the past represents the future, towards which it will advance in a straight line, but which,at the end, has closed in on itself into a circle.” This plain text appears in Table 1 , although obfuscated around plain text that are not part of the visible text characters.

[0027] At 110, the computer system extracts the visible text from the source electronic document and associated metadata including text styling data (e.g., font, size, appearance) and positions of the visible text characters in the source electronic document sufficient to recreate the appearance of the document. In some embodiments, the computer system identifies the file format by looking at the magic constants (e.g., the constant numerical or text file signature associated with each file format), or by using common file identification methods (e.g., enclosing tags or comments for XML or HTML documents, specific headers or trailers of various document types, and the like). This allows the computer system to determine, at 110, which portions of the plain text in the file are rendered as visible text, which portions relate to metadata for styling, and which portions are not required to properly display the file.

[0028] At 130, the computer system generates visual representations of the visible text characters in accordance with the text styling data using a plurality of graphical shape primitives. In more detail, embodiments of the present disclosure replace individual text characters with visual representations thereof that are visually equivalent when rendered.

[0029] FIG. 2 shows the construction of a visual representation of a lowercase ‘i’ 201 from graphical shape primitives 220, according to one embodiment of the present disclosure. The graphical shape primitives 220 include a dot 221 , a bar 223, and a serif 225. As shown at 240, the general shape of the lowercase ‘i’ character can be reconstructed from one copy of the dot 221 , one copy of the bar 223, and three copies of the serif 225, where the assembled character is shown at 250. A larger set of graphical shape primitives may be used to construct other characters in a font or font family in accordance with the styles (e.g., size, italics, bold, etc.).

[0030] In some embodiments, the graphical shape primitives are represented using vector graphical shapes. As used herein, “vector graphical shapes” denote graphics primitives and composite objects defined by mathematical descriptions of geometry rather than by per-pixel samples. Vector graphical shapes include points, lines, polylines, curves (e.g., Bezier curves), path contours, polygons, and implicit or parametric forms (e.g., circles, ellipses), together with styling attributes such as stroke, fill, color, gradients, patterns, dash arrays, joins, caps, and affine transforms (e.g., translate, scale, rotate, skew). Vector graphical shapes are resolutionindependent, can be rendered at arbitrary scales with consistent fidelity, and may be encoded in formats that express geometry and styling declaratively orprogrammatically (e.g., SVG paths, PDF path operators, PostScript drawing commands).

[0031] In some embodiments, the graphical shape primitives are represented using raster graphical shapes (e.g., bitmaps or sprites). As used herein, “raster graphical shapes” denote graphics primitives and composite objects represented as arrays of discrete picture elements (pixels) arranged on a regular grid. Each pixel encodes sample data (e.g., luminance, RGB, RGBA, CMYK, grayscale, indexed color, alpha) at a fixed spatial resolution. Raster graphical shapes include bitmaps, sprites, tiles, layers, and masks, together with attributes such as sampling rate, pixel format, color profiles, compression (e.g., PNG, JPEG), and blend / compose operations.

[0032] At 150, the computer system places the visual representations of the text characters in a protected electronic document at the coordinates of the plurality of text characters in the source electronic document. The approach replaces or removes all ASCII text that explicitly represents text contained such that this text cannot be automatically extracted directly from the protected electronic file. The visual representations inserted into the file are rendered (e.g., the instructions associated with the vector graphics representations are executed to draw the vector shapes of the text) to generate the appearance of the original source document. For example, program instruction plain text that indicates that letter 'a' is displayed at coordinates x, y on the user screen using a specified font is replaced with program instruction text that utilizes a group of vector shape primitives arranged on the screen at coordinates x, y in such a way that the resulting visual is substantially visually identical to the original visual representation for letter 'a' produced by the file.

[0033] In some embodiments, plain text that is used to instruct a document reading program (e.g., a PDF viewer), such as how to format and display the text or format and display other content in the document, is retained.

[0034] Optionally, in some embodiments, at 170 the computer inserts pseudo-text different from the original visible text characters into the protected electronic document. In some embodiments, the pseudo-text is chosen by the user when generating the protected electronic document. In some embodiments this pseudotext includes randomly generated text (e.g., random characters). In some embodiments, the pseudo-text is text generated by one or more large language models. In some embodiments, the pseudo-text includes a unique identification value for the electronic file, along with a unique identification value for the user issued the file, along with a message that describes the existing license and permissions that apply to software, autonomous systems, and machine learning models that might encounter the file. The pseudo-text is inserted with stylingmetadata to cause the pseudo-text to be invisible when the document is rendered (e.g., by setting a “hidden” parameter to “true,” setting “opacity” to 0, setting “transparency” to 1.0, and the like, as appropriate for the file format) or may be inserted with indications that it is a comment that is not rendered (e.g., surrounded by comment tags in the case of an extensible markup language (XML) document such as an Open XML Paper Specification (OXPS) document).

[0035] FIG. 3 is a schematic depiction of text in a source electronic document and a protected electronic document, according to one embodiment of the present disclosure. A source electronic document may include the plain text “Hello World\n” repeated six times (the “\n” is a control character indicating a newline) as shown at 301. When rendering the source electronic document, as shown at 303, the text “Hello World” appears six times on different lines. As discussed above, the underlying plain text may be replaced with instructions that generate a visual representation of the same shapes (e.g., using graphical shape primitives to construct the shapes of individual glyphs or characters of a font) such that the rendered protected electronic document 313 is visually substantially indistinguishable from the source electronic document 303 when rendered by a document viewer. As used herein, a glyph is a specific visual form of a character or grapheme as rendered by a font, including any stylistic variant, ligature, or contextual form. A glyph defines the geometry drawn to depict the character, independent of its code point (e.g. independent of the character such as a letter or punctuation), and may be represented by outlines, paths, or other graphical data together with positioning and styling information used to render the character in a document. The underlying plain text within the protected electronic document 313 may be replaced with pseudo-text 330, including a document identifier 331 , a user identifier 333, a timestamp 335, and license information 337, although embodiments of the present disclosure are not limited thereto.

[0036] Table 2 is pseudocode representing an example implementation of the method 100 described above with respect to FIG. 1 using syntax similar to that of the Python programming language.Table 2import sysimport binascii# The original fileif len(sys.argv) > 1 :original_file = sys.argv[1]# (Optional) pseudo-text, empty if not specified pseudo_text = "if len(sys.argv) > 2:# Load text from specified file if pseudo-text is specified pseudo_text_file = sys.argv[2]pseudo_text = open(pseudo_text_file).read()# Read hexadecimal values from the original filewith open(original_file, 'rb') as f:hexadecimal_data = binascii. hexlify(f.read())# Verify if the original file is a PDFis_pdf = '255044462d' in str(hexadecimal_data)# Create the protected fileprotected_file = new_pdf()if is_pdf:# Open the original filepdf ile = open_pdf(original_file)# Load the contents of each page in the original file pdf_pages = pdf_file.get_pages()# Iterate through each pagefor page in pdf_pages:# Create an empty protected pageprotected_page = new_page()# Extract the text in the current pagetext ines = page.get_text_lines()# Iterate through each line of text displayed on this page for textjine in textjines:# Extract text and display instructions for each line of textxy_coords, text, font, font_size = text_line.get_text_data()# Create a visual representation of the text using vector shape primitives vector_output = get_vector_equivalent([xy_coords, text,font, font_size])# Add the visual representation to this page protected_page.add_vector(vector_output)if pseudo_text !=# If pseudo-text is specified, replace text in the original file with pseudo-text protected_page.insert_pseudo_text(xy_coords, text, pseudo_text, fontsize=font_size,color=(0, 0, 0), render_mode=3, stroke_opacity=0,fill_opacity=0)# Add this page to the protected document protected_file.add_page(protected_page)# Save the protected documentsave_pdf('Level_1_'+original_file)

[0037] While the method described and illustrated above with respect to FIGS. 1 , 2, and 3 provide protection against extraction of plain text directly from an underlying file, the visual representations of the text in the document are still vulnerable to text extraction using optical character recognition (e.g., based on recognizing the shapes of characters or glyphs as rendered by a document viewer).

[0038] As such, some aspects of embodiments of the present disclosure relate to using dynamic visuals (e.g., animations) to provide further protection of electronic documents against automated text extraction using optical character recognition.

[0039] In some embodiments, the visual representations of the text characters are inserted into the protected document as animations or other interactive elements such that the visual representations are displayed only when the user is interacting with the document.

[0040] FIG. 4 is a schematic depiction of a portion of a protected electronic document according to one embodiment of the present disclosure. In the example of FIG. 4, the electronic document may include a visual representation of the text “Hello World” repeated six times (e.g., where the visual representation of the text “Hello World” is constructed from graphical shape primitives, as discussed above). Theportion of the document is configured such that the visual representation of the text is displayed only when a user is interacting with that portion of the electronic document. Examples of user interaction events include hovering a mouse cursor (or other input device such as a stylus or finger) over that portion of the document when rendered, clicking on or touching the portion of the rendered document, scrolling in the portion of the rendered document, detecting that a user is looking at the portion of the rendered document (e.g., in a case where eye tracking hardware and software is available), and the like.

[0041] When a user is not interacting with that portion of the electronic document (e.g., when there are no user interaction events associated with that portion of the document) then a pseudo-visual is displayed instead of the visual representation of the text. FIG. 4 shows one example of a pseudo-visual 410, which includes a document identifier, user identifier, timestamp, and license information as described above, and which may also include a watermark such as a logo associated with a company or other source of the protected content. As such, when OCR software attempts to extract text from the document, the pseudo-visual 410 is displayed and therefore the extracted text 415 is merely the content of the pseudo-visual 410. In some embodiments, the pseudo-visual is a blank area. In some embodiments, the pseudo-visual is random pixels (e.g., a bitmap where the color of each pixel is set by a random number generator).

[0042] FIG. 5 is a flowchart of a method 500 for generating a protected electronic document based on a source electronic document, according to one embodiment of the present disclosure. In some embodiments of the present disclosure, the operations of method 500 are performed by a computer system including one or more processing circuits and having instructions stored in one or more memories that, when executed by the one or more processing circuits, configure the computer system to implement the protection of an electronic file.

[0043] At 510, the computer system divides the source electronic document into one or more content items (or visuals) to be protected. This may include, for example, dividing the document by page, by paragraph, by column, by defining a single content item for the entire document, or the like.

[0044] At 530, the computer system generates user-interactive document portions each combining a pseudo-visual with a corresponding content item of the document. The specific details of the user-interactive document portions depend on the supported functionality of the file format. For example, PDF documents support scalable vector graphics (SVG) animations.

[0045] At 550, the computer system embeds the user-interactive document portions in a protected electronic document, where, when the protected document isrendered (e.g., by appropriate viewing software), the pseudo-visuals are displayed by default and the content items are displayed based on a user interaction event with the corresponding user-interactive document portion.

[0046] For example, SVG animations enable setting an initial frame that is displayed by default and a second frame that is displayed based on a triggering event. As such, by setting the triggering event to be a user interaction event (e.g., an event which is triggered when a mouse cursor enters a defined area such as “onmouseover”) and by configuring the animation to reset to the initial frame (the pseudo-visual) when the user interaction event ends (e.g., an event which is triggered when a mouse cursor leaves a defined area such as “onmouseout”).Table 3import sys# The original fileif len(sys.argv) > 1 :original_file = sys.argv[1]# (Optional) pseudo-visual, empty if not specifiedpseudo_visual = "if len(sys.argv) > 2:# Load image from specified file if pseudo-visual is specified pseudo_visual_image = sys.argv[2]pseudo_visual = open(pseudo_visual_image).read()# Open the original fileoriginal_visual = open(original_file).read()# Convert the original visual to PostScriptoriginal_visual_ps = convert(original_visual,output_form at- PostScript')if pseudo_visual !=# Convert the pseudo visual to PostScriptpseudo_visual_ps = convert(pseudo_visual,output_form at- PostScript')else:# If pseudo-visual is not specified, create an empty visualpseudo_visual = new_image(original_visual. width,original_visual. height)# Make all pixels whitefory in range(original_visual. height):forx in range(original_visual. width)pseudo_visual[x, y] = (255, 255, 255)# Convert the resulting visual to PostScriptpseudo_visual_ps = convert(pseudo_visual,output_form at- PostScript')# Create an interactive animation with original and pseudo visuals interactive_animation = create_interactive_animation( display_frame=pseudo_visual_ps,first_frame=pseudo_visual_ps,second_frame=original_visual_ps,event- onmouseover',output_format- DVI')# Convert the resulting Device Independent file to a self-contained Scalable Vector Graphics animationself_contained_animation = convert(interactive_animation,output_format- SVG')# Create the protected fileprotected_file = new_pdf()# Embed the self contained animation into the protected file protected_file.add_svg(self_contained_animation)# Save the protected document protected_file.save_pdf('Level_2_'+original_file)

[0047] The pseudocode shown in Table 3 above first converts both the original and pseudo-visuals into PostScript files. PostScript files can be converted into self-contained, inline code in Scalable Vector Graphics (SVG) (they are embedded directly in the file). The SVG file format supports scripted interactivity and animation compatible with most web browsers and PDF viewers. The two PostScript files are used to create an SVG animation that reveals the original visual only when themouse cursor is above it (note that any other user event can be used to trigger the animation, or it can be scripted to start automatically). The pseudocode further specifies that the pseudo-visual is displayed when no interaction takes place. This makes the pseudo-visual the default and preview frame. In other words, it is the visual returned by the file if software is used to attempt to convert the file into an image or to print the contents of the file. This SVG file is completely self-contained and does not reference any external files — all scripting for the interactive animation and all images are contained in the file. In the pseudocode above, the self-contained interactive animation is embedded into a protected PDF. However, it can also be embedded into other file formats, e.g., the interactive animation can be embedded into an HTML file with a tag such as:cobject type="image / svg+xml" data="example.svg">< / object>and the scripted behavior will be displayed through a web browser.

[0048] In some embodiments, the protected file is formatted in such a way that the binary representation which contains the instructions the file uses to display the content, both when active and inactive, are contained in the same segment. In particular, it is possible to extract images frames from standard animations; and it is also possible to alter standard scripting code to display all possible visuals (including the original one). Therefore, directly embedding the frames of the animation directly in the same segment increases the difficulty in extracting the frame of the animation containing the content (or visuals) of interest (e.g., the protected text). While Table 3 above gives the example of converting both the pseudo-visual and the content into PostScript, embodiments of the present disclosure are not limited thereto and different use cases and data modalities may suggest different formats (e.g., SVG files, bitmaps, etc. may be appropriate in different contexts for storing the pseudovisual and the content), so long as the formats can be directly embedded into a single SVG file or into the protected electronic document without external references to the visual which can be extracted and manipulated.

[0049] In addition, the interactive animation is described with scripting that is also directly contained in that segment. As one example, the SVG standard allows for embedded scripting that is self-contained (e.g., scripting that does not use external references). In some embodiments, the SVG scripting is used to specify that the original visual (e.g., the content) is displayed only when the user interacts with that portion of the document (e.g., when there is an active user event associated with that portion of the document, such as “mouseover”) and that the pseudo-visual is displayed in all other cases.

[0050] This results in a file with a binary that contains all information in the same segment (as the PDF or HTML web page will have a single entry for the SVG file).The embodiments described above relate to a particular data modality, resulting file format (e.g., PDF or HTML), and use case. However, embodiments of the present disclosure are not limited there to and can be applied to other circumstances in which animations in the document can be represented (sometimes through conversions and / or the combination of multiple file formats) by self-contained files.

[0051] For example, a WebM movie or video file may include a text track (e.g., subtitles implemented using the Web Video Text Tracks (WebVTT) format or Subtitle Resource Track (SRT) format files). To protect the text content of the track (or other visual content such as portions or all of the video), the plain text of the subtitles is rendered as visual representations constructed from graphical shape primitives, as discussed above, and rendered into one or more transparent overlay layers (e.g., where the visual representations of the text are opaque and the rest of the layer is transparent such that the underlying video content is still visible). In a similar way as discussed above, in some embodiments the visual representations are grouped in an animation that is triggered by a user interaction event (e.g., mouseover event) such that the default image is a fully transparent overlay (or no overlay) that does not show the visual representations of the text and the user interaction event triggers the display of the frame of the animation with the visual representations of the text. As another example, when protecting the full visuals of the video (e.g., to protect the unauthorized use of the video for training machine learning models to generate video), a pseudo-visual may be included in an animation overlay that obscures the full video by default, where triggering the animation with a user interaction event causes the animation to transition to a second frame that is, for example, fully transparent or that contains the visual representations of the text and is otherwise transparent, such that the underlying video content is visible only when the user interaction event is triggered.

[0052] WebM files are self-contained and can be viewed with browsers, video players, and other tools. They can also be embedded into HTML and other file formats. As such, requiring user interaction to display transparent layers (e.g., hovering a mouse cursor over the video) provides similar protection to the video files as that described above for document files.

[0053] FIG. 6A is a flowchart of a method 600 for generating a protected electronic document based on a source electronic document, according to one embodiment of the present disclosure. In some embodiments of the present disclosure, the operations of method 600 are performed by a computer system including one or more processing circuits and having instructions stored in one or more memories that, when executed by the one or more processing circuits, configure the computer system to implement the protection of an electronic file. Themethod 600 is similar to the method 100 described above with respect to FIG. 1 , including extracting the visible text from the source electronic document and associated metadata including text styling data (e.g., font, size, appearance) and positions of the visible text characters in the source electronic document sufficient to recreate the appearance of the document at 610 and generating visual representations of the visible text characters in accordance with the text styling data using a plurality of graphical shape primitives at 630.

[0054] At 650, the computer system further generates animations of the visual representations of the visible text, where different frames of the animation contain different parts of the visible text, such that no one frame of the animation shows the full text. This may be performed at the glyph-level (e.g., individual frames show full glyphs, but not all of the glyphs)

[0055] FIG. 6B is a schematic depiction of rendering different portions of a visual representation in different frames of an animation, according to one embodiment of the present disclosure. As discussed above with respect to FIG. 2, individual glyphs of text can be constructed from graphical shape primitives. FIG. 6B shows an embodiment where the glyph for the character ‘i’ is represented in an animation 660 having three frames. A first frame 661 includes only the bar graphical shape primitive, a second frame 662 includes only graphical shape primitives representing the dot and the lower left serif of the ‘i’ character, and a third frame 663 includes only graphical shape primitives representing the upper serif and lower right serif of the ‘i’ character. When the animation is played at a sufficiently high frame rate (e.g., greater than about 30 Hz), such as at the native refresh rate of a display device (e.g., 30 Hz, 60 Hz, or 120 Hz), the animation appears as a full glyph, as shown at 665, due to the persistence of vision effect. Because no single frame includes all the parts of the glyph, a screenshot of the animation would capture only a single frame of the animation, and therefore is not easily susceptible to analysis by optical character recognition.

[0056] At 670, the computer system places the generated animations of the text characters in a protected electronic document at the coordinates of the plurality of text characters in the source electronic document in a manner similar to the operations performed at 150 of method 100. At 690, the computer system optionally inserts pseudo-text into the protected electronic document, in a manner similar to the operations performed at 170 of method 100.

[0057] A person having ordinary skill in the art at the time of the invention would understand that the techniques of method 100, method 500, and method 600 may be combined in various ways. For example, a protected electronic document generated by method 100 may be further processed by method 500 such that pseudo-visuals areused to obfuscate the visual representations of the text generated by method 100. As another example, the methods 100 and 500 may be combined such that a pseudovisual is combined with the visual representations of text and subsequently inserted into the protected document (e.g., in a single pass). As another example, the methods 500 and 600 may be combined such that the animation showing different portions of glyphs in different frames is triggered in response to a user interaction event and otherwise displays a pseudo-visual hiding the underlying content. Furthermore, the method 600 may be performed at the glyph or character-level (e.g., showing different full characters or glyphs of the text in different animation frames) or at the level of graphical shape primitives, as discussed above with respect to method 100, such that different parts of a given glyph are shown in different frames of the animation.

[0058] FIG. 7 is a block diagram illustrating an example software architecture 706, which may be used in conjunction with various hardware architectures herein described. FIG. 7 is a non-limiting example of a software architecture 706, and it will be appreciated that many other architectures may be implemented to facilitate the functionality described herein. The software architecture 706 may execute on hardware such as a machine 800 of FIG. 8 that includes, among other things, processors 804, memory / storage 806, and input / output (I / O) components 818. A representative hardware layer 752 is illustrated and can represent, for example, the machine 800 of FIG. 8. The representative hardware layer 752 includes a processor 754 having associated executable instructions 704. The executable instructions 704 represent the executable instructions of the software architecture 706, including implementation of the methods, components, and so forth described herein. The hardware layer 752 also includes non-transitory memory and / or storage modules as memory / storage 756, which also have the executable instructions 704. The hardware layer 752 may also include other hardware 758.

[0059] In the example architecture of FIG. 7, the software architecture 706 may be conceptualized as a stack of layers where each layer provides particular functionality. For example, the software architecture 706 may include layers such as an operating system 702, libraries 720, frameworks / middleware 718, applications 716 (such as to implement methods according to embodiments of the present disclosure), and a presentation layer 714. Operationally, the applications 716 and / or other components within the layers may invoke API calls 708 through the software stack and receive a response as messages 712 in response to the API calls 708. The layers illustrated are representative in nature, and not all software architectures have all layers. For example, some mobile or special-purpose operating systems may not provide a frameworks / middleware 718, while others may provide such a layer. Other software architectures may include additional or different layers.

[0060] The operating system 702 may manage hardware resources and provide common services. The operating system 702 may include, for example, a kernel 722, services 724, and drivers 726. The kernel 722 may act as an abstraction layer between the hardware and the other software layers. For example, the kernel 722 may be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, and so on. The services 724 may provide other common services for the other software layers. The drivers 726 are responsible for controlling or interfacing with the underlying hardware. For instance, the drivers 726 include display drivers, camera drivers, Bluetooth® drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Wi-Fi® drivers, audio drivers, power management drivers, and so forth depending on the hardware configuration.

[0061] The libraries 720 provide a common infrastructure that is used by the applications 716 and / or other components and / or layers. The libraries 720 provide functionality that allows other software components to perform tasks in an easier fashion than by interfacing directly with the underlying operating system 702 functionality (e.g., kernel 722, services 724, and / or drivers 726). The libraries 720 may include system libraries 744 (e.g., C standard library) that may provide functions such as memory allocation functions, string manipulation functions, mathematical functions, and the like. In addition, the libraries 720 may include API libraries 746 such as media libraries (e.g., libraries to support presentation and manipulation of various media formats such as MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG), graphics libraries (e.g., an OpenGL framework that may be used to render 2D and 3D graphic content on a display), database libraries (e.g., SQLite that may provide various relational database functions), and the like. The libraries 720 may also include a wide variety of other libraries 748 to provide many other APIs to the applications 716 and other software components / modules.

[0062] The frameworks / middleware 718 provide a higher-level common infrastructure that may be used by the applications 716 and / or other software components / modules. For example, the frameworks / middleware 718 may provide high-level resource management functions, web application frameworks, application runtimes 742 (e.g., a Java virtual machine or JVM), and so forth. The frameworks / middleware 718 may provide a broad spectrum of other APIs that may be utilized by the applications 716 and / or other software components / modules, some of which may be specific to a particular operating system or platform.

[0063] The applications 716 include built-in applications 738 and / or third-party applications 740. The applications 716 may use built-in operating system functions (e.g., kernel 722, services 724, and / or drivers 726), libraries 720, andframeworks / middleware 718 to create user interfaces to interact with users of the system. Alternatively, or additionally, in some systems, interactions with a user may occur through a presentation layer, such as the presentation layer 714. In these systems, the application / component “logic” can be separated from the aspects of the application / component that interact with a user.

[0064] Some software architectures use virtual machines. In the example of FIG.7, this is illustrated by a virtual machine 710. The virtual machine 710 creates a software environment where applications / components can execute as if they were executing on a hardware machine (such as the machine 800 of FIG. 8, for example). The virtual machine 710 is hosted by a host operating system (e.g., the operating system 702 in FIG. 7) and typically, although not always, has a virtual machine monitor 760 (or hypervisor), which manages the operation of the virtual machine 710 as well as the interface with the host operating system (e.g., the operating system 702). A software architecture executes within the virtual machine 710 such as an operating system (OS) 736, libraries 734, frameworks 732, applications 730, and / or a presentation layer 728. These layers of software architecture executing within the virtual machine 710 can be the same as corresponding layers previously described or may be different.

[0065] Some software architectures use containers 770 or containerization to isolate applications. The phrase “container image” refers to a software package (e.g., a static image) that includes configuration information for deploying an application, along with dependencies such as software components, frameworks, or libraries that are required for deploying and executing the application. As discussed herein, the term “container” refers to an instance of a container image, and an application executes within an execution environment provided by the container. Further, multiple instances of an application can be deployed from the same container image (e.g., where each application instance executes within its own container). Additionally, as referred to herein, the term “pod” refers to a set of containers that accesses shared resources (e.g., network, storage), and one or more pods can be executed by a given computing node. A container 770 is similar to a virtual machine in that it includes a software architecture including libraries 734, frameworks 732, applications 730, and / or a presentation layer 728, but omits an operating system and, instead, communicates with the underlying host operating system 702.

[0066] FIG. 8 is a block diagram illustrating components of a machine 800, according to some example embodiments, able to read instructions from a non-transitory machine-readable medium (e.g., a computer-readable storage medium) and perform any one or more of the methodologies discussed herein. Specifically, FIG. 8 shows a diagrammatic representation of the machine 800 in the example form of acomputer system, within which instructions 810 (e.g., software, a program, an application, an applet, an app, or other executable code) for causing the machine 800 to perform any one or more of the methodologies discussed herein may be executed. As such, the instructions 810 may be used to implement modules or components described herein. The instructions 810 transform the general, non-programmed machine 800 into a particular machine 800 programmed to carry out the described and illustrated functions in the manner described. In alternative embodiments, the machine 800 operates as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, the machine 800 may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 800 may include, but not be limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular telephone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a web appliance, a network router, a network switch, a network bridge, or any machine capable of executing the instructions 810, sequentially or in parallel or concurrently, that specify actions to be taken by the machine 800. Further, while only a single machine 800 is illustrated, the term “machine” or “processing circuit” shall also be taken to include a collection of machines that individually or jointly execute the instructions 810 to perform any one or more of the methodologies discussed herein.

[0067] The machine 800 may include processors 804 (including processors 808 and 812), memory / storage 806, and I / O components 818, which may be configured to communicate with each other such as via a bus 802. The memory / storage 806 may include a memory 814, such as a main memory, or other memory storage, and a storage unit 816, both accessible to the processors 804 such as via the bus 802. The storage unit 816 and memory 814 store the instructions 810 embodying any one or more of the methodologies or functions described herein. The instructions 810 may also reside, completely or partially, within the memory 814, within the storage unit 816, within at least one of the processors 804 (e.g., within the processor’s cache memory), or any suitable combination thereof, during execution thereof by the machine 800. Accordingly, the memory 814, the storage unit 816, and the memory of the processors 804 are examples of machine-readable media.

[0068] The I / O components 818 may include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. The specific I / O components 818 that are included in a particular machine will depend on the type of machine. For example,portable machines such as mobile phones may include a touch input device or other such input mechanisms, while a headless server machine will likely not include such a touch input device. It will be appreciated that the I / O components 818 may include many other components that are not shown in FIG. 8. The I / O components 818 are grouped according to functionality merely for simplifying the following discussion, and the grouping is in no way limiting. In various example embodiments, the I / O components 818 may include output components 826 and input components 828. The output components 826 may include visual components (e.g., a display such as a plasma display panel (PDP), a light-emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), acoustic components (e.g., speakers), haptic components (e.g., a vibratory motor, resistance mechanisms), other signal generators, and so forth. The input components 828 may include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input components), point-based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instruments), tactile input components (e.g., a physical button, a touch screen that provides location and / or force of touches or touch gestures, or other tactile input components), audio input components (e.g., a microphone), and the like.

[0069] In further example embodiments, the I / O components 818 may include biometric components 830, motion components 834, environment components 836, or position components 838, among a wide array of other components. For example, the biometric components 830 may include components to detect expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), identify a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or electroencephalogrambased identification), and the like. The motion components 834 may include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e.g., gyroscope), and so forth. The environment components 836 may include, for example, illumination sensor components (e.g., photometer), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas sensors to detect concentrations of hazardous gases for safety or to measure pollutants in the atmosphere), or other components that may provide indications,measurements, or signals corresponding to a surrounding physical environment. The position components 438 may include location sensor components (e.g., a Global Positioning System (GPS) receiver component), altitude sensor components (e.g., altimeters or barometers that detect air pressure from which altitude may be derived), orientation sensor components (e.g., magnetometers), and the like.

[0070] Communication may be implemented using a wide variety of technologies. The I / O components 818 may include communication components 840 operable to couple the machine 800 to a network 832 or devices 820 via a coupling 824 and a coupling 822, respectively. For example, the communication components 840 may include a network interface component or other suitable device to interface with the network 832. In further examples, the communication components 840 may include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and other communication components to provide communication via other modalities. The devices 820 may be another machine or any of a wide variety of peripheral devices (e.g., a peripheral device coupled via a USB).

[0071] Moreover, the communication components 840 may detect identifiers or include components operable to detect identifiers. For example, the communication components 840 may include Radio Frequency Identification (RFID) tag reader components, NFC smart tag detection components, optical reader components (e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar code, and other optical codes), or acoustic detection components (e.g., microphones to identify tagged audio signals). In addition, a variety of information may be derived via the communication components 840, such as location via Internet Protocol (IP) geo-location, location via Wi-Fi® signal triangulation, location via detecting an NFC beacon signal that may indicate a particular location, and so forth.

[0072] It should be understood that the sequence of steps of the processes described herein in regard to various methods and with respect various flowcharts is not fixed, but can be modified, changed in order, performed differently, performed sequentially, concurrently, or simultaneously, or altered into any desired order consistent with dependencies between steps of the processes, as recognized by a person of skill in the art. Further, as used herein and in the claims, the phrase “at least one of element A, element B, or element C” is intended to convey any of: element A, element B, element C, elements A and B, elements A and C, elements B and C, and elements A, B, and C.

[0073] According to one embodiment of the present disclosure, a method includes: opening a source electronic document including a plurality of visible text characters that are displayed when the source electronic document is rendered; extracting, by a computer system, the plurality of visible text characters from the source electronic document and associated metadata including text styling data and coordinates of the visible text characters in the source electronic document; generating, by the computer system, a plurality of visual representations of the plurality of visible text characters in accordance with the text styling data using a plurality of graphical shape primitives; placing, by the computer system, the plurality of visual representations of the plurality of visible text characters in a protected electronic document at the coordinates of the plurality of visible text characters in the source electronic document; and saving the protected electronic document as a protected version of the source electronic document.

[0074] The may further include: inserting pseudo-text different from the plurality of visible text characters in the protected electronic document, wherein the pseudo-text is styled to be invisible when the protected electronic document is rendered.

[0075] The pseudo-text may be random data.

[0076] The plurality of graphical shape primitives may include a plurality of vector graphical shapes.

[0077] The plurality of vector graphical shapes may be implemented using scalable vector graphics (SVG).

[0078] The plurality of graphical shape primitives may include raster graphical shapes.

[0079] The method may further include: setting an initial frame of an animation to be a pseudo-visual different from the visual representations of the visible text characters; setting a second frame of the animation to be a visual representation of the plurality of visual representations of text characters; and setting a trigger event of the animation as a user interaction event with the animation, such that, when the protected electronic document is rendered, the pseudo-visual is rendered until the user interaction event occurs.

[0080] The pseudo-visual and the visual representation may be contained in the same segment of the protected electronic document.

[0081] The plurality of visual representations of the plurality of visible text characters may include an animation including a plurality of frames, and the plurality of frames may include different graphical shape primitives at different positions corresponding to different portions of a glyph corresponding to a visual representation corresponding to a visible text character of the plurality of visible text characters.

[0082] According to one embodiment of the present disclosure, a computer-implemented method for generating a protected electronic document based on a source electronic document includes: dividing, by a computer system, the source electronic document into a plurality of content items to be protected; generating, by the computer system, for each content item, a user-interactive document portion that combines a pseudo-visual with a corresponding content item of the source electronic document, the user-interactive document portion including scripted behavior configured to selectively display one of the pseudo-visual or the corresponding content item based on an interaction state; embedding, by the computer system, the user-interactive document portion into a protected electronic document such that, when the protected electronic document is rendered by a viewing application, the pseudo-visuals are displayed by default and the corresponding content items are displayed in response to a user interaction event with the user-interactive document portion; and saving, by the computer system, the protected electronic document.

[0083] The user-interactive document portion may be encoded without external references such that the pseudo-visual and corresponding content item are contained in a same segment of the protected electronic document.

[0084] The user interaction event may include at least one of: a mouse over event; a mouse exit event; a click event; a touch event; a scroll event; or a gaze detection event.

[0085] The user-interactive document portion may be implemented using a self-contained scalable vector graphics (SVG) animation embedded within the protected electronic document.

[0086] The pseudo-visual may be an initial frame of an animation and the corresponding content item is a second frame of the animation, and the animation is configured to revert to the initial frame when the user interaction event ends.

[0087] The pseudo-visual may at least one selected from the group including: a blank region; random pixel data; a document identifier, a user identifier, a timestamp, and license information; and a watermark.

[0088] According to one embodiment of the present disclosure, a system includes a processor and memory storing instructions that, when executed by the processor, cause the processor to execute any of the methods recited above.

[0089] According to one embodiment of the present disclosure, a non-transitory computer-readable medium stores instructions that, when executed by a processor, cause the processor to execute any of the methods recited above.

[0090] While the present invention has been described in connection with certain exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover variousmodifications and equivalent arrangements included within the spirit and scope of the appended claims, and equivalents thereof.

Claims

WHAT IS CLAIMED IS:

1. A method comprising:opening a source electronic document comprising a plurality of visible text characters that are displayed when the source electronic document is rendered; extracting, by a computer system, the plurality of visible text characters from the source electronic document and associated metadata comprising text styling data and coordinates of the visible text characters in the source electronic document;generating, by the computer system, a plurality of visual representations of the plurality of visible text characters in accordance with the text styling data using a plurality of graphical shape primitives;placing, by the computer system, the plurality of visual representations of the plurality of visible text characters in a protected electronic document at the coordinates of the plurality of visible text characters in the source electronic document; andsaving the protected electronic document as a protected version of the source electronic document.

2. The method of claim 1 , wherein the method further comprises:inserting pseudo-text different from the plurality of visible text characters in the protected electronic document, wherein the pseudo-text is styled to be invisible when the protected electronic document is rendered.

3. The method of claim 2, wherein the pseudo-text is random data.

4. The method of claim 1 , wherein the plurality of graphical shape primitives comprises a plurality of vector graphical shapes.

5. The method of claim 4, wherein the plurality of vector graphical shapes are implemented using scalable vector graphics (SVG).

6. The method of claim 1 , wherein the plurality of graphical shape primitives comprises raster graphical shapes.

7. The method of any of claims 1-6, wherein the method further comprises: setting an initial frame of an animation to be a pseudo-visual different from the visual representations of the visible text characters;setting a second frame of the animation to be a visual representation of the plurality of visual representations of text characters; andsetting a trigger event of the animation as a user interaction event with the animation, such that, when the protected electronic document is rendered, the pseudo-visual is rendered until the user interaction event occurs.

8. The method of claim 7 wherein the pseudo-visual and the visual representation are contained in the same segment of the protected electronic document.

9. The method of any of claims 1-6, wherein the plurality of visual representations of the plurality of visible text characters comprise an animation comprising a plurality of frames, andwherein the plurality of frames comprise different graphical shape primitives at different positions corresponding to different portions of a glyph corresponding to a visual representation corresponding to a visible text character of the plurality of visible text characters.

10. A computer-implemented method for generating a protected electronic document based on a source electronic document, the method comprising: dividing, by a computer system, the source electronic document into a plurality of content items to be protected;generating, by the computer system, for each content item, a user-interactive document portion that combines a pseudo-visual with a corresponding content item of the source electronic document, the user-interactive document portion including scripted behavior configured to selectively display one of the pseudo-visual or the corresponding content item based on an interaction state;embedding, by the computer system, the user-interactive document portion into a protected electronic document such that, when the protected electronic document is rendered by a viewing application, the pseudo-visuals are displayed by default and the corresponding content items are displayed in response to a user interaction event with the user-interactive document portion; andsaving, by the computer system, the protected electronic document.

11. The method of claim 10, wherein the user-interactive document portion is encoded without external references such that the pseudo-visual and corresponding content item are contained in a same segment of the protected electronic document.

12. The method of claim 10, wherein the user interaction event comprises at least one of: a mouse over event; a mouse exit event; a click event; a touch event; a scroll event; or a gaze detection event.

13. The method of claim 10, wherein the user-interactive document portion is implemented using a self-contained scalable vector graphics (SVG) animation embedded within the protected electronic document.

14. The method of claim 10, wherein the pseudo-visual is an initial frame of an animation and the corresponding content item is a second frame of the animation, and the animation is configured to revert to the initial frame when the user interaction event ends.

15. The method of claim 10, wherein the pseudo-visual comprises at least one selected from the group comprising:a blank region;random pixel data;a document identifier, a user identifier, a timestamp, and license information; and a watermark.

16. A system comprising a processor and memory storing instructions that, when executed by the processor, cause the processor to execute the method recited in any of claims 1 -6 and 10-15.

17. The system of claim 16, wherein the method further comprises:setting an initial frame of an animation to be a pseudo-visual different from the visual representations of the visible text characters;setting a second frame of the animation to be a visual representation of the plurality of visual representations of text characters; andsetting a trigger event of the animation as a user interaction event with the animation, such that, when the protected electronic document is rendered, the pseudo-visual is rendered until the user interaction event occurs.

18. The system of claim 17 wherein the pseudo-visual and the visual representation are contained in the same segment of the protected electronic document.

19. A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to execute the method recited in any of claims 1 -6 and 10-15.

20. The non-transitory computer-readable medium of claim 19, wherein the method further comprises:setting an initial frame of an animation to be a pseudo-visual different from the visual representations of the visible text characters;setting a second frame of the animation to be a visual representation of the plurality of visual representations of text characters; andsetting a trigger event of the animation as a user interaction event with the animation, such that, when the protected electronic document is rendered, the pseudo-visual is rendered until the user interaction event occurs.

21. The non-transitory computer-readable medium of claim 20 wherein the pseudo-visual and the visual representation are contained in the same segment of the protected electronic document.