[{"content":"GroupDocs.Viewer for Node.js 26.5 is now available. This release adds a new mail‑message view info class, improves XML‑stylesheet handling and CSS color processing, and fixes a range of bugs affecting DXF, PDF, EML, PPT/PPS, Spreadsheet, XLS, and CAD files.\nWhat\u0026rsquo;s new in this release Key Category Summary VIEWERNET-5608 New feature Return mail message properties through specialized view info VIEWERNET-5605 Enhancement Add support of xml‑stylesheet processing instruction VIEWERNET-5624 Enhancement Improve CSS color parsing and serialization VIEWERNET-4748 Bug “Could not load file. File is corrupted or damaged.” error during call viewer.View for the DXF file. VIEWERNET-4760 Bug Fix bug with exception while loading specific DXF file to Viewer on Windows only VIEWERNET-5512 Bug Missing Chinese characters when rendering EML to PDF VIEWERNET-5529 Bug Bad performance for some pages when rendering PDF to HTML and PNG VIEWERNET-5571 Bug GroupDocsViewerException while rendering PPT and PPS to any format VIEWERNET-5579 Bug 5‑digit row numbers overlap right sibling cells and AutoFit is not applied for long textual cells when rendering Spreadsheet to HTML VIEWERNET-5603 Bug Winding font is not preserving while converting XLS to HTML VIEWERNET-5609 Bug Exception during detection of raw URIs in mail message body VIEWERNET-5611 Bug Default font is not applied when detection and wrapping of raw URIs in mail message body is working VIEWERNET-5647 Bug Unable to cast object of type ‘Aspose.CAD.FileFormats.Ifc.IFC2X3.Entities.IfcFacetedBrep’ Public API changes Added\nMailMessageViewInfo class with all its properties Removed\nNone New features VIEWERNET-5608 A new class MailMessageViewInfo was added in the com.groupdocs.viewer.results namespace. This class implements and extends its parent class ViewInfo and is returned by the method Viewer.getViewInfo() when the loaded file is an email message file.\nResources MailMessageViewInfo ViewInfo Viewer.getViewInfo() ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-node-js-26-5/","summary":"GroupDocs.Viewer for Node.js 26.5 introduces MailMessageViewInfo, enhanced CSS and XML processing, and fixes multiple bugs affecting DXF, PDF, EML, PPT, Spreadsheet, and CAD rendering.","title":"GroupDocs.Viewer for Node.js 26.5 – May 2026 Release Highlights"},{"content":"We’re pleased to announce the release of GroupDocs.Search for .NET 26.6, available as of June 2026. This update introduces support for indexes larger than 1 TB.\nWhat\u0026rsquo;s new in this release Key Summary Category SEARCHNET-3577 Implement support for indexes larger than 1 TB Fix SEARCHNET-3567 Fix throwing OverflowException when indexing Fix Public API changes None.\nHow to get the update NuGet – Upgrade to the latest package: # Package Manager NuGet\\Install-Package GroupDocs.Search -Version 26.6.0 # .NET CLI dotnet add package GroupDocs.Search --version 26.6.0 # Package Manager NuGet\\Install-Package GroupDocs.Search.NETFramework -Version 26.6.0 # .NET CLI dotnet add package GroupDocs.Search.NETFramework --version 26.6.0 Direct Download – Download the compiled assemblies for .NET from the official release page:\nhttps://releases.groupdocs.com/search/net/new-releases/groupdocs.search-for-.net-26.6-dlls-only/\nhttps://releases.groupdocs.com/search/net/new-releases/groupdocs.search-for-.net-26.6/ Resources Full Release Notes – https://releases.groupdocs.com/search/net/release-notes/2026/groupdocs-search-for-net-26-6-release-notes/ (or the page you are reading) Documentation – https://docs.groupdocs.com/search/net/ Free Support Forum – https://forum.groupdocs.com/c/search/ Feel free to upgrade and let us know if you encounter any issues. Happy searching!\n","permalink":"https://blog.groupdocs.com/search/groupdocs-search-for-net-26-6/","summary":"GroupDocs.Search for .NET 26.6 introduces support for indexes exceeding 1 TB in size.","title":"GroupDocs.Search for .NET 26.6 – June 2026 Release Highlights"},{"content":"GroupDocs.Viewer for Java 26.5 is now available. This release adds new functionality for handling email messages, several enhancements, and a number of bug fixes.\nWhat\u0026rsquo;s new in this release Key Category Summary VIEWERNET-5608 New feature Return mail message properties through specialized view info VIEWERNET-5605 Enhancement Add support of xml-stylesheet processing instruction VIEWERNET-5624 Enhancement Improve CSS color parsing and serialization VIEWERNET-4748 Bug “Could not load file. File is corrupted or damaged.” error during call viewer.View for the DXF file. VIEWERNET-4760 Bug Fix bug with exception while loading specific DXF file to Viewer on Windows only VIEWERNET-5512 Bug Missing Chinese characters when rendering EML to PDF VIEWERNET-5529 Bug Bad performance for some pages when rendering PDF to HTML and PNG VIEWERNET-5571 Bug GroupDocsViewerException while rendering PPT and PPS to any format VIEWERNET-5579 Bug 5-digit row numbers overlap right sibling cells and AutoFit is not applied for long textual cells when rendering Spreadsheet to HTML VIEWERNET-5603 Bug Winding font is not preserving while converting XLS to HTML VIEWERNET-5609 Bug Exception during detection of raw URIs in mail message body VIEWERNET-5611 Bug Default font is not applied when detection and wrapping of raw URIs in mail message body is working VIEWERNET-5647 Bug Unable to cast object of type ‘Aspose.CAD.FileFormats.Ifc.IFC2X3.Entities.IfcFacetedBrep’ Public API changes Added\nMailMessageViewInfo class with all its properties Removed\nNone\nNew features VIEWERNET-5608 A new class MailMessageViewInfo was added in the com.groupdocs.viewer.results namespace. This class implements and extends its parent class ViewInfo and is returned by the method Viewer.getViewInfo() when the loaded file is an email message file.\nResources MailMessageViewInfo reference ViewInfo reference Viewer.getViewInfo() method reference ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-java-26-5/","summary":"GroupDocs.Viewer for Java 26.5 adds MailMessageViewInfo for email properties, improves CSS parsing and XML handling, and resolves multiple rendering bugs across DXF, EML, PDF, and spreadsheet formats.","title":"GroupDocs.Viewer for Java 26.5 – May 2026 Release Highlights"},{"content":"We\u0026rsquo;re happy to announce the release of GroupDocs.Editor for Python v26.5, available as of May 2026. This is the first public release of GroupDocs.Editor for Python via .NET, shipped as a self-contained Python wheel on PyPI. It brings the full document-editing capabilities of the underlying .NET library to Python: load a document, convert it to clean, editable HTML/CSS, edit that markup programmatically or in any WYSIWYG editor, then save it back to the original format — or convert it to another — with a single pip install and no MS Office, OpenOffice, or separate .NET runtime required.\nWhat\u0026rsquo;s new in this release [New feature] HTML round-trip editing (EDTPY-1) [New feature] Pythonic API surface with auto-mapped naming conventions (EDTPY-2) [New feature] Multi-format support across Word processing, spreadsheets, presentations, PDF, email, eBooks, and text/markup formats (EDTPY-3) [New feature] Format conversion via HTML intermediate (EDTPY-4) [New feature] Granular editing (worksheet/slide/page range) with pagination and language metadata toggles (EDTPY-5) [New feature] Resource extraction (images, fonts, CSS, audio) and folder persistence (EDTPY-6) [New feature] Document introspection via get_document_info() (EDTPY-7) [New feature] Form field inspection and update via editor.form_field_manager (EDTPY-8) [New feature] Stream loading and context-manager protocol for deterministic disposal (EDTPY-9) [New feature] AI Agent \u0026amp; LLM Friendly: bundled AGENTS.md, MCP server, and machine-readable docs (EDTPY-10) Public API changes The entire .NET API is exposed through Python-native naming. Classes use PascalCase, methods and properties use snake_case (auto-mapped to the underlying .NET PascalCase), and enum values use UPPER_SNAKE_CASE.\nClasses Editor — entry point; open by path or stream, edit(), save(), get_document_info(), form_field_manager EditableDocument — HTML/CSS representation; get_content(), get_body_content(), get_embedded_html(), get_css_content(), save(), resource collections (images, fonts, css, audio, all_resources), and the from_markup() / from_markup_and_resource_folder() / from_file() factories FormFieldManager — read and update Word-processing form fields License, Metered — licensing APIs Options Load: WordProcessingLoadOptions, SpreadsheetLoadOptions, PresentationLoadOptions, PdfLoadOptions Edit: WordProcessingEditOptions, SpreadsheetEditOptions, PresentationEditOptions, PdfEditOptions, EbookEditOptions, EmailEditOptions, MarkdownEditOptions, TextEditOptions, XmlEditOptions, DelimitedTextEditOptions Save: WordProcessingSaveOptions, SpreadsheetSaveOptions, PresentationSaveOptions, PdfSaveOptions, HtmlSaveOptions, MhtmlSaveOptions, MarkdownSaveOptions, XpsSaveOptions, TextSaveOptions, EbookSaveOptions, EmailSaveOptions, DelimitedTextSaveOptions Enums WordProcessingFormats, SpreadsheetFormats, PresentationFormats, FixedLayoutFormats, EBookFormats, EmailFormats, TextualFormats, FontExtractionOptions, FontEmbeddingOptions Exceptions PasswordRequiredException, IncorrectPasswordException, EncryptedException, InvalidFormatException New features HTML Round-Trip Editing Convert any supported document to editable HTML/CSS and save it back to its original format without losing fidelity — the core workflow behind GroupDocs.Editor. The HTML can be edited programmatically or in any third-party WYSIWYG editor such as CKEditor or TinyMCE.\nPythonic API Surface The entire .NET API is exposed through Python-native naming. Classes use PascalCase, methods and properties use snake_case (auto-mapped to the underlying .NET PascalCase), and enum values use UPPER_SNAKE_CASE.\nMulti-Format Support One unified API across Word processing, spreadsheets, presentations, PDF, email, eBooks, and text/markup formats.\nFormat Conversion via HTML There is no separate “convert” call — saving an EditableDocument with a different *SaveOptions converts it through the HTML intermediate. Same input, different output.\nGranular Editing Edit a single worksheet of a workbook, a single slide of a deck, or a page range — and toggle pagination and language metadata.\nResource Extraction An EditableDocument exposes its extracted images, fonts, CSS, and audio as iterable collections, and can persist the HTML plus all resources into a folder.\nDocument Introspection Read format, page count, size, and encryption status without a full edit pass.\nForm Fields Inspect and update Word-processing form fields through editor.form_field_manager.\nStreams and Context Managers Load from any binary stream and rely on the context-manager protocol for deterministic disposal of native document handles.\nAI Agent \u0026amp; LLM Friendly AGENTS.md bundled inside the installed wheel — Claude Code, Cursor, and GitHub Copilot auto-discover the API surface, usage patterns, and troubleshooting hints. MCP server — point your AI tool at https://docs.groupdocs.com/mcp for on-demand documentation lookups. Machine-readable docs at https://docs.groupdocs.com/editor/python-net/llms-full.txt for RAG and LLM context. Code example from groupdocs.editor import Editor, EditableDocument from groupdocs.editor.formats import WordProcessingFormats from groupdocs.editor.options import WordProcessingSaveOptions with Editor(\u0026#34;document.docx\u0026#34;) as editor: editable = editor.edit() # document -\u0026gt; editable HTML html = editable.get_embedded_html() edited = EditableDocument.from_markup(html.replace(\u0026#34;Hello\u0026#34;, \u0026#34;Goodbye\u0026#34;)) editor.save(edited, \u0026#34;document.docx\u0026#34;, WordProcessingSaveOptions(WordProcessingFormats.DOCX)) How to get the update PyPI Install or upgrade via:\npip install groupdocs-editor-net Direct download Download the wheel from the GroupDocs.Editor for Python via .NET 26.5 page.\nResources Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/editor/groupdocs-editor-for-python-26-5/","summary":"GroupDocs.Editor for Python 26.5 adds HTML round‑trip editing, a Pythonic API, and broader multi‑format support.","title":"GroupDocs.Editor for Python 26.5 – May 2026 Release Highlights"},{"content":"We\u0026rsquo;re happy to announce the release of GroupDocs.Merger for Python v26.6, available as of June 2026. This major release rebuilds the Python binding as a modern typed API, adds Python 3.14 support and AI agent integration, enables page-preview rendering and stream-based split from Python, and ships self-contained wheels for Windows, Linux, and macOS.\nWhat\u0026rsquo;s new in this release [Enhancement] Rebuilt the Python binding — a typed, per-overload API with bundled *.pyi stubs (MERGERPYTHON-30) [Feature] Python 3.14 support (Requires-Python is now \u0026gt;=3.5,\u0026lt;3.15) (MERGERPYTHON-31) [Feature] Page-preview rendering (generate_preview) and stream-based split are now callable from Python via page-stream callbacks (MERGERPYTHON-32) [Feature] Ship AGENTS.md inside the package for AI agent / LLM integration (MERGERPYTHON-33) Public API changes Every class, method overload, and enum is emitted explicitly with type hints and .pyi stubs. Merger now supports context manager usage (with statement). generate_preview accepts a plain Python callback for page-stream creation. split, extract_pages, remove_pages, swap_pages, move_page, rotate, change_orientation, and password-related methods return IMerger (for chaining). New imports from groupdocs.merger.domain.options: SplitOptions, ExtractOptions, RotateOptions, RotateMode, PreviewOptions, PreviewMode. New features A modern, typed Python API with full static typing and no dynamic attribute proxy at runtime. Page-preview rendering from Python using a callback-based stream model. Python 3.14 support across all platforms (wheels are py3-none-{platform}). AGENTS.md shipped inside the package to enable AI agent and LLM integration (e.g., GitHub Copilot, Claude Code, Cursor). Code example from groupdocs.merger import Merger from groupdocs.merger.domain.options import ( SplitOptions, ExtractOptions, RotateOptions, RotateMode, ) with Merger(\u0026#34;input.pdf\u0026#34;) as merger: # Keep pages 1-3, rotate page 2, then save merger.extract_pages(ExtractOptions([1, 2, 3])) merger.rotate(RotateOptions(RotateMode.ROTATE90, [2])) merger.save(\u0026#34;reordered.pdf\u0026#34;) # Split a document into one file per page with Merger(\u0026#34;input.pdf\u0026#34;) as merger: merger.split(SplitOptions(\u0026#34;page_{0}.pdf\u0026#34;, [1, 2, 3])) Page-preview rendering example:\nfrom groupdocs.merger import Merger from groupdocs.merger.domain.options import PreviewOptions, PreviewMode def create_page_stream(page_number): return open(f\u0026#34;page-{page_number}.png\u0026#34;, \u0026#34;wb\u0026#34;) with Merger(\u0026#34;input.pdf\u0026#34;) as merger: merger.generate_preview(PreviewOptions(create_page_stream, PreviewMode.PNG, [1, 2])) How to get the update PyPI Upgrade via pip:\npip install groupdocs-merger-net Direct download Download the latest wheel from the GroupDocs.Merger for Python via .NET 26.6 page.\nResources Full Release Notes Documentation API Reference Code Examples Free Support Forum ","permalink":"https://blog.groupdocs.com/merger/groupdocs-merger-for-python-26-6/","summary":"GroupDocs.Merger for Python 26.6 introduces a modern typed API, Python 3.14 support, page‑preview rendering, and AI agent integration.","title":"GroupDocs.Merger for Python 26.6 – June 2026 Release Highlights"},{"content":"We\u0026rsquo;re happy to announce the release of GroupDocs.Comparison for .NET 26.5, available as of May 2026.\nGroupDocs.Comparison version 26.5 delivers improvements to PDF rendering accuracy, enhanced CSV and spreadsheet comparison readability, new API capabilities for revision handling and spreadsheet change metadata, and an updated NuGet packaging model with multi-framework support.\nFixes and enhancements [Feature] Multi-framework NuGet packaging and TFM-split packages. (COMPARISONNET-4770) [Enhancement] PDF compare: improve paragraph rendering accuracy in Inline mode. (COMPARISONNET-4751) [Enhancement] Enhance comparison results for PDF documents with tables. (COMPARISONNET-4763) [Bug] Fix ArgumentOutOfRangeException when comparing PDFs with styled tables. (COMPARISONNET-4762) [Feature] Support optional disposal of passed stream in RevisionHandler. (COMPARISONNET-4773) [Enhancement] Improve CSV comparison result readability with text markers. (COMPARISONNET-4769) [Feature] Extend ChangeInfo with Spreadsheet Properties. (COMPARISONNET-4767) [Bug] Compare method throws exception for HTML output. (COMPARISONNET-4764) Major Features Multi-framework NuGet packaging and TFM-split packages GroupDocs.Comparison has transitioned to a more advanced NuGet package delivery model. The main package now targets net462;net6.0;net8.0;net10.0, replacing the previous net462;netstandard2.1 targets.\nIn addition, to reduce the download size, dedicated per-framework NuGet packages are now published alongside the main package. When installing the platform-specific package, only the binaries matching the user\u0026rsquo;s target framework are downloaded — no unused platform assemblies are included.\nPackage Target framework GroupDocs.Comparison net462;net6.0;net8.0;net10.0 (all frameworks) GroupDocs.Comparison.net462 .NET Framework 4.6.2 GroupDocs.Comparison.net6 .NET 6.0 GroupDocs.Comparison.net8 .NET 8.0 GroupDocs.Comparison.net10 .NET 10.0 Note: .NET Standard 2.1 is no longer supported as a dedicated target. Projects that previously relied on netstandard2.1 should migrate to one of the supported TFMs listed above.\nSupport optional disposal of passed stream in RevisionHandler RevisionHandler now accepts a leaveOpen parameter that controls whether the underlying stream is disposed when the handler is disposed. When leaveOpen is set to true, the stream remains open after the RevisionHandler is disposed, allowing the caller to continue using it. This is useful in scenarios where the stream lifecycle is managed externally.\nusing FileStream revisionFileStream = new FileStream(\u0026#34;source.docx\u0026#34;, FileMode.Open, FileAccess.ReadWrite); using (RevisionHandler revisionHandler = new RevisionHandler(revisionFileStream, leaveOpen: true)) { List\u0026lt;RevisionInfo\u0026gt; revisionList = revisionHandler.GetRevisions(); foreach (var rev in revisionList) { if (rev.Type == RevisionType.Deletion) rev.Action = RevisionAction.Accept; } ApplyRevisionOptions revisionChanges = new ApplyRevisionOptions { Changes = revisionList }; revisionHandler.ApplyRevisionChanges(resultPath, revisionChanges); } Extend ChangeInfo with Spreadsheet Properties Three new properties have been added to ChangeInfo to expose spreadsheet-specific metadata for each detected change. These properties are populated when comparing Excel (.xlsx) and CSV (.csv) files and allow you to precisely locate each change within the spreadsheet grid:\nRow – zero-based row index of the changed cell. Column – zero-based column index of the changed cell. ColumnHeader – the header text of the column containing the changed cell (when available). The example below shows how to compare two CSV files and serialize the change list — including the new spreadsheet properties — to JSON:\nstring source = \u0026#34;source.csv\u0026#34;; string target = \u0026#34;target.csv\u0026#34;; string outFilePathJson = \u0026#34;result.json\u0026#34;; using (var comparer = new Comparer(source)) { comparer.Add(target); var doc = comparer.Compare(); var changes = doc.Changes; var json = changes.Select(c =\u0026gt; new { id = c.Id, type = c.Type.ToString(), componentType = c.ComponentType, row = c.Row, column = c.Column, columnHeader = c.ColumnHeader, sourceText = c.SourceText, targetText = c.TargetText, text = c.Text }); File.WriteAllText(outFilePathJson, JsonSerializer.Serialize(json, new JsonSerializerOptions { WriteIndented = true })); } Enhancements Improve CSV comparison result readability with text markers CSV comparison output now uses inline text markers to make inserted and deleted content immediately visible without requiring a side-by-side view:\nInserted text is wrapped in parentheses — for example, (new value) Deleted text is wrapped in square brackets — for example, [old value] How to get the update You can get the latest version from NuGet or download it directly from the GroupDocs website.\nNuGet GroupDocs.Comparison for .NET 26.5\nDirect download Download assemblies for both .NET and .NET Framework from the GroupDocs.Comparison for .NET 26.5 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-for-net-26-5/","summary":"GroupDocs.Comparison for .NET 26.5 is here.","title":"GroupDocs.Comparison for .NET 26.5 – May 2026 Release Highlights"},{"content":"We\u0026rsquo;re happy to announce the release of GroupDocs.Metadata for Python v26.5, available as of May 2026. This release introduces Python 3.14 support, ships self-contained wheels with an embedded .NET runtime for Windows, Linux, and macOS (Intel and Apple Silicon), and delivers a modern, typed Python API with explicit .pyi stubs—eliminating runtime proxies. It also includes AGENTS.md for seamless AI agent and LLM integration.\nWhat\u0026rsquo;s new in this release [Enhancement] Rebuilt the Python binding — a typed, per-overload API with bundled *.pyi stubs (no runtime __getattr__ proxy) (METADATAPYTHON-33) [Feature] Python 3.14 support (Requires-Python is now \u0026gt;=3.5,\u0026lt;3.15) (METADATAPYTHON-34) [Feature] Ship AGENTS.md inside the package for AI agent / LLM integration (METADATAPYTHON-35) [Enhancement] Updated to the GroupDocs.Metadata for .NET 26.5 engine (METADATAPYTHON-36) [Enhancement] Self-contained wheels with an embedded .NET runtime for Windows, Linux, and macOS (Intel and Apple Silicon) (METADATAPYTHON-37) Public API changes Every class, method overload, and enum is now emitted explicitly with type hints and *.pyi stubs. Property search uses plain Python predicates—no Specification objects. No breaking changes to existing method signatures; the API remains source-compatible for users upgrading from prior versions. New features A modern, typed Python API: Accurate autocomplete and static analysis via .pyi stubs. Example usage:\nfrom groupdocs.metadata import Metadata with Metadata(\u0026#34;input.docx\u0026#34;) as metadata: for prop in metadata.find_properties(lambda p: True): print(f\u0026#34;{prop.name} = {prop.value}\u0026#34;) Python 3.14 support: Full support from Python 3.5 through 3.14 (Requires-Python: \u0026gt;=3.5,\u0026lt;3.15), with a single universal wheel (py3-none-{platform}).\nAGENTS.md integration: AI assistants (e.g., Claude Code, Cursor, GitHub Copilot) can now automatically discover the API surface, import paths, and usage patterns via groupdocs/metadata/AGENTS.md in the installed wheel.\nCode example Edit metadata using predicates—no Specification objects required:\nfrom datetime import datetime from groupdocs.metadata import Metadata from groupdocs.metadata.common import PropertyValue from groupdocs.metadata.tagging import Tags with Metadata(\u0026#34;input.docx\u0026#34;) as metadata: metadata.set_properties( lambda p: Tags.time.created in list(p.tags), PropertyValue(datetime.now()), ) metadata.save(\u0026#34;output.docx\u0026#34;) # Strip all detected properties in one call with Metadata(\u0026#34;input.pdf\u0026#34;) as metadata: removed = metadata.sanitize() metadata.save(\u0026#34;clean.pdf\u0026#34;) How to get the update PyPI Install or upgrade via pip:\npip install --upgrade groupdocs-metadata-net The package name on PyPI is groupdocs-metadata-net. wheels are available for Windows, Linux, and macOS.\nDirect download Download the latest release from the GroupDocs.Metadata for Python via .NET 26.5 page.\nResources Full Release Notes Documentation API Reference Code Examples Free Support Forum ","permalink":"https://blog.groupdocs.com/metadata/groupdocs-metadata-for-python-26-5/","summary":"Version 26.5 introduces a modern typed API, Python 3.14 compatibility, bundled .NET runtime wheels, and AGENTS.md for AI agent support.","title":"GroupDocs.Metadata for Python 26.5 – May 2026 Release Highlights"},{"content":"GroupDocs.Viewer for Python 26.5 is now available. This release rebuilds the Linux and macOS wheels on the GroupDocs.Viewer.CrossPlatform rendering engine, while the Windows wheel continues to use GroupDocs.Viewer. It also documents the one format‑support difference this introduces and refreshes the documentation and the in‑package AGENTS.md accordingly.\nWhat\u0026rsquo;s new in this release Key Category Summary VIEWERPYTHON-140 Enhancement Build the Linux and macOS wheels on GroupDocs.Viewer.CrossPlatform for native cross‑platform rendering VIEWERPYTHON-141 Enhancement Document per‑platform format support — the Project Management family renders on Windows only VIEWERPYTHON-142 Enhancement Add a platform note to the in‑package AGENTS.md and the Supported File Formats page VIEWERPYTHON-143 Enhancement Review and update related documentation topics Public API changes None. 26.5 is a drop‑in upgrade from 26.4 — every class, method, and property is preserved. The only behavioural change is the rendering engine used on Linux/macOS and the resulting Project‑format limitation described above.\nResources Supported File Formats Render Visio documents Agents and LLM Integration GroupDocs Viewer Support Forum ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-python-26-5/","summary":"GroupDocs.Viewer for Python 26.5 rebuilds Linux and macOS wheels on the cross-platform rendering engine and documents per-platform format support differences.","title":"GroupDocs.Viewer for Python 26.5 – May 2026 Release Highlights"},{"content":"CSV files are vastly used while sharing large data in a compact size. Such data contain comma-separated values which are not really very human readable. However, it is quite easy to manipulate CSV files using editors like Microsoft Excel, OpenOffice Calc, or LibreOffice. There are certain scenarios where we need to compare two large CSV files for their difference. In order to perform this comparison, we do it programmatically. Earlier, we have discussed this CSV files comparison in Java. This article covers the basic way how to compare two CSV files using C# within the .NET application.\n.NET API for Comparing CSV Files GroupDocs provides its document comparison solution for various file formats. We will use its .NET API to compare CSV files within the application. It allows comparing two or more CSV files for differences. It further supports comparing password-protected CSV files, accepting and rejecting the discovered changes and much more.\nYou can download the DLLs or MSI installer from the downloads section or install the API by adding its package to your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Comparison Running examples for its features are also available at GitHub. Visit its documentation and API Reference for guidance.\nHow to Compare CSV Files using C# Let’s head towards our objective and perform the basic comparison. You just have to load the comparison file and then call compare feature to get the comparison results. The following two are the files that are compared in the article below:\nThe following are the steps to compare two CSV files for differences using C#:\nFirst, load the CSV file using the Comparer class. Then, add the second CSV file using the respective Add method. Finally, compare both the files using the Compare method. The following C# code compares the CSV files and provides the differences in a CSV output within the .NET application.\nThe output result is as follows:\nHow Changes Are Displayed in the Resulting CSV Unlike formats such as DOCX or XLSX, CSV files do not support text formatting (colors, bold, etc.), so changes cannot be highlighted with color. To keep the resulting CSV readable, GroupDocs.Comparison marks changes with plain text markers directly inside the cell value:\nInserted text is wrapped in parentheses — for example, (new value) Deleted text is wrapped in square brackets — for example, [old value] Unchanged text is left as is For example, if the source CSV contains the value Infrastructure Assessment in a cell and the target CSV contains Infra Assessment, the resulting CSV will contain Infra[structure] Assessment in that cell. This way, you can easily see what was removed and what remained — directly within the CSV output, without any additional tooling.\nExport CSV Comparison Changes to JSON in C# In addition to producing a result CSV file, GroupDocs.Comparison gives you programmatic access to the list of detected changes via the Changes collection of the result Document. Each ChangeInfo entry contains the change type, source and target text, and — for Cells comparer (CSV, XLSX, ODS, etc.) — the row index, column index, and the column header taken from the first row of the file.\nThis makes it easy to export the comparison report to JSON, where each change is mapped to a named field of your data:\nusing GroupDocs.Comparison; using GroupDocs.Comparison.Options; using System.IO; using System.Linq; using System.Text.Json; string source = \u0026#34;source.csv\u0026#34;; string target = \u0026#34;target.csv\u0026#34;; string outFilePath = \u0026#34;result.csv\u0026#34;; string outFilePathJson = \u0026#34;result.json\u0026#34;; using (var comparer = new Comparer(source)) { comparer.Add(target); var doc = comparer.Compare(outFilePath, new CompareOptions()); var changes = doc.Changes; var json = changes.Select(c =\u0026gt; new { id = c.Id, type = c.Type.ToString(), componentType = c.ComponentType, row = c.Row, column = c.Column, columnHeader = c.ColumnHeader, sourceText = c.SourceText, targetText = c.TargetText, text = c.Text }); File.WriteAllText(outFilePathJson, JsonSerializer.Serialize(json, new JsonSerializerOptions { WriteIndented = true })); } Each entry in the produced JSON file will look similar to this:\n{ \u0026#34;id\u0026#34;: 0, \u0026#34;type\u0026#34;: \u0026#34;Deleted\u0026#34;, \u0026#34;componentType\u0026#34;: \u0026#34;Run\u0026#34;, \u0026#34;row\u0026#34;: 1, \u0026#34;column\u0026#34;: 0, \u0026#34;columnHeader\u0026#34;: \u0026#34;Service\u0026#34;, \u0026#34;sourceText\u0026#34;: \u0026#34;Infrastructure Assessment\u0026#34;, \u0026#34;targetText\u0026#34;: \u0026#34;Infra Assessment\u0026#34;, \u0026#34;text\u0026#34;: \u0026#34;structure\u0026#34; } With the columnHeader property, you immediately know which field of the CSV record was affected, without having to parse the original file separately to map column indexes back to header names.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, we have learned how to compare two CSV files within a .NET application using C#. The features let you find the dissimilarities between any two large CSV files. The summary of the comparison also provides the count for differences found within the compared files. Using these, you can build your own online CSV files comparison .NET application.\nFor more details and to learn about the API, visit its documentation. For queries, contact us via the forum.\nSee Also Compare Images for differences using C# Compare PDF Documents using C# – Highlight Differences, Accept or Reject Changes Compare CSV Files in Java ","permalink":"https://blog.groupdocs.com/comparison/compare-csv-files-using-csharp/","summary":"CSV files are vastly used while sharing large data in a compact size. Such data contain comma-separated values which are not really very human readable. However, it is quite easy to manipulate CSV files using editors like Microsoft Excel, OpenOffice Calc, or LibreOffice. There are certain scenarios where we need to compare two large CSV files for their difference. In order to perform this comparison, we do it programmatically. Earlier, we have discussed this [CSV files comparison in Java][11]. This article covers how to compare two CSV files using C# within a .NET application — produce a result CSV file with inline change markers \u003ccode\u003e()\u003c/code\u003e and \u003ccode\u003e[]\u003c/code\u003e, and export the detected differences (with row, column, and column header information) to a JSON report.","title":"Compare CSV Files using C#"},{"content":"GroupDocs.Comparison for Python 26.5.0 is now available. This is the first public‑PyPI release of the library since 25.12 and introduces a pure‑Python wrapper, bundled AGENTS.md for AI‑assistant discovery, a new console script, and extensive documentation restructuring.\nWhat\u0026rsquo;s new in this release Key Category Summary COMPARISONPYTHON-34 Feature Pure-Python wrapper rebuild — public API is now fully introspectable from Python COMPARISONPYTHON-35 Feature Ship AGENTS.md inside the wheel for AI-agent discovery COMPARISONPYTHON-36 Feature New documentation page: Agents and LLM Integration (MCP server, bundled AGENTS.md, LLM‑optimized docs) COMPARISONPYTHON-39 Feature Console script groupdocs-comparison installed with the wheel — compare, info, list-formats subcommands COMPARISONPYTHON-38 Enhancement Documentation restructure — developer-guide/comparing-documents/ consolidates comparison-basic/ and advanced-usage/comparison/; loading and saving flattened Public API changes The 26.x wrapper was rebuilt with a new generator that exposes a broader public API and cleans up a few member names. Most existing scripts written against 25.12 run unchanged on 26.5; the changes below are grouped by compatibility impact.\nNewly-visible top-level classes These classes existed in 25.12 internals but were hidden from Python introspection by the Nuitka‑compiled wrapper. They are now directly importable:\nfrom groupdocs.comparison.license import License, Metered from groupdocs.comparison.options import ( Color, PdfCompareOptions, WordCompareOptions, CalculateCoordinatesModeEnumeration, ChangeType, ComparisonDisplayMode, DetalisationLevel, FolderComparisonExtension, ImagesInheritance, MetadataType, PagesSetup, PaperSize, PasswordSaveOption, PreviewFormats, PreviewResolution, ) from groupdocs.comparison.result import ComparisonAction, FileType, Rectangle New Color class StyleSettings.font_color, .highlight_color, .shape_color, and .boarder_color now accept any of:\nfrom groupdocs.comparison.options import Color # Named‑color factory style.font_color = Color.from_name(\u0026#34;firebrick\u0026#34;) # RGB / RGBA tuple style.font_color = (255, 0, 0) style.font_color = (255, 0, 0, 128) # Hex string style.font_color = \u0026#34;#FF8800\u0026#34; style.font_color = \u0026#34;#80FF8800\u0026#34; # AARRGGBB # Packed ARGB int style.font_color = 0xFF0000 # Or a Color instance directly style.font_color = Color(178, 34, 34, 255) Color is importable from groupdocs.comparison, groupdocs.comparison.options, and groupdocs.pydrawing—all three paths resolve to the same class.\nCallable‑based PreviewOptions PreviewOptions constructor accepts a Python callable for the CreatePageStream delegate. The callback signature is (page_number) -\u0026gt; writable_stream:\nfrom groupdocs.comparison.options import PreviewOptions, PreviewFormats def create_page_stream(page_number): return open(f\u0026#34;page-{page_number}.png\u0026#34;, \u0026#34;wb\u0026#34;) def release_page_stream(page_number): pass # the bridge has already flushed/closed the stream with Comparer(\u0026#34;source.docx\u0026#34;) as comparer: preview = PreviewOptions(create_page_stream, release_page_stream) preview.preview_format = PreviewFormats.PNG preview.page_numbers = [1, 2, 3] comparer.source.generate_preview(preview) PreviewOptions(create_page_stream) (single‑arg, no release callback) is also valid.\nTyped Rectangle from coordinate properties options = CompareOptions(calculate_coordinates=True) with Comparer(\u0026#34;source.docx\u0026#34;) as comparer: comparer.add(\u0026#34;target.docx\u0026#34;) comparer.compare(options) for change in comparer.get_changes(): b = change.box print(f\u0026#34;({b.x:.1f}, {b.y:.1f}) {b.width:.1f}x{b.height:.1f}\u0026#34;) # (488.96, 223.86) 71.09x36.80 — \u0026#39;…\u0026#39; The fix is product‑wide—applies to every value‑typed property across every product (Point, Size, etc., not just Rectangle).\nProperty‑name kwargs on options constructors opts = ApplyChangeOptions(changes=changes, save_original_state=True) save = SaveOptions(password=\u0026#34;secret\u0026#34;) load = LoadOptions(password=\u0026#34;open-sesame\u0026#34;) comp = CompareOptions(detect_style_changes=True, sensitivity_of_comparison=85) The setter pattern still works (opts = ApplyChangeOptions(); opts.changes = changes). Unknown kwargs raise TypeError.\nNew overload‑suffixed methods A set of overload‑suffixed methods has been added to the public surface so each .NET overload is callable from Python by an explicit, non‑ambiguous name. Examples:\nComparer.add_file(path), add_stream(stream), add_streams(streams), add_string(text) Comparer.apply_changes_file(path, options), apply_changes_stream(stream, options), … Comparer.compare_file(...), compare_stream(...), compare_streams(...), compare_string(...), compare_compare_options(...), compare_save_options(...) Comparer.compare_directory_file(...), compare_directory_string(...) Comparer.get_changes_change_type(...), get_changes_get_change_options(...) License.set_license_file(...), set_license_stream(...), set_license_streams(...), set_license_string(...) Metered.set_metered_key_file(...), set_metered_key_string(...) Document.generate_preview_preview_options(...) localization.SupportedLocales.is_locale_supported_culture_info(...), is_locale_supported_file(...), is_locale_supported_string(...) Explicit Comparer.dispose() Available for callers who prefer not to use the with context‑manager idiom. The recommended pattern remains:\nwith Comparer(\u0026#34;source.docx\u0026#34;) as comparer: comparer.add(\u0026#34;target.docx\u0026#34;) comparer.compare(\u0026#34;result.docx\u0026#34;) Enum casing All enums use UPPERCASE Python convention. Common enums:\nfrom groupdocs.comparison.result import ComparisonAction, FileType from groupdocs.comparison.options import ( ChangeType, ComparisonDisplayMode, DetalisationLevel, FolderComparisonExtension, ImagesInheritance, MetadataType, PaperSize, PasswordSaveOption, PreviewFormats, PreviewResolution, ) from groupdocs.comparison.words.revision import RevisionAction ComparisonAction.ACCEPT, ComparisonAction.REJECT, ComparisonAction.NONE RevisionAction.ACCEPT, RevisionAction.REJECT, RevisionAction.NONE PreviewFormats.PNG, PreviewFormats.JPG MetadataType.SOURCE, MetadataType.TARGET, MetadataType.FILE_AUTHOR PasswordSaveOption.USER, PasswordSaveOption.SOURCE, PasswordSaveOption.TARGET If you were on 25.12 documentation that showed .Accept/.Reject style values, update them to the uppercase form.\nCode example Below is a minimal example that demonstrates importing the newly visible top‑level classes and performing a simple comparison:\nfrom groupdocs.comparison import Comparer from groupdocs.comparison.options import CompareOptions options = CompareOptions(detect_style_changes=True) with Comparer(\u0026#34;source.docx\u0026#34;) as comparer: comparer.add(\u0026#34;target.docx\u0026#34;) comparer.compare(options) for change in comparer.get_changes(): print(f\u0026#34;Change type: {change.change_type}, Box: {change.box}\u0026#34;) How to get the update PyPI pip install groupdocs-comparison-net==26.5.0 The wheel is published on public PyPI: https://pypi.org/project/groupdocs-comparison-net/\nDirect download No direct download links are provided; obtain the package via PyPI or the GroupDocs website.\nResources PyPI project page: https://pypi.org/project/groupdocs-comparison-net/ Agents and LLM Integration documentation: https://docs.groupdocs.com/comparison/python-net/agents-and-llm-integration/ Examples repository: https://github.com/groupdocs-comparison/GroupDocs.Comparison-for-Python-via-.NET Issue reporting forum: https://forum.groupdocs.com/c/comparison/ Paid Support Helpdesk: https://helpdesk.groupdocs.com/ ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-for-python-26-5/","summary":"GroupDocs.Comparison for Python 26.5 introduces a fully introspectable pure-Python API, AI-agent support via AGENTS.md, a new CLI tool, and major compatibility improvements.","title":"GroupDocs.Comparison for Python 26.5 – May 2026 Release Highlights"},{"content":"We are pleased to announce the release of GroupDocs.Redaction for .NET 26.5, published in May 2026. This release introduces an improved NuGet packaging model, adds support for modern .NET versions, and includes several processing optimizations.\nFixes and enhancements [Enhancement] Implemented TFM-Split NuGet Packaging. (REDACTIONNET-749) [Enhancement] Added .NET 8.0 Support. (REDACTIONNET-770) [Enhancement] Added .NET 10.0 Support. (REDACTIONNET-774) [Enhancement] Optimized HTML page processing. (REDACTIONNET-775) What’s New? This release expands the range of systems and environments where GroupDocs.Redaction can be used:\nIntroduced a more advanced NuGet package delivery model. TFM-Split NuGet Packaging reduces the package size required to run GroupDocs.Redaction on a specific device. Previously, a single NuGet package contained binaries for all supported platforms. Now, only the components matching the target platform are downloaded during installation.\nAdded support for modern .NET 8 and .NET 10 frameworks.\nOptimized HTML page processing to provide better compatibility and usability.\nHow to get the update NuGet – Upgrade to the latest GroupDocs.Redaction for .NET package via NuGet Direct Download – Download GroupDocs.Redaction assemblies from the GroupDocs.Redaction for .NET 26.5 page Learn more Full Release Notes Documentation GroupDocs.Redaction Free Support Forum ","permalink":"https://blog.groupdocs.com/redaction/groupdocs-redaction-for-net-26-5/","summary":"GroupDocs.Redaction for .NET 26.5 release notes.","title":"GroupDocs.Redaction for .NET 26.5 – May 2026 Release Notes"},{"content":"GroupDocs.Total for .NET 26.4 is now available. This release focuses on stabilizing format handling across the suite, fixing rendering and conversion issues for EPSF, DXF, and MSG files in Viewer, Conversion, and Metadata.\nWhat\u0026rsquo;s new in this release Issue Product Description TOTALNET-341 Viewer GroupDocs.Viewer.Exceptions.GroupDocsViewerException: 'CAD document rendering failed' during rendering DXF file. TOTALNET-350 Metadata MSG file properties and transport message headers changed after open/save with GroupDocs.Metadata. TOTALNET-352 Conversion Special characters not working in certain MSG files when converting to PDF. TOTALNET-366 Viewer EPSF format support is limited – error while parsing EPSF file content. TOTALNET-367 Conversion “No font was found” exception when converting MSG to PDF. TOTALNET-341 – Viewer\nFixed a GroupDocsViewerException that was thrown with the message ‘CAD document rendering failed’ when rendering DXF files.\nTOTALNET-350 – Metadata\nThe Sender Email property is no longer altered during processing with GroupDocs.Metadata. The code snippet below demonstrates how the property is preserved after opening and saving an MSG file.\nTOTALNET-352 – Conversion\nSpecial characters that previously appeared as boxes in PDFs generated from MSG files are now rendered correctly.\nTOTALNET-366 – Viewer\nImplemented a fix that replaces malformed dash‑array tokens ([%d %d %d %d ] 0 d) in EPSF files with valid dash arrays, eliminating parsing errors caused by unclosed arrays.\nTOTALNET-367 – Conversion\nAdded guidance for .NET Framework applications to configure binding redirects when the required .NET Standard assemblies are unavailable, preventing “No font was found” exceptions during MSG‑to‑PDF conversion.\nCode example using (Metadata metadata = new Metadata(\u0026#34;test.msg\u0026#34;)) { MsgRootPackage root = metadata.GetRootPackage\u0026lt;MsgRootPackage\u0026gt;(); MsgPackage msg = root.EmailPackage; metadata.Save(); } var loadOptions = new EmailLoadOptions { ConvertOwned = false }; var convertOptions = new PdfConvertOptions(); FluentConverter.Load(\u0026#34;source.msg\u0026#34;).WithOptions(loadOptions) .ConvertTo(\u0026#34;converted.pdf\u0026#34;) .WithOptions(convertOptions) .Convert(); How to get the update NuGet GroupDocs.Total 26.4 – .NET 6.0 assembly (also .NET Standard 2.0 for versions prior to 24.9). GroupDocs.Total.NETFramework 26.4 – .NET Framework 4.6.2 and later. Direct download Download the compiled assemblies from the GroupDocs.Total for .NET 26.4 direct‑download page. Resources Product Overview System Requirements Technical Support Free Support Forum ","permalink":"https://blog.groupdocs.com/total/groupdocs-total-for-net-26-4/","summary":"GroupDocs.Total for .NET 26.4 addresses critical rendering and conversion issues in Viewer, Conversion, and Metadata modules, with improvements for CAD and MSG file handling.","title":"GroupDocs.Total for .NET 26.4 – April 2026 Release Highlights"},{"content":"Introduction When a legal department receives multiple contract PDFs, each reviewer often adds their own password to protect confidential clauses. Consolidating these files into a single binder becomes a nightmare because the passwords differ and the files cannot be merged directly. Manual decryption is time‑consuming and error‑prone, especially when dealing with dozens of PDFs.\nPassword‑merge is a GroupDocs.Merger workflow for Java that unlocks heterogeneous PDFs and re‑protects the merged result with a single credential. This tutorial walks through detecting protected PDFs, unlocking them, merging the content, and optionally rotating the unified password.\nYou’ll learn how to configure the Merger API, process byte streams, and generate a secure combined PDF in under 30 lines of Java code.\nWhen should I merge password‑protected PDFs? Merging password‑protected PDFs makes sense whenever you need a single, searchable archive that respects security policies while eliminating the overhead of handling multiple passwords. Typical scenarios include quarterly financial report bundles, contract binders for audits, and legal case files where each contributor applied a different password. By unlocking each file programmatically and applying a unified password, you keep the archive secure and simplify downstream review processes. The whole operation can be automated in a CI pipeline, saving hours of manual work.\nPrerequisites Java 11 or later GroupDocs.Merger for Java 24.6+ (temporary license) A set of PDF files, each optionally paired with its password Install the library via Maven:\nmvn dependency:copy -Dartifact=com.groupdocs:groupdocs-merger:24.6 Step 1 – Detect if a PDF is password‑protected Before attempting to unlock a file, check whether it actually carries a password. This avoids unnecessary processing and lets you log which files need credentials.\n// Returns true if the PDF at `path` has an owner or user password public boolean isDocumentProtected(String path, String password) { Merger merger; if (password == null || password.isEmpty()) { merger = new Merger(path); } else { merger = new Merger(path, new LoadOptions(password)); } try { return merger.isPasswordSet(); } finally { merger.dispose(); } } Key points:\nLoadOptions carries a known password; if none is provided the file is opened normally. isPasswordSet() reports true for both owner and user passwords. Always dispose the Merger instance to free native resources. Step 2 – Unlock each PDF and collect raw bytes Iterate over a map where the key is the file path and the value is its password (null if none). The method returns a list of byte arrays representing the unlocked PDFs.\npublic List\u0026lt;byte[]\u0026gt; unlockAll(Map\u0026lt;String, String\u0026gt; sources) throws IOException { List\u0026lt;byte[]\u0026gt; unlocked = new ArrayList\u0026lt;\u0026gt;(); for (Map.Entry\u0026lt;String, String\u0026gt; e : sources.entrySet()) { String path = e.getKey(); String password = e.getValue(); System.out.println(\u0026#34;Unlocking (credentials=\u0026#34; + (password != null ? \u0026#34;yes\u0026#34; : \u0026#34;no\u0026#34;) + \u0026#34;): \u0026#34; + path); if (password == null || password.isEmpty()) { unlocked.add(Files.readAllBytes(Paths.get(path))); } else { LoadOptions opts = new LoadOptions(password); ByteArrayOutputStream buf = new ByteArrayOutputStream(); Merger m = new Merger(path, opts); try { m.removePassword(); m.save(buf); } finally { m.dispose(); } unlocked.add(buf.toByteArray()); } } return unlocked; } Key points:\nremovePassword() strips the existing protection. The decrypted content is written to a ByteArrayOutputStream for in‑memory handling. Files without a password are read directly to keep the flow simple. Step 3 – Merge the unlocked PDFs and apply a unified password Create a Merger from the first PDF stream, then join the remaining streams. Finally, protect the combined document with AddPasswordOptions.\npublic void mergeAndProtect(List\u0026lt;byte[]\u0026gt; unlockedPdfs, String unifiedPassword, String outputPath) { InputStream first = new ByteArrayInputStream(unlockedPdfs.get(0)); Merger merger = new Merger(first); try { for (int i = 1; i \u0026lt; unlockedPdfs.size(); i++) { merger.join(new ByteArrayInputStream(unlockedPdfs.get(i))); } merger.addPassword(new AddPasswordOptions(unifiedPassword)); merger.save(outputPath); } finally { merger.dispose(); } System.out.println(\u0026#34;Merged output: \u0026#34; + new File(outputPath).getAbsolutePath()); System.out.println(\u0026#34;Unified password: \u0026#34; + unifiedPassword); } Key points:\naddPassword encrypts the final PDF with the supplied credential. All operations happen in memory; only the final file is written to disk. Dispose the Merger to release native handles. Step 4 – Rotate the password on an already‑protected PDF (optional) If your organization enforces periodic password rotation, you can update the credential without re‑merging the source files.\npublic void rotateUnifiedPassword(String path, String oldPassword, String newPassword, String outputPath) { Merger merger = new Merger(path, new LoadOptions(oldPassword)); try { merger.updatePassword(new UpdatePasswordOptions(newPassword)); merger.save(outputPath); } finally { merger.dispose(); } System.out.println(\u0026#34;Rotated output: \u0026#34; + new File(outputPath).getAbsolutePath()); System.out.println(\u0026#34;New password: \u0026#34; + newPassword); } Key points:\nLoad the protected PDF with the current password. updatePassword replaces it with the new credential. This operation is fast because it does not re‑process the PDF content. Real‑World Application I hit this when consolidating five investor contracts that each had a different reviewer password. Using the steps above, I unlocked all files, merged them into a single binder, and applied a single password that matched our corporate policy. The whole process ran in under two minutes on a standard laptop.\nBest Practices Validate passwords early: Use isDocumentProtected to flag files that may need manual attention. Limit memory usage: For large PDFs, stream them to disk instead of keeping all byte arrays in memory. Dispose objects promptly: The Merger class holds native resources; always call dispose() in a finally block. Use a temporary license only for development; obtain a production license before release. Conclusion GroupDocs.Merger for Java provides a clean API for unlocking, merging, and re‑securing PDF collections. By following the four steps—detecting protection, unlocking, merging with a unified password, and optionally rotating that password—you can automate the creation of secure PDF binders without manual intervention.\nNext steps:\nExplore additional options such as setting PDF metadata after merge (documentation). Learn how to merge PDFs while preserving bookmarks (API reference). Check out the full sample project on GitHub for a ready‑to‑run implementation. Additional Resources GroupDocs.Merger Documentation API Reference Get a Temporary License Sample Projects on GitHub (if available) Community Forum ","permalink":"https://blog.groupdocs.com/groupdocs.merger/password-merge-java/","summary":"Learn how to unlock heterogeneous PDF files, merge them, and apply a unified password using GroupDocs.Merger for Java. This guide covers detection of protected files, decryption, merging, and password rotation with concise code snippets.","title":"How to Merge Password-Protected PDFs into a Single Secure Document Using GroupDocs.Merger for Java"},{"content":"GroupDocs.Metadata for .NET 26.5 is now available. This release introduces work‑flow improvements for CAD formats and adds TFM‑Split packaging support for the NuGet distribution.\nWhat\u0026rsquo;s new in this release Key Category Summary METADATANET-4166 Bug MSG File Properties and Transport Message Headers Change After Open/Save with GroupDocs.Metadata. METADATANET-4190 New Feature TFM‑Split Packaging for GroupDocs.Metadata NuGet. Public API changes None\nNew features TFM‑Split Packaging for GroupDocs.Metadata NuGet. (METADATANET-4190) How to get the update NuGet Upgrade to the latest GroupDocs.Metadata package via NuGet.\n","permalink":"https://blog.groupdocs.com/metadata/groupdocs-metadata-for-net-26-5/","summary":"GroupDocs.Metadata for .NET 26.5 introduces TFM-Split packaging support and fixes MSG file property changes.","title":"GroupDocs.Metadata for .NET 26.5 – May 2026 Release Highlights"},{"content":"Introduction PDF is the de-facto standard for contracts, specifications, reports, and regulatory filings — and with multiple versions in circulation, tracking down exactly what changed between two files quickly becomes tedious. Scrolling through documents side by side and annotating differences by hand does not scale, and even purpose-built tools like Adobe Acrobat\u0026rsquo;s Compare feature require manual intervention for every pair of files.\nGroupDocs.Comparison for .NET lets you run PDF comparison entirely from code and choose exactly how the result is presented. Version 26.4 introduced a dedicated PdfCompareOptions class with three output display modes:\nInline (default) — a single merged PDF where deletions and insertions are highlighted in different colours on the same pages. This is the classic behaviour and is the easiest result to share as a standalone file. Side‑by‑Side — each result page shows the source and target pages placed next to each other, with no content overlap. Ideal when documents differ heavily and mixing content on one page would be confusing. Interleaved — the result contains alternating pages: odd pages come from the source (deletions highlighted), even pages from the target (insertions highlighted). Changes are represented as native PDF annotations — a built‑in PDF object type that carries metadata such as the change type and author name. Most PDF viewers (Adobe Acrobat Reader, Foxit, etc.) let users open the annotations panel and accept or delete individual annotations, making it a lightweight review workflow without any extra software. Opening this file in a \u0026ldquo;Two Page View\u0026rdquo; PDF reader produces a natural left/right comparison. In this article we will walk through all three modes with working C# examples, explore PdfCompareOptions and its properties, and briefly cover how the same task can be done manually in Adobe Acrobat.\nComparing PDFs in Adobe Acrobat Before diving into the programmatic approach, it is worth knowing what Adobe Acrobat Pro offers out of the box. Acrobat\u0026rsquo;s built‑in Compare Files tool (available under Tools → Compare Files) produces a side‑by‑side report that highlights text changes, image differences, and formatting shifts.\nTo run a comparison in Acrobat Pro:\nOpen Acrobat Pro and choose Tools → Compare Files. Select the Older File (source) and the Newer File (target). Click Compare. Acrobat generates an interactive comparison report with a summary page and inline change markers. This works well for occasional manual reviews. However, Acrobat\u0026rsquo;s compare tool has significant limitations when comparison needs to be part of an automated pipeline.\nWhen comparison must happen on a server, inside a CI/CD pipeline, or as part of a custom review workflow, a code-first library is the right tool.\nPrerequisites Before you start:\n.NET 6.0 or later. GroupDocs.Comparison for .NET 26.4 or later — install via NuGet: dotnet add package GroupDocs.Comparison A license file (GroupDocs.Comparison.lic). Without it the library runs in evaluation mode with watermarks and page-count limits. You can request a temporary license for testing. Two PDF files to compare — we will call them source.pdf and target.pdf. Example content: source.pdf target.pdf Mode 1: Inline Comparison (Default) When to use: you want a single, self‑contained PDF file that anyone can open and immediately see what changed — without needing a special viewer or a two‑page layout. A typical scenario is sharing a redlined contract draft with a counterparty.\nusing GroupDocs.Comparison; using GroupDocs.Comparison.Options; using (var comparer = new Comparer(\u0026#34;source.pdf\u0026#34;)) { comparer.Add(\u0026#34;target.pdf\u0026#34;); var options = new PdfCompareOptions { DisplayMode = PdfCompareOptions.ComparisonDisplayMode.Inline }; comparer.Compare(\u0026#34;result_inline.pdf\u0026#34;, options); } Note: Inline is the default value of DisplayMode, so the options block above is optional. A plain comparer.Compare(\u0026quot;result_inline.pdf\u0026quot;) call produces the same output.\nResulting document in Inline mode:\nWhat happens under the hood:\nDeleted content from the source document is highlighted in one colour (red by default). Inserted content from the target document is highlighted in another colour (green by default). Both sets of changes coexist on the same pages, so the result is compact but can look busy when documents differ heavily. With substantial text edits, deleted and inserted content may physically overlap on the page — for example, a replaced paragraph renders on top of the original one, producing an unreadable jumble. In such cases SideBySide or Interleaved mode is a better choice. Mode 2: Side‑by‑Side Comparison When to use: the two documents differ heavily and placing deletions and insertions on the same page would make the result hard to read. Side‑by‑Side keeps source and target content strictly separated, making it easy to scan each page at a glance.\nusing GroupDocs.Comparison; using GroupDocs.Comparison.Options; using (var comparer = new Comparer(\u0026#34;source.pdf\u0026#34;)) { comparer.Add(\u0026#34;target.pdf\u0026#34;); var options = new PdfCompareOptions { DisplayMode = PdfCompareOptions.ComparisonDisplayMode.SideBySide }; comparer.Compare(\u0026#34;result_side_by_side.pdf\u0026#34;, options); } Resulting document in Side‑by‑Side mode:\nWhat happens under the hood:\nEach result page is effectively a wide canvas split into two halves. The left half shows the corresponding source page with deletions highlighted. The right half shows the target page with insertions highlighted. Content from the two documents never overlaps, so even heavily edited pages remain readable. Mode 3: Interleaved Comparison When to use: you want to review changes page by page in a standard PDF reader using its Two Page View (or \u0026ldquo;Facing Pages\u0026rdquo;) mode. Each source page sits on the left, its corresponding target page on the right — the physical page layout mirrors what Side‑by‑Side renders on a single canvas, but every page is kept at full size.\nusing GroupDocs.Comparison; using GroupDocs.Comparison.Options; using (var comparer = new Comparer(\u0026#34;source.pdf\u0026#34;)) { comparer.Add(\u0026#34;target.pdf\u0026#34;); var options = new PdfCompareOptions { DisplayMode = PdfCompareOptions.ComparisonDisplayMode.Interleaved, AnnotationAuthorName = \u0026#34;GroupDocs\u0026#34; }; comparer.Compare(\u0026#34;result_interleaved.pdf\u0026#34;, options); } Resulting document in Interleaved mode (shown in Two Page View):\nWhat happens under the hood:\nThe result document contains 2 × N pages for an N-page source/target pair. Odd-numbered pages (1, 3, 5 …) are source pages with deletions highlighted. Even-numbered pages (2, 4, 6 …) are target pages with insertions highlighted. AnnotationAuthorName stamps the author name on PDF annotations produced during comparison — useful when the result feeds into a review workflow where multiple authors\u0026rsquo; comments must be distinguishable. Tip: open the result in Adobe Acrobat Reader or any viewer that supports View → Page Display → Two Page View to get the intended left/right layout automatically.\nLimiting Comparison to a Page Range All three modes support page‑range filtering via the PagesSetup property. This is useful when only a specific chapter or section of a large document has changed and you want to skip the rest.\nusing GroupDocs.Comparison; using GroupDocs.Comparison.Options; using (var comparer = new Comparer(\u0026#34;source.pdf\u0026#34;)) { comparer.Add(\u0026#34;target.pdf\u0026#34;); var options = new PdfCompareOptions { DisplayMode = PdfCompareOptions.ComparisonDisplayMode.SideBySide, PagesSetup = new PagesSetup { StartPage = 3, EndPage = 10 } }; comparer.Compare(\u0026#34;result_pages_3_to_10.pdf\u0026#34;, options); } When PagesSetup is null (or not set), all pages are compared — the same behaviour as in previous versions.\nExploring PdfCompareOptions PdfCompareOptions is a PDF-specific subclass of CompareOptions, following the same pattern as WordCompareOptions introduced in version 26.2. It groups all PDF-only settings in one place so you do not accidentally apply Word- or spreadsheet-specific options to a PDF job.\nProperty Type Description DisplayMode ComparisonDisplayMode Controls result layout: Inline (default), SideBySide, or Interleaved. PagesSetup PagesSetup Page range to compare. When null, all pages are processed. CompareImagesPdf bool Whether to include embedded images in the comparison. AnnotationAuthorName string Author name stamped on PDF annotations (used in Interleaved mode). ImagesInheritanceMode enum Controls which document provides images when image comparison is disabled. A fully configured example:\nvar options = new PdfCompareOptions { DisplayMode = PdfCompareOptions.ComparisonDisplayMode.Interleaved, CompareImagesPdf = true, AnnotationAuthorName = \u0026#34;Review Bot\u0026#34;, PagesSetup = new PagesSetup { StartPage = 1, EndPage = 5 } }; The inherited CompareOptions base properties — InsertedItemStyle, DeletedItemStyle, ChangedItemStyle — are also available, letting you override the default highlight colours when needed.\nGetting Changes Programmatically Regardless of the display mode, you can retrieve a structured list of all detected differences via Comparer.GetChanges(). This is useful for building custom reports, feeding results into a review system, or collecting statistics about the scope of edits.\nusing (var comparer = new Comparer(\u0026#34;source.pdf\u0026#34;)) { comparer.Add(\u0026#34;target.pdf\u0026#34;); comparer.Compare(\u0026#34;result.pdf\u0026#34;); var changes = comparer.GetChanges(); // returns ChangeInfo[] Console.WriteLine($\u0026#34;Total changes detected: {changes.Length}\u0026#34;); } See the official API reference for details: Comparer.GetChanges.\nWorking with Password‑Protected PDFs Password‑protected PDFs are fully supported. Pass the password via LoadOptions when creating the Comparer:\nusing GroupDocs.Comparison; using GroupDocs.Comparison.Options; using (var comparer = new Comparer(\u0026#34;source_protected.pdf\u0026#34;, new LoadOptions { Password = \u0026#34;secret\u0026#34; })) { comparer.Add(\u0026#34;target_protected.pdf\u0026#34;, new LoadOptions { Password = \u0026#34;secret\u0026#34; }); var options = new PdfCompareOptions { DisplayMode = PdfCompareOptions.ComparisonDisplayMode.SideBySide }; comparer.Compare(\u0026#34;result_protected.pdf\u0026#34;, options); } Get a Free Trial You can download GroupDocs.Comparison for .NET from the official releases page. For unrestricted testing, request a temporary license — no credit card required.\nFrequently Asked Questions Q: Do I need Adobe Acrobat or any other PDF software installed on the server? A: No. GroupDocs.Comparison is a standalone .NET library that reads and writes PDF files without any third‑party dependencies.\nQ: Which display mode should I use by default? A: Start with Inline — it produces the most compact result and is the easiest to share. Switch to SideBySide when heavy edits make the inline view hard to read, or use Interleaved when reviewers will open the result in a \u0026ldquo;Two Page View\u0026rdquo; PDF reader.\nQ: Can I compare documents in formats other than PDF? A: Yes — the library supports Word documents, Excel spreadsheets, PowerPoint presentations, plain‑text files, and many more. The full list is in the documentation.\nQ: What happens if I don\u0026rsquo;t set a license? A: The library runs in evaluation mode. Output documents will contain a watermark and only the first few pages are processed. A temporary license removes these restrictions for testing.\nQ: Can I compare only images inside a PDF and ignore text changes? A: Use CompareImagesPdf = true on PdfCompareOptions to include image comparison. To focus exclusively on images you can combine this with the ImagesInheritanceMode property; see the API reference for details.\nOther Platforms GroupDocs.Comparison ships as a native library for several runtimes — the Inline / Side‑by‑Side / Interleaved workflow described above is available across all of them:\nGroupDocs.Comparison for Java GroupDocs.Comparison for Python via .NET GroupDocs.Comparison for Node.js via Java GroupDocs.Comparison Cloud API — language‑agnostic REST API The API surface is intentionally kept consistent across platforms, so the Comparer / PdfCompareOptions / DisplayMode concepts translate directly — only the syntax changes.\nConclusion GroupDocs.Comparison for .NET 26.4 gives you precise, code‑driven control over how PDF comparison results are presented. Inline mode covers the most common use case — a single, shareable redlined PDF. SideBySide keeps heavily changed content clean and readable. Interleaved pairs naturally with any PDF viewer\u0026rsquo;s Two Page View for a full‑size page‑by‑page walkthrough. On top of that, page‑range filtering lets you target exactly the sections that matter, and PdfCompareOptions consolidates all PDF‑specific settings in one discoverable class.\nPick the mode that fits your workflow, or generate all three and let each audience choose their preferred view.\nAdditional Resources GroupDocs.Comparison Documentation API Reference Get a Temporary License Sample Projects on GitHub GroupDocs.Comparison Blog Category Community Forum ","permalink":"https://blog.groupdocs.com/comparison/pdf-comparison-net-display-modes/","summary":"Discover how to automate PDF document comparison with GroupDocs.Comparison for .NET. This guide walks through three result layouts – Inline, Side‑by‑Side, and Interleaved – with ready‑to‑run C# code examples, plus a brief look at comparing PDFs manually in Adobe Acrobat.","title":"Compare PDF Documents in C#: Inline, Side‑by‑Side, and Interleaved Modes"},{"content":"GroupDocs.Merger for .NET 26.4 is now available (April 2026). This release improves merging reliability by fixing page‑number continuity in Word documents and streamlines deployment with per‑TFM NuGet packages, ensuring accurate pagination and easier integration across .NET target frameworks.\nWhat\u0026rsquo;s new in this release Key Category Summary MERGERNET-2100 Feature Migrate to per-TFM distribution packaging MERGERNET-2071 Bug Page number fields restart instead of continuing sequentially when merging Word documents with Continuous mode New features Continuous Page Numbering in Word Merges: Page number fields now continue sequentially across merged Word documents when using Continuous mode, delivering accurate pagination in the final output.\nPer-TFM NuGet Packages: Distribution is split per target framework, allowing developers to reference only the packages that match their .NET version, which reduces package size and simplifies restore operations.\nStreamlined Deployment Across .NET Targets: The new per‑TFM packaging improves compatibility with .NET 6, .NET 7, .NET 8, and .NET Framework, enabling faster and more reliable integration into diverse projects.\nHow to get the update NuGet Upgrade to the latest GroupDocs.Merger for .NET package via NuGet. The 26.4 release is available as per‑TFM packages for the supported .NET target frameworks.\n","permalink":"https://blog.groupdocs.com/merger/groupdocs-merger-for-net-26-4/","summary":"GroupDocs.Merger for .NET 26.4 improves Word merging with correct page-number continuity and introduces per-TFM NuGet packages for optimized deployment across .NET versions.","title":"GroupDocs.Merger for .NET 26.4 – April 2026 Release Highlights"},{"content":"We\u0026rsquo;re happy to announce the release of GroupDocs.Comparison for .NET 26.4, available as of April 2026.\nGroupDocs.Comparison version 26.4 focuses on significant improvements to PDF document comparison, introducing new display modes, page range filtering, and a dedicated PDF options class.\nFixes and enhancements [Enhancement] Optimized comparison performance for PDF documents. (COMPARISONNET-4732) [Bug] Fixed embedded fonts handling logic in PDF comparison. (COMPARISONNET-4733) [Bug] Pdf with tables cause exception during processing. (COMPARISONNET-4707) [Feature] Ability to produce side by side PDF comparison result. (COMPARISONNET-4725) [Feature] Ability to specify pages range for PDF documents comparison. (COMPARISONNET-4731) Major Features Ability to produce side by side PDF comparison result Two new display modes have been added to the new PdfCompareOptions class via the ComparisonDisplayMode enum:\nSideBySide – each result page shows the source and target pages side by side. Deletions appear on the left (source side) and insertions on the right (target side). Content from the two documents never overlaps, making this mode ideal when documents differ heavily. Interleaved – produces a document with alternating pages: odd-numbered pages come from the source document (showing deletions) and even-numbered pages from the target document (showing insertions). Open the result in a PDF viewer with \u0026ldquo;Two Page View\u0026rdquo; to see each source/target pair side by side. Note: The previous default behavior (a single merged document with highlighted insertions and deletions) is preserved as ComparisonDisplayMode.Inline and remains the default value.\nAbility to specify pages range for PDF documents comparison You can now limit PDF comparison to a specific range of pages using the PagesSetup property on PdfCompareOptions. When not set, all pages are compared as before.\nusing (var comparer = new Comparer(\u0026#34;source.pdf\u0026#34;)) { comparer.Add(\u0026#34;target.pdf\u0026#34;); var options = new PdfCompareOptions() { CompareImagesPdf = true, DisplayMode = PdfCompareOptions.ComparisonDisplayMode.SideBySide, PagesSetup = new PagesSetup() { StartPage = 3, EndPage = 10 } }; comparer.Compare(\u0026#34;result.pdf\u0026#34;, options); } Public API changes A new PdfCompareOptions class has been introduced for PDF-specific comparison configuration, following the same pattern as WordCompareOptions introduced in version 26.2.\nPdfCompareOptions (namespace GroupDocs.Comparison.Options) — inherits from CompareOptions and adds PDF-only settings:\nDisplayMode – controls how the PDF comparison result document is laid out; default value is Inline (legacy behavior) PagesSetup – specifies the page range to compare; when null, all pages are compared CompareImagesPdf – whether to compare images in PDF documents AnnotationAuthorName – the author name used for annotations when DisplayMode is set to Interleaved ImagesInheritanceMode – specifies the source of image inheritance when image comparison is disabled PdfCompareOptions.ComparisonDisplayMode enum values:\nInline (default) – legacy behavior; single merged PDF with deleted content highlighted in one color and inserted content in another SideBySide (new) – source and target pages appear side by side on each result page; no content overlap Interleaved (new) – alternating source/target pages; best viewed in a \u0026ldquo;Two Page View\u0026rdquo; PDF reader How to get the update You can get the latest version from NuGet or download it directly from the GroupDocs website.\nNuGet GroupDocs.Comparison for .NET 26.4\nDirect download Download assemblies for both .NET and .NET Framework from the GroupDocs.Comparison for .NET 26.4 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-for-net-26-4/","summary":"GroupDocs.Comparison for .NET 26.4 is here.","title":"GroupDocs.Comparison for .NET 26.4 – April 2026 Release Highlights"},{"content":"GroupDocs.Viewer for .NET UI 26.4.0 is now available. This release adds .NET 10 support, updates core dependencies (GroupDocs.Viewer 26.4.0, AWS SDK, Azure.Storage.Blobs, SourceLink), aligns transport‑package versions per target framework, and renames the Docker image to run on .NET 10.\nWhat\u0026rsquo;s new in this release Key Category Summary Change .NET 10 Support All thirteen packages now target net6.0, net8.0, and net10.0. GroupDocs.Viewer.UI.Core continues to target netstandard2.0 for broad compatibility. The test suite runs against all three .NET targets. Change Per‑TFM Package Version Alignment Microsoft.Extensions.* and related transport packages now resolve to versions matching each target framework: • net6.0 → 6.0.x (e.g., Microsoft.Extensions.Http 6.0.1, Microsoft.Extensions.Configuration 6.0.2) • net8.0 / netstandard2.0 → 8.0.x (current LTS patches) • net10.0 → 10.0.7 System.Text.Json and System.Formats.Asn1 remain at 8.0.x on net6 because GroupDocs.Viewer 26.4.0 transitively requires those minimums. Change GroupDocs.Viewer 26.4.0 Updated underlying engine from 25.12.0 to 26.4.0 (GroupDocs.Viewer and GroupDocs.Viewer.CrossPlatform). Change Docker Image Rename Image renamed: groupdocs/viewer-ui → groupdocs/viewer-net-ui (Docker Hub and GHCR). The previous repository will be marked deprecated; please update your docker pull / Compose files: docker pull groupdocs/viewer-net-ui:latest. The image now runs on .NET 10 (mcr.microsoft.com/dotnet/aspnet:10.0) and is built with the .NET 10 SDK. The Docker host project (docker/GroupDocs.Viewer.UI.Docker) targets net10.0. Change Security and Dependency Updates • AWSSDK.S3 4.0.7.2 → 4.0.22.1 — pulls in patched AWSSDK.Core (resolves advisory GHSA‑9cvc‑h2w8‑phrp) • Azure.Storage.Blobs 12.25.0 → 12.27.0 • Microsoft.SourceLink.GitHub 8.0.0 → 10.0.203 Change Version Scheme Following the company versioning scheme (YY.M.0), this release is 26.4.0 (April 2026). Fixes and enhancements Key Category Summary Fix AzureBlobStorage Call Sites Adapt BlobContainerClient.GetBlobsByHierarchyAsync and GetBlobsAsync call sites in AzureBlobStorage to Azure.Storage.Blobs 12.27.0 signature (now requires explicit BlobTraits, BlobStates, and CancellationToken). Fix Centralized MSBuild Property Promote hardcoded Microsoft.Extensions.Caching.Abstractions version in Api.Distributed.Cache to a centralized MSBuild property so it picks up the per‑TFM resolution like other extension packages. Enhancement NetVersions MSBuild Property Add net10.0 to the shared NetVersions MSBuild property — all thirteen src projects pick it up automatically. Enhancement Test Project Alignment Switch test project (GroupDocs.Viewer.UI.Api.Tests) to use $(NetVersions) so coverage tracks the same matrix as production code. Enhancement Suppress net6‑only Warning Suppress net6.0‑only TFM‑support warning in Api.AzureBlob.Storage (transitive System.IO.Hashing 10.x drops net6 support; net6 is EOL’d). How to get the update NuGet GroupDocs.Viewer.UI – v26.4.0 GroupDocs.Viewer.UI.Api – v26.4.0 GroupDocs.Viewer.UI.Api.AwsS3.Storage – v26.4.0 GroupDocs.Viewer.UI.Api.AzureBlob.Storage – v26.4.0 GroupDocs.Viewer.UI.Api.Cloud.Storage – v26.4.0 GroupDocs.Viewer.UI.Api.Distributed.Cache – v26.4.0 GroupDocs.Viewer.UI.Api.InMemory.Cache – v26.4.0 GroupDocs.Viewer.UI.Api.Local.Cache – v26.4.0 GroupDocs.Viewer.UI.Api.Local.Storage – v26.4.0 GroupDocs.Viewer.UI.Cloud.Api – v26.4.0 GroupDocs.Viewer.UI.Core – v26.4.0 GroupDocs.Viewer.UI.SelfHost.Api – v26.4.0 GroupDocs.Viewer.UI.SelfHost.Api.CrossPlatform – v26.4.0 Direct download No direct download packages are provided for this release.\nResources Release notes on GitHub Advisory GHSA‑9cvc‑h2w8‑phrp: https://github.com/advisories/GHSA-9cvc-h2w8-phrp Free Support Forum ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-net-ui-26-4/","summary":"GroupDocs.Viewer for .NET UI 26.4.0 introduces .NET 10 support, aligns package versions per target framework, updates core dependencies, and renames the Docker image for .NET 10.","title":"GroupDocs.Viewer for .NET UI 26.4 – April 2026 Release Highlights"},{"content":"We are pleased to announce the release of GroupDocs.Parser for .NET 26.4, available as of April 2026. This update introduces table extraction from HTML files.\nWhat\u0026rsquo;s new in this release Key Category Summary PARSERNET-2858 Improvement Implement table extraction from HTML Public API changes None.\nCode example // Create an instance of the Parser class using (Parser parser = new Parser(documentPath)) { // Extract all tables from the document IEnumerable\u0026lt;PageTableArea\u0026gt; tables = parser.GetTables(); foreach (PageTableArea table in tables) { Console.WriteLine($\u0026#34;\\tRows: {table.RowCount} Columns: {table.ColumnCount}\u0026#34;); } } How to get the update NuGet – Upgrade to the latest GroupDocs.Parser package via NuGet:\nNuGet\\Install-Package GroupDocs.Parser -Version 26.4.0 NuGet\\Install-Package GroupDocs.Parser.NETFramework -Version 26.4.0 Direct Download – Download the assemblies for .NET from the GroupDocs.Parser for .NET 26.4 page on the GroupDocs releases site:\nhttps://releases.groupdocs.com/parser/net/new-releases/groupdocs.parser-for-.net-26.4-dlls-only/ https://releases.groupdocs.com/parser/net/new-releases/groupdocs.parser-for-.net--26.4/\nResources Full Release Notes Documentation GroupDocs.Parser Free Support Forum ","permalink":"https://blog.groupdocs.com/parser/groupdocs-parser-for-net-26-4/","summary":"GroupDocs.Parser for .NET 26.4 introduces table extraction from HTML files via the GetTables() method.","title":"GroupDocs.Parser for .NET 26.4 – April 2026 Release Highlights"},{"content":"\rThe thing that kept eating my Fridays Every Friday afternoon, for about a year, I had the same little ritual. A contract would come in as three files — the main agreement in Word, a pricing annex in Excel, and a partner\u0026rsquo;s terms sheet as a PDF — and I\u0026rsquo;d have to hand them off as one clean PDF. Nothing hard about it. Open Word, export to PDF. Open Excel, export to PDF. Open some free PDF-merger app, drag three files in, check the order, save.\nIt took maybe eight minutes. Multiply that by fifteen contracts a week and you\u0026rsquo;ve lost two hours to moving a mouse. Worse, every few weeks someone shipped a binder with the annex on page one because the filenames sorted alphabetically in the merger app.\nIf this sounds familiar, the rest of this post is the afternoon I finally replaced the ritual with code.\nThe real cost isn\u0026rsquo;t the time — it\u0026rsquo;s the one contract in fifty where the pages land in the wrong order and nobody notices until the client signs the wrong version.\nWhat I actually wanted Not \u0026ldquo;a fancy document pipeline.\u0026rdquo; Just three things:\nGive a method a list of files (any mix of DOCX, XLSX, PDF) and get one PDF back. Point the same logic at a folder and let it figure out the file list on its own. Pull out a page range from the finished binder without redoing the whole merge. That\u0026rsquo;s the whole job. If the library can\u0026rsquo;t do those three cleanly, I don\u0026rsquo;t want to know about it.\nSetup .NET 6.0 or later GroupDocs.Merger for .NET 24.10+ (grab a temporary license so you don\u0026rsquo;t ship the eval watermark) A folder with whatever mix of documents you\u0026rsquo;d normally hand-merge dotnet add package GroupDocs.Merger That\u0026rsquo;s it for dependencies. No external converter, no headless Office install, no PDF-manipulation library on top.\nStep 1 — Let a folder be the input I always start here because it\u0026rsquo;s the realistic entry point. In practice, something else (an upload handler, an email-ingest job, a nightly dump from finance) lands a bunch of files in a directory, and my code has to deal with whatever it finds.\n// Pick up every supported file in the drop folder; the PDF wins // the tie-break for position 0 so the merger keeps the output // as a PDF regardless of how files are named. string[] extensions = { \u0026#34;.pdf\u0026#34;, \u0026#34;.docx\u0026#34;, \u0026#34;.xlsx\u0026#34; }; var files = Directory.EnumerateFiles(folderPath) .Where(f =\u0026gt; extensions.Contains(Path.GetExtension(f).ToLowerInvariant())) .OrderBy(f =\u0026gt; Path.GetExtension(f).ToLowerInvariant() == \u0026#34;.pdf\u0026#34; ? 0 : 1) .ThenBy(f =\u0026gt; f) .ToArray(); if (files.Length == 0) throw new InvalidOperationException( $\u0026#34;No supported documents found in \u0026#39;{folderPath}\u0026#39;.\u0026#34;); The OrderBy trick is the interesting bit. GroupDocs.Merger picks its output format from whichever file you open first — if I hand it a DOCX as the primary document, I get a DOCX out. Since my pipeline always wants a PDF out, I make sure any existing PDF in the folder gets position 0.\nTwo things worth mentioning:\nToLowerInvariant() because a partner will one day send you REPORT.PDF and your lowercase-only filter will silently drop it. The ThenBy(f) is there only to make the output deterministic. Without it, two runs on the same folder can differ by filesystem mood. Step 2 — The merge itself Once I have an ordered list of paths, the merge is shorter than the description of the merge.\nConsole.WriteLine($\u0026#34;Primary source: {sourcePaths[0]}\u0026#34;); using var merger = new Merger(sourcePaths[0]); var joinOptions = new JoinOptions(); for (int i = 1; i \u0026lt; sourcePaths.Length; i++) { Console.WriteLine($\u0026#34;Joining: {sourcePaths[i]}\u0026#34;); merger.Join(sourcePaths[i], joinOptions); } merger.Save(outputPath); Console.WriteLine($\u0026#34;Unified PDF binder saved to: {Path.GetFullPath(outputPath)}\u0026#34;); A few notes from using this in anger:\nThe using matters. Merger holds file handles on the sources; forget to dispose it and your drop-folder worker will eventually fail to delete its own inputs. JoinOptions is empty here because the defaults are what I want 95% of the time. When you do need it, that\u0026rsquo;s where page ranges, rotation, and insert positions live. When Excel goes into the binder, the sheet-to-page layout is decided by the source workbook\u0026rsquo;s print area. If your XLSX ends up on 38 pages and you wanted three, the fix is in the spreadsheet, not in JoinOptions. One sanity check I always add right after the save:\nusing var verify = new Merger(outputPath); Console.WriteLine($\u0026#34;Result pages: {verify.GetDocumentInfo().PageCount}\u0026#34;); Two seconds of code that has caught more \u0026ldquo;silently dropped annex\u0026rdquo; bugs than any test I\u0026rsquo;ve written.\nStep 3 — Extract a slice later The follow-up request I get every single time: \u0026ldquo;Can you just send me the cover page?\u0026rdquo; or \u0026ldquo;Client only wants the signatures.\u0026rdquo; Rebuilding the whole binder to hand over two pages is silly — extract does it directly.\nusing var merger = new Merger(binderPath); merger.ExtractPages(new ExtractOptions(pages)); merger.Save(outputPath); Console.WriteLine($\u0026#34;Extracted pages [{string.Join(\u0026#34;,\u0026#34;, pages)}] to \u0026#34; + Path.GetFullPath(outputPath)); pages is a int[] of 1-based page numbers you want to keep. Everything else gets dropped. It\u0026rsquo;s fast because the result is already a PDF — no conversion round-trip.\nBefore vs. after, honestly What I used to do With Merger.Join Per-contract time 5–10 minutes of clicking under 30 seconds end-to-end Typical failure Pages in the wrong order, nobody notices Whatever order the file list says, repeatably Scaling to 100/day Doesn\u0026rsquo;t — you hire a person One worker, bored most of the time Code you maintain A Confluence page titled \u0026ldquo;Binder Process v4\u0026rdquo; One class, ~70 lines Output Three PDFs and a prayer One binder, with page count you can log The row I care about most is the \u0026ldquo;failure\u0026rdquo; one. Manual merging fails silently; code that logs a page count fails loudly.\nA real story from a tiny legal-tech team A two-person startup I worked with had a paralegal whose morning started with contract assembly. Word agreement, Excel pricing, PDF addendum, stitched in an app, uploaded to DocuSign. About eight minutes a package, which at 30 packages a day was basically her whole morning.\nThey dropped the folder-scan method into the backend service that was already watching their intake email. Twenty seconds per package, plus a log line with the page count. The paralegal moved to reviewing contracts instead of assembling them. Nobody shipped a misordered binder again — not because the library is magic, but because the file list is explicit in the code and you can diff it.\nstring folder = @\u0026#34;C:\\IncomingContracts\u0026#34;; string output = @\u0026#34;C:\\Processed\\ContractPackage.pdf\u0026#34;; var files = CreatePdfBinderFromFolder(folder, output); Console.WriteLine($\u0026#34;Package created: {files}\u0026#34;); That\u0026rsquo;s the whole integration. Everything upstream (the email listener, the storage path) was already in place.\nStuff I didn\u0026rsquo;t need today but will tomorrow The same library does a pile of things I didn\u0026rsquo;t cover because the article would drag. In roughly the order I\u0026rsquo;ve reached for them:\nWatermarks on the output for \u0026ldquo;DRAFT\u0026rdquo; stamps on pre-signature copies. Page rotation for scans that come in sideways. Custom page ordering when the source order isn\u0026rsquo;t the delivery order. PDF encryption for anything going to an external counterparty. All of that lives behind the same Merger API. The docs have the full list — I just wanted to point out that \u0026ldquo;merge\u0026rdquo; is the cheap starter and the rest is available when you need it.\nWhat I\u0026rsquo;d tell past-me If you\u0026rsquo;re about to write your own DOCX-to-PDF step because \u0026ldquo;it\u0026rsquo;s just one method,\u0026rdquo; stop. The conversion is the part that quietly rots — new Office features, scanned-image handling, embedded fonts, the lot. Let something else own that surface, and spend your Friday afternoon on something that isn\u0026rsquo;t filename sorting.\nWhere to go next:\nTemporary license — required for watermark-free output Advanced merging options — JoinOptions, save options, compression Supported formats — well past the three I showed here Sample projects on GitHub — including this one Useful links GroupDocs.Merger Documentation API Reference Free Trial License Sample Projects Community Forum ","permalink":"https://blog.groupdocs.com/groupdocs.merger/pdf-binder-merge-documents-net/","summary":"How I replaced a 10-minute manual document-merging ritual with a dozen lines of .NET. Folder scan, cross-format merge, and a page extractor — with copy-pasteable code.","title":"Stop Hand-Stitching Contracts: a PDF Binder in .NET with GroupDocs.Merger"},{"content":"This major 26.4 release introduces new capabilities for handling email messages and spreadsheets, adds several enhancements, and resolves a number of bugs across different document formats.\nWhat\u0026rsquo;s new in this release Key Category Summary VIEWERNET-5608 New feature Return mail message properties through specialized view info VIEWERNET-5640 New feature Add and implement support of HorizontalResolution and VerticalResolution for SpreadsheetOptions VIEWERNET-5605 Enhancement Add support of xml‑stylesheet processing instruction VIEWERNET-5624 Enhancement Improve CSS color parsing and serialization VIEWERNET-4748 Bug “Could not load file. File is corrupted or damaged.” error during call viewer.View for the DXF file. VIEWERNET-4760 Bug Fix bug with exception while loading specific DXF file to Viewer on Windows only VIEWERNET-5512 Bug Missing Chinese characters when rendering EML to PDF VIEWERNET-5529 Bug Bad performance for some pages when rendering PDF to HTML and PNG VIEWERNET-5571 Bug GroupDocsViewerException while rendering PPT and PPS to any format VIEWERNET-5579 Bug 5-digit row numbers overlap right sibling cells and AutoFit is not applied for long textual cells when rendering Spreadsheet to HTML VIEWERNET-5603 Bug Winding font is not preserving while converting XLS to HTML VIEWERNET-5609 Bug Exception during detection of raw URIs in mail message body VIEWERNET-5611 Bug Default font is not applied when detection and wrapping of raw URIs in mail message body is working VIEWERNET-5647 Bug Unable to cast object of type ‘Aspose.CAD.FileFormats.Ifc.IFC2X3.Entities.IfcFacetedBrep’ VIEWERNET-5377 Bug [UI] Viewer doesn’t load document with lot of 404s for /get-page calls VIEWERNET-5623 Bug [UI] Groupdocs viewer (8.1.3) - Problems with print loader popup Public API changes Added\nOptions.SpreadsheetOptions.HorizontalResolution property of Int32 type (VIEWERNET-5640) Options.SpreadsheetOptions.VerticalResolution property of Int32 type (VIEWERNET-5640) MailMessageViewInfo class with all its properties (VIEWERNET-5608) Removed\nNone\nNew features VIEWERNET-5640 Now it is possible to specify a horizontal and vertical resolution in DPI unit when rendering the input Spreadsheet documents to the raster formats (PNG and JPEG). This is done with the new public properties HorizontalResolution and VerticalResolution in the SpreadsheetOptions class. Both properties default to 96 DPI and can be set within the range [72..600] DPI.\nVIEWERNET-5608 A new class MailMessageViewInfo was added in the GroupDocs.Viewer.Results namespace. This class implements and extends its parent class ViewInfo and is returned by the method Viewer.GetViewInfo() when the loaded file is an email message.\nHow to get the update NuGet Upgrade to the latest GroupDocs.Viewer package via the NuGet Package Manager or the .NET CLI:\ndotnet add package GroupDocs.Viewer --version 26.4 (Select the appropriate package for your target platform.)\nDirect download GroupDocs.Viewer for .NET 26.4 MSI package GroupDocs.Viewer for .NET 26.4 ZIP package (DLLs only) GroupDocs.Viewer for .NET Cross-Platform 26.4 ZIP package (DLLs only) Resources SpreadsheetOptions – HorizontalResolution SpreadsheetOptions – VerticalResolution MailMessageViewInfo class ViewInfo base class Viewer.GetViewInfo() method ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-net-26-4/","summary":"GroupDocs.Viewer for .NET 26.4 is here.","title":"GroupDocs.Viewer for .NET 26.4 – April 2026 Release Highlights"},{"content":"1. Introduction GroupDocs.Viewer for .NET library lets you import the email message in any popular format, render it to the HTML, PNG, JPEG, and PDF, and also extract basic email message properties without actual rendering.\nActually, when working with email messages in GroupDocs.Viewer, users should be aware about two email-specific types:\nOptions.EmailOptions class – lets you control how the message is rendered (page size, date format, fields, etc.). Results.MailMessageViewInfo class — is produced by GroupDocs.Viewer after calling a GetViewInfo() method and holds the metadata about the loaded email message. Below is a very quick guide that shows how to render email messages and get their metadata.\n2. Load an email message and render it to all output formats Very shord code example below shows loading an input email message \u0026ldquo;sample.eml\u0026rdquo; to the instance of the Viewer class and then rendering it to all 4 supported output formats: HTML, PDF, PNG, and JPEG. As you can see, at the beginning all 4 view option classes are instantiated, then \u0026ldquo;sample.eml\u0026rdquo; is loaded to the Viewer instance by its file path, and then 4 Viewer.View() calls are made.\nusing GroupDocs.Viewer; using GroupDocs.Viewer.Options; HtmlViewOptions htmlOptions = HtmlViewOptions.ForEmbeddedResources(\u0026#34;html-page{0}.html\u0026#34;); PdfViewOptions pdfOptions = new PdfViewOptions(\u0026#34;Output.pdf\u0026#34;); PngViewOptions pngOptions = new PngViewOptions(\u0026#34;image-page{0}.png\u0026#34;); JpgViewOptions jpegOptions = new JpgViewOptions(\u0026#34;image-page{0}.jpeg\u0026#34;); using (Viewer viewer = new Viewer(\u0026#34;sample.eml\u0026#34;)) { viewer.View(htmlOptions); viewer.View(pdfOptions); viewer.View(pngOptions); viewer.View(jpegOptions); } 3. Tuning email options for rendering Example above shows rendering with all options are set to their default values. However, there is an EmailOptions class, and it is available in all 4 view options (HtmlViewOptions, PdfViewOptions, PngViewOptions, JpgViewOptions) through the EmailOptions property. There is no need to manually create an insatnce of the EmailOptions class and assign it to the view options through the EmailOptions property — all this is already done, user just needs to adjust the property values if needed.\nThere are several properties in the EmailOptions class, explained below.\n3.1. Page size Enum PageSize controls the size of the output page. By default is Unspecified — the GroupDocs.Viewer adjusts the size to the most appropriate. Can be set in the next way, for example:\nPdfViewOptions pdfOptions = new PdfViewOptions(\u0026#34;Output.pdf\u0026#34;); pdfOptions.EmailOptions.PageSize = PageSize.A1; 3.2. Date and time format and time zone Email messages usually have a \u0026ldquo;Sent\u0026rdquo; date. The DateTimeFormat property allows to control how this datetime value will be formatted, and TimeZoneOffset allows to apply a positive or negative shift to this datetime. Example below:\nJpgViewOptions jpegOptions = new JpgViewOptions(\u0026#34;image-page{0}.jpeg\u0026#34;); jpegOptions.EmailOptions.DateTimeFormat = \u0026#34;MM d yyyy HH:mm tt zzz\u0026#34;; // completely custom format jpegOptions.EmailOptions.TimeZoneOffset = TimeSpan.FromHours(-5); // Add shift to 5 hours earlier If you leave DateTimeFormat null or empty string, then GroupDocs.Viewer uses the system’s current format.\n3.3. Adjusting fields Mail message contains message body and fields like subject, sent datetime, sender etc. GroupDocs.Viewer allows users to override the labels of these fields through the FieldTextMap property, which maps a Field enum value (e.g., Field.Subject) to the text that appears in the rendered output through the Dictionary. So the user can replace any entry or add new ones:\nPngViewOptions pngOptions = new PngViewOptions(\u0026#34;image-page{0}.png\u0026#34;); pngOptions.EmailOptions.FieldTextMap[Field.Subject] = \u0026#34;Email Subject\u0026#34;; pngOptions.EmailOptions.FieldTextMap[Field.Sent] = \u0026#34;Mail was sent at\u0026#34;; pngOptions.EmailOptions.FieldTextMap[Field.From] = \u0026#34;Sender\u0026#34;; 4. Load an email and get its view information It is possible to get some of the field values of the email message programmatically without rendering the email message itself. For doing that user should load the email message document to the Viewer instance and then use the Viewer.GetViewInfo() instance method, as shown below:\nusing System; using GroupDocs.Viewer; using GroupDocs.Viewer.Options; using GroupDocs.Viewer.Results; // ... using (Viewer viewer = new Viewer(\u0026#34;sample.eml\u0026#34;)) { ViewInfo generalInfo = viewer.GetViewInfo(ViewInfoOptions.ForHtmlView()); // explicit casting MailMessageViewInfo mailMessageInfo = (MailMessageViewInfo)generalInfo; Console.WriteLine(\u0026#34;From: {0}; Subject: {1}; Sent: {2}.\u0026#34;, mailMessageInfo.From, mailMessageInfo.Subject, mailMessageInfo.Sent); // Render to any output format if needed viewer.View(HtmlViewOptions.ForEmbeddedResources()); } It can be seen that Viewer.GetViewInfo() method returns an instance of the common ViewInfo class, which then is casted to the MailMessageViewInfo class. For now only the From, Subject, and Sent fields are supported.\nProperty Type Meaning Sent DateTime The exact time the email was sent. Subject string The text that appears in the email’s subject line. From string The sender’s email address as a plain string. All three properties are read-only.\n5. Summary Create a Viewer instance and specify the input email message file to its constructor by path or stream. Call the Viewer.GetViewInfo() method and then cast its result to the MailMessageViewInfo type to get metadata: Sent, Subject, and From fields. Use EmailOptions to change page size, date format, time-zone offset, or the text label shown for any field, then call the Viewer.View() method. These steps give you the core email properties and let you control how the message appears when rendered. No extra libraries or complex code are required.\nSee Also Render email messages as HTML, PDF, PNG, and JPEG files Get a free trial You can download a free trial version of GroupDocs.Viewer for .NET from releases.groupdocs.com. You can also acquire a temporary license to try all features and functionalities without restrictions from here.\n","permalink":"https://blog.groupdocs.com/viewer/rendering-email-messages/","summary":"This article covers all main topics and features, related to the rendering email messages and obtaining email message properties in GroupDocs.Viewer for .NET.","title":"Rendering email messages and obtaining email properties in GroupDocs.Viewer for .NET"},{"content":"We’re pleased to announce the release of GroupDocs.Markdown for .NET 26.3, available as of March 2026. This major update introduces a redesigned public API, a custom DOM‑based Markdown renderer, full Markdown flavor control, async support, and a range of bug fixes. It also adds per‑TFM runtime NuGet packages and support for .NET 8 and .NET 10.\nWhat’s new in this release Key Category Summary MARKDOWNNET-33 Feature Split NuGet package into per-TFM runtime packages MARKDOWNNET-31 Feature Add support for .NET 8 and .NET 10 MARKDOWNNET-30 Feature Custom DOM-based Markdown renderer MARKDOWNNET-29 Feature Conversion warnings and unified error model MARKDOWNNET-28 Feature Relative image paths and image replacement MARKDOWNNET-27 Feature Heading level offset and YAML front matter generation MARKDOWNNET-26 Feature Markdown flavor control and spreadsheet rendering options MARKDOWNNET-25 Feature Document inspection without conversion MARKDOWNNET-24 Feature Async API MARKDOWNNET-23 Feature Static convenience methods and format discovery MARKDOWNNET-20 Enhancement Review and redesign the API MARKDOWNNET-8 Feature Support for replacing images during conversion to Markdown MARKDOWNNET-35 Bug Fix Quality and functional issues Public API changes New public types DocumentInfo — document metadata (format, page count, title, author, encryption status) MarkdownFlavor — enum for target Markdown dialect (GitHub, CommonMark) IImageSavingHandler — interface for custom image saving callbacks IUriSavingHandler — interface for custom URI saving callbacks GroupDocsMarkdownException — general conversion exception InvalidFormatException — corrupt or unrecognized file format DocumentProtectedException — wrong or missing password New static methods on MarkdownConverter ToMarkdown(string sourcePath) and overloads with LoadOptions/ConvertOptions ToFile(string sourcePath, string outputPath) and overloads GetInfo(string sourcePath) and overloads GetSupportedFormats() Async variants: ToMarkdownAsync, ToFileAsync, GetInfoAsync New instance methods on MarkdownConverter GetDocumentInfo() ConvertAsync() and overloads New properties on ConvertOptions ImageExportStrategy (replaces ExportStrategy) UriExportStrategy HeadingLevelOffset IncludeFrontMatter Flavor MaxColumns, MaxRows, SheetSeparator, IncludeHiddenSheets New properties on ConvertResult Warnings — non‑fatal conversion warnings New properties on ExportImagesToFileSystemStrategy and CustomImagesStrategy ImagesRelativePath — controls the path written in Markdown image references New methods on CustomImageSavingArgs SetReplacementImage(Stream imageStream) — substitute image content Removed types IExportStrategy — replaced by IImageExportStrategy and IUriExportStrategy DocumentConverterOptions — renamed to ConvertOptions DocumentConverterResult — renamed to ConvertResult Breaking changes Renamed Types Before After DocumentConverterOptions ConvertOptions DocumentConverterResult ConvertResult FileFormat Enum Family‑level values (FileFormat.WordProcessing, FileFormat.Spreadsheet) are replaced with specific formats (FileFormat.Docx, FileFormat.Xlsx, etc.). New entries: FileFormat.Txt, FileFormat.Chm.\nConvertOptions and LoadOptions separated ConvertOptions no longer inherits LoadOptions. Password and format hints go on LoadOptions:\nvar loadOptions = new LoadOptions(FileFormat.Docx) { Password = \u0026#34;secret\u0026#34; }; var convertOptions = new ConvertOptions { HeadingLevelOffset = 1 }; using var converter = new MarkdownConverter(\u0026#34;file.docx\u0026#34;, loadOptions); var result = converter.Convert(convertOptions); Image and URI strategies split Single ExportStrategy property replaced with two typed properties:\nvar options = new ConvertOptions { ImageExportStrategy = new ExportImagesToFileSystemStrategy(\u0026#34;images\u0026#34;), UriExportStrategy = new CustomUriExportStrategy(handler) }; Delegates replaced with interfaces CustomImagesStrategy and CustomUriExportStrategy now accept IImageSavingHandler and IUriSavingHandler interfaces instead of delegate callbacks.\nLoadOptions.Extension and LoadOptions.MimeType are internal Use new LoadOptions(FileFormat.Docx) instead of setting Extension or MimeType directly.\nNew features Custom DOM‑Based Markdown Renderer The library no longer delegates Markdown generation to a third‑party export. A custom renderer walks the document object model node by node and produces Markdown directly, providing full control over every aspect of the output.\nWord/PDF/Ebook/Text/CHM documents are rendered with support for paragraphs, headings (H1‑H6), bold, italic, strikethrough, inline code, ordered and unordered lists with nesting, tables (GFM pipe syntax or CommonMark code block fallback), hyperlinks, and images.\nSpreadsheets are rendered with cell‑by‑cell grid traversal, typed value formatting, worksheet sections, column/row truncation with ellipsis indicators, hidden sheet filtering, and custom sheet separators.\nStatic Convenience Methods One‑liner conversion methods that handle resource management automatically:\nstring md = MarkdownConverter.ToMarkdown(\u0026#34;report.docx\u0026#34;); MarkdownConverter.ToFile(\u0026#34;report.docx\u0026#34;, \u0026#34;report.md\u0026#34;); IReadOnlyList\u0026lt;FileFormat\u0026gt; formats = MarkdownConverter.GetSupportedFormats(); Async API Async counterparts for all static and instance methods with CancellationToken support:\nstring md = await MarkdownConverter.ToMarkdownAsync(\u0026#34;report.docx\u0026#34;); await MarkdownConverter.ToFileAsync(\u0026#34;large.pdf\u0026#34;, \u0026#34;output.md\u0026#34;); DocumentInfo info = await MarkdownConverter.GetInfoAsync(\u0026#34;report.docx\u0026#34;); Document Inspection Without Conversion Retrieve document metadata without performing a full conversion:\nDocumentInfo info = MarkdownConverter.GetInfo(\u0026#34;report.docx\u0026#34;); Console.WriteLine($\u0026#34;{info.FileFormat}, {info.PageCount} pages, by {info.Author}\u0026#34;); Markdown Flavor Control Target a specific Markdown dialect:\nvar options = new ConvertOptions { Flavor = MarkdownFlavor.GitHub }; // pipe tables, strikethrough var options = new ConvertOptions { Flavor = MarkdownFlavor.CommonMark }; // tables as code blocks Spreadsheet Rendering Options Full control over how spreadsheets are rendered to Markdown:\nvar options = new ConvertOptions { MaxColumns = 8, MaxRows = 50, SheetSeparator = \u0026#34;\\n---\\n\u0026#34;, IncludeHiddenSheets = false }; Heading Level Offset and YAML Front Matter var options = new ConvertOptions { HeadingLevelOffset = 2, // # Title -\u0026gt; ### Title IncludeFrontMatter = true // prepend YAML metadata }; Conversion Warnings and Unified Error Model All Convert() methods now throw on failure. ConvertResult carries non‑fatal warnings:\nConvertResult result = converter.Convert(); foreach (string w in result.Warnings) Console.WriteLine(w); // e.g. \u0026#34;Worksheet \u0026#39;Data\u0026#39; truncated at 50 rows.\u0026#34; Image Replacement and Relative Paths Replace images during conversion and control path references:\nvar strategy = new ExportImagesToFileSystemStrategy(\u0026#34;c:/output/images\u0026#34;) { ImagesRelativePath = \u0026#34;images\u0026#34; // ![](images/img-001.png) }; Table of Contents Rendering Documents with Table of Contents are rendered as clean lists instead of raw field codes:\n- Introduction - 1. Executive Summary - 2. Company Overview Code example string md = MarkdownConverter.ToMarkdown(\u0026#34;report.docx\u0026#34;); MarkdownConverter.ToFile(\u0026#34;report.docx\u0026#34;, \u0026#34;report.md\u0026#34;); IReadOnlyList\u0026lt;FileFormat\u0026gt; formats = MarkdownConverter.GetSupportedFormats(); How to get the update NuGet Upgrade to the latest GroupDocs.Markdown package via NuGet (e.g., Install-Package GroupDocs.Markdown).\nResources License Free Support Forum ","permalink":"https://blog.groupdocs.com/markdown/groupdocs-markdown-for-net-26-3/","summary":"GroupDocs.Markdown for .NET 26.3 brings a redesigned API, custom DOM-based Markdown renderer, full Markdown flavor control, async support, and per-TFM NuGet packages for .NET 8 and .NET 10.","title":"GroupDocs.Markdown for .NET 26.3 – March 2026 Release Highlights"},{"content":"The Old Way Was Painful Imagine a compliance officer tasked with verifying that every contract in a shared drive carries the word \u0026ldquo;CONFIDENTIAL\u0026rdquo; and the company logo on each page. The current process looks like this:\nOpen a file in a viewer. Flip through each page looking for the phrase or image. Jot notes in a spreadsheet. Repeat for thousands of PDFs, Word files, and presentations. A single missed watermark can trigger a costly review, and the manual effort easily exceeds 8 hours per week for a small team. Moreover, rotating text, split words, or logos saved as images often escape the human eye, leaving the organization exposed.\nThere\u0026rsquo;s a Better Way GroupDocs.Watermark for .NET removes every guesswork step. Its format‑agnostic engine can read more than 100 document types, locate text, image and even styled watermarks, and expose all relevant metadata through a clean API. The following tutorial shows how a few concise snippets replace the manual loop with an automated, repeatable workflow.\nPrerequisites .NET 6.0 or later. GroupDocs.Watermark NuGet package (dotnet add package GroupDocs.Watermark). (Optional) a temporary license – see the link at the end of this article. The New Way: Automated Watermark Audit Below we walk through four core operations. Each block is a self‑contained example that you can drop into a console app, a CI step, or a background service.\nStep 1 – Scan Every Watermark First we need a full inventory. The Search() method returns a collection where each entry contains text (or image), location, rotation, page number and raw image size.\nusing (var wk = new Watermarker(filePath)) { var all = wk.Search(); Console.WriteLine($\u0026#34;Found {all.Count} watermark(s) in \u0026#34; + $\u0026#34;\u0026#39;{Path.GetFileName(filePath)}\u0026#39;:\u0026#34;); int i = 0; foreach (var wm in all) { Console.WriteLine($\u0026#34; #{++i}: {(wm.Text ?? \u0026#34;[image]\u0026#34;)} \u0026#34;); Console.WriteLine($\u0026#34; Page {wm.PageNumber}, \u0026#34; + $\u0026#34;Pos X={wm.X}, Y={wm.Y}, Rot={wm.RotateAngle}°\u0026#34;); Console.WriteLine($\u0026#34; Size {wm.Width}×{wm.Height}\u0026#34;); if (wm.ImageData != null) Console.WriteLine($\u0026#34; Image bytes {wm.ImageData.Length}\u0026#34;); } } Key point: The loop runs in under a second for a typical 50‑page PDF.\nStep 2 – Verify Required Text Watermark Compliance policies often demand a specific phrase (e.g., \u0026ldquo;CONFIDENTIAL\u0026rdquo;). The TextSearchCriteria with SkipUnreadableCharacters handles split or rotated text automatically.\nusing (var wk = new Watermarker(filePath)) { var crit = new TextSearchCriteria(expectedPhrase); crit.SkipUnreadableCharacters = true; // ignore OCR artefacts var hits = wk.Search(crit); bool ok = hits.Count \u0026gt; 0; Console.WriteLine($\u0026#34; [{(ok ? \u0026#34;PASS\u0026#34; : \u0026#34;FAIL\u0026#34;)}] \u0026#34; + $\u0026#34;\u0026#39;{expectedPhrase}\u0026#39; found {hits.Count} time(s)\u0026#34;); return ok; } The method returns true when the phrase appears at least once, giving you an instant PASS/FAIL flag.\nStep 3 – Verify Company Logo Logos survive as raster images, and their appearance may vary slightly due to compression. ImageDctHashSearchCriteria creates a perceptual hash of the reference logo and matches it with a configurable tolerance.\nusing (var wk = new Watermarker(filePath)) { var crit = new ImageDctHashSearchCriteria(logoPath); crit.MaxDifference = 0.9; // tolerate moderate scaling / colour shift var matches = wk.Search(crit); bool ok = matches.Count \u0026gt; 0; Console.WriteLine($\u0026#34; [{(ok ? \u0026#34;PASS\u0026#34; : \u0026#34;FAIL\u0026#34;)}] \u0026#34; + $\u0026#34;logo instances: {matches.Count}\u0026#34;); return ok; } Even a low‑resolution copy of the logo will be recognized.\nStep 4 – Run a Full Compliance Report Real-world policies combine several requirements. The first block checks four formatting rules — text presence, font, size, and bold style — each combining TextSearchCriteria with TextFormattingSearchCriteria via .And():\nusing (var wk = new Watermarker(filePath)) { int passed = 0, failed = 0; var txtCrit = new TextSearchCriteria(expectedPhrase); bool hasText = wk.Search(txtCrit).Count \u0026gt; 0; Console.WriteLine($\u0026#34; [{(hasText ? \u0026#34;PASS\u0026#34; : \u0026#34;FAIL\u0026#34;)}] Text present\u0026#34;); if (hasText) passed++; else failed++; var fontCrit = new TextFormattingSearchCriteria { FontName = expFont }; bool hasFont = wk.Search(txtCrit.And(fontCrit)).Count \u0026gt; 0; Console.WriteLine($\u0026#34; [{(hasFont ? \u0026#34;PASS\u0026#34; : \u0026#34;FAIL\u0026#34;)}] Font {expFont}\u0026#34;); if (hasFont) passed++; else failed++; var sizeCrit = new TextFormattingSearchCriteria { MinFontSize = minSize }; bool hasSize = wk.Search(txtCrit.And(sizeCrit)).Count \u0026gt; 0; Console.WriteLine($\u0026#34; [{(hasSize ? \u0026#34;PASS\u0026#34; : \u0026#34;FAIL\u0026#34;)}] Size \u0026gt;= {minSize}\u0026#34;); if (hasSize) passed++; else failed++; var boldCrit = new TextFormattingSearchCriteria { FontBold = true }; bool hasBold = wk.Search(txtCrit.And(boldCrit)).Count \u0026gt; 0; Console.WriteLine($\u0026#34; [{(hasBold ? \u0026#34;PASS\u0026#34; : \u0026#34;FAIL\u0026#34;)}] Bold formatting\u0026#34;); if (hasBold) passed++; else failed++; The fifth rule verifies page coverage — the watermark must appear on every page. Finally, the verdict aggregates all results:\nvar perPage = wk.Search(txtCrit); var pages = new HashSet\u0026lt;int\u0026gt;(); foreach (var wm in perPage) if (wm.PageNumber.HasValue) pages.Add(wm.PageNumber.Value); var allPages = wk.Search(); int max = 0; foreach (var wm in allPages) max = Math.Max(max, wm.PageNumber ?? 0); bool full = max \u0026gt; 0 \u0026amp;\u0026amp; pages.Count == max; Console.WriteLine($\u0026#34; [{(full ? \u0026#34;PASS\u0026#34; : \u0026#34;FAIL\u0026#34;)}] \u0026#34; + $\u0026#34;Pages covered {pages.Count}/{max}\u0026#34;); if (full) passed++; else failed++; string verdict = failed == 0 ? \u0026#34;COMPLIANT\u0026#34; : \u0026#34;NON-COMPLIANT\u0026#34;; Console.WriteLine($\u0026#34;\\nResult: {verdict} \u0026#34; + $\u0026#34;({passed} passed, {failed} failed)\u0026#34;); } The report is ready to be exported as JSON, CSV or fed directly into a ticketing system.\nSide‑by‑Side: Before vs. After Manual Review Automated Audit Time Hours per batch Seconds per file Accuracy Human error prone Deterministic API Scalability Limited to a few documents Handles thousands Code required None (but labor intensive) ~30 lines of C# Output Visual inspection only Structured PASS/FAIL report The contrast is striking: what used to occupy a full workday now runs as a background job.\nReal‑World Example: Legal Contract Library A law firm stores 15 000 contracts in a shared folder. Their policy requires the phrase \u0026ldquo;CONFIDENTIAL – CLIENT XYZ\u0026rdquo; and the firm’s seal on every page. By integrating the snippets above into a nightly PowerShell script, the firm achieved:\n100 % detection of missing marks (previously 8 % slipped through). Zero manual hours spent on the audit. An audit trail saved to an internal SharePoint list for future regulatory reviews. // Example of the nightly job entry point var folder = @\u0026#34;\\\\fileserver\\Contracts\u0026#34;; foreach (var pdf in Directory.GetFiles(folder, \u0026#34;*.pdf\u0026#34;, SearchOption.AllDirectories)) { // reuse the methods from steps 1‑4 ScanAll(pdf); VerifyText(pdf, \u0026#34;CONFIDENTIAL – CLIENT XYZ\u0026#34;); VerifyLogo(pdf, @\u0026#34;C:\\Logos\\firm-seal.png\u0026#34;); RunReport(pdf); } The script runs unattended and emails a summary each morning.\nWhat Else Can You Do with GroupDocs.Watermark? Beyond auditing, the sample project shows how to replace and remove watermarks programmatically. The screenshots below demonstrate both operations on a real PDF:\nOther scenarios you can build with the same API:\nAdd invisible tracking watermarks that embed a unique ID for leak tracing. Bulk replace outdated logos across an entire archive. Generate PDF‑ready compliance certificates after a successful audit. Integrate with Azure Functions or AWS Lambda for serverless processing. Each scenario uses the same core API – just swap the search criteria or the watermark type.\nConclusion What once required a team to flip through pages, write notes, and risk missed marks is now a few seconds of code that produces an auditable PASS/FAIL report. With GroupDocs.Watermark for .NET you gain:\nFull visibility of every watermark. Reliable detection of text, styled text and logos. Automatic compliance reporting. The ability to update or remove watermarks programmatically. Give it a try and transform your watermark compliance process from a headache into a repeatable service.\nNext Steps Try the free API trial – get a temporary license here: Temp License Read the full documentation for advanced options: Docs Explore the .NET API reference for all classes and methods: API Reference Clone the sample project on GitHub to see a complete console app: GitHub Samples Ask questions or share your use case on the community forum: Forum ","permalink":"https://blog.groupdocs.com/watermark/audit-automation/net/","summary":"Discover a zero‑touch approach to watermark compliance. The guide covers scanning every mark, confirming required text and logo, generating a rule‑based report, and updating outdated watermarks – all with a few lines of C# code.","title":"Stop Manual Watermark Audits — Automate Compliance Checks in .NET with GroupDocs.Watermark"},{"content":"Introduction Enterprises often need to brand or protect thousands of files – contracts, presentations, invoices – in a single operation. Doing this manually means opening each document, inserting a logo or confidentiality notice, and saving it again. Not only is the process time‑consuming, it introduces human error and leaves the risk of duplicate watermarks or missed files.\nGroupDocs.Watermark for .NET solves the problem with a unified API that works across PDF, DOCX, PPTX, XLSX and common image formats. The sample project ships with four document types (DOCX, PDF, XLSX, PPTX) so every pipeline mode runs against real‑world formats. In this tutorial we’ll walk through a complete batch watermark pipeline that:\nLoads a license (or falls back to evaluation mode). Scans a folder and filters only the formats the library can handle. Applies a tiled text watermark to every document. Applies a tiled logo watermark with custom opacity and rotation. Adds a watermark only when it isn’t already present (idempotent processing). Finds and replaces an outdated company logo with a new one. By the end you’ll have a ready‑to‑run solution that can be dropped into any .NET project.\nWhy Batch Watermarking Matters Scalability – Process dozens or thousands of files with a single loop. Consistency – The same visual style is applied to every document, eliminating brand drift. Safety – Idempotent logic prevents duplicate watermarks when the pipeline is re‑run. Future‑proofing – Logo‑replacement code lets you roll out a re‑brand without touching each file manually. Prerequisites .NET 6.0 or later. GroupDocs.Watermark NuGet package (dotnet add package GroupDocs.Watermark). A license file (temporary or permanent). The examples work in evaluation mode if the file is missing. Two folders on disk: InputFolder – contains the source documents. OutputFolder – where watermarked copies will be written. Step 1 – Load the License The library requires a license to run without evaluation limits. The snippet below tries to load a license file and falls back silently if the file is not found.\ntry { var license = new License(); license.SetLicense(LicensePath); Console.WriteLine(\u0026#34;License applied successfully.\u0026#34;); } catch { Console.WriteLine(\u0026#34;Warning: License not found. Running in evaluation mode.\u0026#34;); } Key point: The LicensePath variable should point to your .lic file. If the file is missing the code continues, which is helpful for quick testing.\nStep 2 – Discover Supported Files GroupDocs.Watermark can only process a specific set of extensions. The helper below scans a folder, builds a hash set of supported extensions via FileType.GetSupportedFileTypes(), and returns only the files that match.\nif (!Directory.Exists(folderPath)) { Console.WriteLine($\u0026#34;Folder not found: {folderPath}\u0026#34;); return new List\u0026lt;string\u0026gt;(); } var supportedExtensions = FileType.GetSupportedFileTypes() .Select(ft =\u0026gt; ft.Extension.ToLowerInvariant()) .ToHashSet(); var supportedFiles = Directory.GetFiles(folderPath, \u0026#34;*.*\u0026#34;, SearchOption.AllDirectories) .Where(f =\u0026gt; supportedExtensions.Contains(Path.GetExtension(f).ToLowerInvariant())) .ToList(); Console.WriteLine($\u0026#34;Found {supportedFiles.Count} supported file(s) in \u0026#39;{folderPath}\u0026#39;.\u0026#34;); return supportedFiles; Key point: The method guarantees that the later watermarking loops never encounter an unsupported format, which would otherwise throw a runtime exception.\nStep 3 – Apply a Tiled Text Watermark The following code creates a red, semi‑transparent \u0026ldquo;CONFIDENTIAL\u0026rdquo; watermark, rotates it ‑30°, and tiles it across every page using TileOptions.\nDirectory.CreateDirectory(outputFolder); int processed = 0, failed = 0; foreach (var filePath in files) { try { using var watermarker = new Watermarker(filePath); var watermark = new TextWatermark(watermarkText, new Font(\u0026#34;Arial\u0026#34;, 19, FontStyle.Bold)) { ForegroundColor = Color.Red, Opacity = 0.3, RotateAngle = -30, TileOptions = new TileOptions { LineSpacing = new MeasureValue { MeasureType = TileMeasureType.Percent, Value = 12 }, WatermarkSpacing = new MeasureValue { MeasureType = TileMeasureType.Percent, Value = 10 } } }; watermarker.Add(watermark); var outPath = Path.Combine(outputFolder, Path.GetFileName(filePath)); watermarker.Save(outPath); processed++; Console.WriteLine($\u0026#34;[OK] {Path.GetFileName(filePath)}\u0026#34;); } catch (Exception ex) { failed++; Console.WriteLine($\u0026#34;[FAIL] {Path.GetFileName(filePath)}: {ex.Message}\u0026#34;); } } Console.WriteLine($\u0026#34;Text watermark: {processed} processed, {failed} failed\u0026#34;); Key points:\nTileOptions creates a brick‑like pattern, making the watermark hard to remove without affecting the underlying content. The same snippet works for PDFs, Word files, spreadsheets and images because Watermarker abstracts the format. Step 4 – Apply a Tiled Logo Watermark If you prefer a visual brand mark, replace the text watermark with an image. The code below checks that the logo file exists, then tiles it with 40 % opacity and a ‑30° rotation.\nif (!File.Exists(logoPath)) { Console.WriteLine($\u0026#34;Logo not found: {logoPath}. Skipping image mode.\u0026#34;); return; } Directory.CreateDirectory(outputFolder); int processed = 0, failed = 0; foreach (var filePath in files) { try { using var watermarker = new Watermarker(filePath); using var watermark = new ImageWatermark(logoPath) { Opacity = 0.4, RotateAngle = -30, TileOptions = new TileOptions { LineSpacing = new MeasureValue { MeasureType = TileMeasureType.Percent, Value = 15 }, WatermarkSpacing = new MeasureValue { MeasureType = TileMeasureType.Percent, Value = 12 } } }; watermarker.Add(watermark); var outPath = Path.Combine(outputFolder, Path.GetFileName(filePath)); watermarker.Save(outPath); processed++; Console.WriteLine($\u0026#34;[OK] {Path.GetFileName(filePath)} - logo applied\u0026#34;); } catch (Exception ex) { failed++; Console.WriteLine($\u0026#34;[FAIL] {Path.GetFileName(filePath)}: {ex.Message}\u0026#34;); } } Console.WriteLine($\u0026#34;Logo watermark: {processed} processed, {failed} failed\u0026#34;); Key points:\nThe same TileOptions logic used for text works for images, giving a consistent look across all pages. Opacity lets the underlying content remain readable while still displaying the brand. Step 5 – Idempotent Watermarking (Skip Existing Marks) Running the pipeline multiple times should not stack watermarks on top of each other. This snippet searches for an exact instance of the watermark text before adding a new one.\nDirectory.CreateDirectory(outputFolder); int applied = 0, skipped = 0, failed = 0; foreach (var filePath in files) { try { using var watermarker = new Watermarker(filePath); var criteria = new TextSearchCriteria(watermarkText, false); var existing = watermarker.Search(criteria); if (existing.Count \u0026gt; 0) { skipped++; Console.WriteLine($\u0026#34;[SKIP] {Path.GetFileName(filePath)} – already contains watermark\u0026#34;); continue; } var watermark = new TextWatermark(watermarkText, new Font(\u0026#34;Arial\u0026#34;, 19, FontStyle.Bold)) { ForegroundColor = Color.Red, Opacity = 0.3, RotateAngle = -30, TileOptions = new TileOptions { LineSpacing = new MeasureValue { MeasureType = TileMeasureType.Percent, Value = 12 }, WatermarkSpacing = new MeasureValue { MeasureType = TileMeasureType.Percent, Value = 10 } } }; watermarker.Add(watermark); var outPath = Path.Combine(outputFolder, Path.GetFileName(filePath)); watermarker.Save(outPath); applied++; Console.WriteLine($\u0026#34;[OK] {Path.GetFileName(filePath)} – watermark applied\u0026#34;); } catch (Exception ex) { failed++; Console.WriteLine($\u0026#34;[FAIL] {Path.GetFileName(filePath)}: {ex.Message}\u0026#34;); } } Console.WriteLine($\u0026#34;Smart batch: {applied} applied, {skipped} skipped, {failed} failed\u0026#34;); Key point: TextSearchCriteria with false for case‑sensitivity ensures we only skip documents that already contain the exact watermark we intend to add.\nStep 6 – Replace an Outdated Logo Across the Folder When a company re‑brands, you may need to swap every old logo with the new one. The code combines two image‑search strategies – DCT‑hash for precision and colour‑histogram for tolerance – then overwrites the image data of each match.\nif (!File.Exists(oldLogoPath) || !File.Exists(newLogoPath)) { Console.WriteLine(\u0026#34;Old or new logo file missing – aborting replacement.\u0026#34;); return; } Directory.CreateDirectory(outputFolder); byte[] newLogoData = File.ReadAllBytes(newLogoPath); int replaced = 0, notFound = 0; var settings = new WatermarkerSettings { SearchableObjects = new SearchableObjects { PdfSearchableObjects = PdfSearchableObjects.All } }; foreach (var filePath in files) { try { using var watermarker = new Watermarker(filePath, settings); var dct = new ImageDctHashSearchCriteria(oldLogoPath) { MaxDifference = 0.4 }; var hist = new ImageColorHistogramSearchCriteria(oldLogoPath) { MaxDifference = 0.5 }; var criteria = dct.Or(hist); var found = watermarker.Search(criteria); if (found.Count == 0) { notFound++; Console.WriteLine($\u0026#34;[--] {Path.GetFileName(filePath)} – old logo not found\u0026#34;); continue; } foreach (PossibleWatermark wm in found) { try { wm.ImageData = newLogoData; } catch { // Some watermark types cannot be overwritten – ignore. } } var outPath = Path.Combine(outputFolder, Path.GetFileName(filePath)); watermarker.Save(outPath); replaced++; Console.WriteLine($\u0026#34;[OK] {Path.GetFileName(filePath)} – {found.Count} logo(s) replaced\u0026#34;); } catch (Exception ex) { Console.WriteLine($\u0026#34;[FAIL] {Path.GetFileName(filePath)}: {ex.Message}\u0026#34;); } } Console.WriteLine($\u0026#34;Logo replacement: {replaced} updated, {notFound} without old logo\u0026#34;); Key points:\nWatermarkerSettings with PdfSearchableObjects.All enables the search to see logos that are stored as PDF artifacts. Combining DCT‑hash and colour‑histogram criteria catches both exact vector logos (Office) and rasterised versions (PDF). Best Practices \u0026amp; Tips Create the output folder once (Directory.CreateDirectory) – the method is idempotent and avoids race conditions. Log progress – the console output in each step makes it easy to see which files succeeded or failed. Tune Opacity and RotateAngle per brand guidelines; a value between 0.3–0.5 is usually enough to be visible but not intrusive. Use the idempotent smart batch for any recurring job (e.g., nightly branding updates). Test logo replacement on a small sample before running across the entire repository to ensure the search criteria are correctly tuned. Troubleshooting Common Issues Symptom Likely Cause Fix No files are processed ScanFolderForSupportedFiles returned an empty list Verify InputFolder path and that the folder contains supported formats (PDF, DOCX, PPTX, XLSX, PNG, JPG, etc.) Watermark not visible Opacity set too low or colour blends with background Increase Opacity (e.g., 0.5) or switch ForegroundColor to a contrasting hue PDF logos not found during replacement Logos added as content‑stream draw operators (not searchable) When seeding logos, add them with PdfArtifactWatermarkOptions so they become searchable artifacts Exception System.Drawing.Common on Linux Missing native GDI+ libraries Install libgdiplus on the target Linux machine or enable Unix support in the .csproj (\u0026lt;RuntimeHostConfigurationOption Include=\u0026quot;System.Drawing.EnableUnixSupport\u0026quot; Value=\u0026quot;true\u0026quot; /\u0026gt;). Conclusion You now have a complete, production‑ready pipeline that can:\nLicense the library. Detect supported documents automatically. Apply tiled text or logo watermarks. Run safely multiple times without creating duplicates. Replace an old corporate logo across an entire folder. These building blocks can be mixed and matched to fit any branding or document‑protection workflow in .NET.\nAdditional Resources Product Documentation API Reference Get a Temporary License GitHub Sample Projects Blog Category Community Forum ","permalink":"https://blog.groupdocs.com/watermark/batch-watermark-pipeline/","summary":"Learn how to protect, brand, and update large collections of documents using GroupDocs.Watermark for .NET. This guide covers licensing, folder scanning, tiled text and logo watermarks, idempotent processing, and logo replacement with working code examples.","title":"Apply Batch Watermarks in .NET with GroupDocs.Watermark"},{"content":"GroupDocs.Conversion for Python v26.3 is now available. This release adds per‑page conversion, in‑memory stream output, Python 3.14 support, AI‑agent integration files, enhanced format metadata, and several refinements.\nWhat\u0026rsquo;s new in this release Key Category Summary CONVERSIONPYTHON-65 Feature Per-page conversion via convert_by_page(output_dir, convert_options) CONVERSIONPYTHON-66 Feature In-memory conversion via convert_to_stream(convert_options) CONVERSIONPYTHON-62 Feature Python 3.14 support CONVERSIONPYTHON-64 Feature Ship AGENTS.md inside package for AI Agent integration CONVERSIONPYTHON-67 Enhancement Format objects expose .extension, .file_format, .description properties CONVERSIONPYTHON-68 Enhancement Explicit macOS classifier in PyPI metadata Public API changes New Functional Methods – these methods were declared in 25.12 but raised NotImplementedError. They are now operational:\nMethod Returns Description Converter.convert_by_page(output_dir, convert_options) None Splits a document into one file per page in the given directory Converter.convert_to_stream(convert_options) bytes Converts the document and returns the result as in‑memory bytes Methods Not Yet Available – the following methods exist as attribute proxies on the Converter class but are not yet functional in the Python binding. Calling them will raise an exception:\nMethod Status Workaround convert_by_page(file_path, page_number, convert_options) TypeError — 3‑arg overload not exposed Use convert_options.page_number + convert_options.pages_count = 1 with convert(file_path, options) convert_by_page(stream, page_number, convert_options) TypeError — 3‑arg overload not exposed Convert to file, then read into io.BytesIO convert_multiple(folder_path, convert_options) MissingMethodException Use convert(file_path, options) for a consolidated single‑file output from archives New features Per‑Page Conversion – convert_by_page\nThe Converter.convert_by_page(output_dir, convert_options) method is now fully functional. It splits a multi‑page document into individual output files — one per page — saved to the specified directory. Page files are named page_1.ext, page_2.ext, and so on. This method works for all ConvertOptions classes that support page‑based output, such as ImageConvertOptions, PdfConvertOptions, WordProcessingConvertOptions, PresentationConvertOptions, and others.\nIn‑Memory Conversion – convert_to_stream\nThe Converter.convert_to_stream(convert_options) method now returns the converted document as a Python bytes object, enabling in‑memory conversion pipelines without writing to disk. This is useful for cloud functions, web applications, and streaming architectures where filesystem access is limited or undesirable.\nPython 3.14 Support\nThe supported Python version range is extended from 3.5–3.13 (25.12) to 3.5–3.14. The Requires-Python metadata now reads \u0026gt;=3.5,\u0026lt;3.15, and the PyPI page explicitly lists classifiers for Python 3.8 through 3.14.\nAGENTS.md – AI Agent and LLM Integration\nThe groupdocs-conversion pip package now ships an AGENTS.md file at groupdocs/conversion/AGENTS.md inside the wheel. AI coding assistants that scan installed packages — such as Claude Code, Cursor, and GitHub Copilot — can automatically discover the API surface, usage patterns, import paths, and troubleshooting tips without manual guidance.\nFormat Object Properties\nFormat objects returned by get_possible_conversions() and get_all_possible_conversions() now expose human‑readable properties:\n.extension – e.g. 'pdf' .file_format – e.g. 'Portable Document Format' .description – e.g. 'Portable Document Format File (pdf)' Previously these objects rendered as opaque \u0026lt;NetObject handle=NNN\u0026gt;; they now display as \u0026lt;NetObject pdf\u0026gt; in repr() and provide clean string values through the properties listed above.\nCode example import os from groupdocs.conversion import Converter from groupdocs.conversion.filetypes import ImageFileType from groupdocs.conversion.options.convert import ImageConvertOptions output_dir = \u0026#34;./converted-pages\u0026#34; os.makedirs(output_dir, exist_ok=True) with Converter(\u0026#34;./presentation.pptx\u0026#34;) as converter: options = ImageConvertOptions() options.format = ImageFileType.PNG converter.convert_by_page(output_dir, options) # produces: page_1.png, page_2.png, ... How to get the update PyPI pip install --upgrade groupdocs-conversion Resources Documentation Code Examples API Reference Free Support Forum ","permalink":"https://blog.groupdocs.com/conversion/groupdocs-conversion-for-python-26-3/","summary":"GroupDocs.Conversion for Python 26.3 introduces key features like per-page conversion, in-memory output streaming, Python 3.14 support, AI agent integration via AGENTS.md, and improved format metadata.","title":"GroupDocs.Conversion for Python 26.3 – April 2026 Release Highlights"},{"content":"Bring your documents into AI pipelines — straight from Python, on-premise, with one pip install.\nToday we\u0026rsquo;re shipping the first public release of GroupDocs.Markdown for Python via .NET on PyPI. The library converts PDF, Word, Excel, EPUB, and 20+ more formats into clean, semantic Markdown — the format that LLMs, RAG pipelines, and static site generators work with best.\nIf you\u0026rsquo;ve been following the .NET release from September (or the full API overhaul in 26.3), the rationale is the same: document formatting carries semantics, and preserving that semantic structure is what makes a RAG system give good answers. The earlier post covers the problem (OCR flattens structure, LLMs need markdown) and the solution (a DOM-based renderer that walks the document and emits Markdown) in depth — we won\u0026rsquo;t repeat that story here.\nInstead, let\u0026rsquo;s focus on what\u0026rsquo;s new for Python developers.\nWhat you get A single wheel, no runtime dependencies. pip install groupdocs-markdown-net pulls a self-contained wheel that bundles the .NET runtime and every native library it needs. No dotnet install, no Microsoft Office, no Adobe Acrobat, no cloud services. Cross-platform. Windows x64/x86, Linux x64, macOS x64 and Apple Silicon (ARM64). Python 3.5 through 3.14. A pythonic API. Classes use PascalCase, methods and properties use snake_case, enum values use UPPER_SNAKE_CASE. Context managers dispose loaded documents deterministically. Truly async. Every static and instance method has an _async counterpart. File I/O is asynchronous and the CPU-bound conversion runs on a worker thread — your asyncio event loop stays free. AI-agent friendly. The installed wheel bundles an AGENTS.md file so coding assistants (Claude Code, Cursor, GitHub Copilot, Codex) auto-discover the API surface, idiomatic usage patterns, and troubleshooting tips. Documentation is also published as llms.txt, a single-file corpus (llms-full.txt), per-page Markdown, and an MCP server — see AI-friendly by design below for details. Get started pip install groupdocs-markdown-net The simplest conversion is a one-liner:\nfrom groupdocs.markdown import MarkdownConverter # Convert to a string md = MarkdownConverter.to_markdown(\u0026#34;business-plan.docx\u0026#34;) # Or write directly to a file MarkdownConverter.to_file(\u0026#34;business-plan.docx\u0026#34;, \u0026#34;business-plan.md\u0026#34;) That\u0026rsquo;s it — no configuration, no options, no boilerplate. Evaluation mode processes the first 3 pages and adds a watermark. To remove the limits, apply a license:\nfrom groupdocs.markdown import License License().set_license(\u0026#34;path/to/license.lic\u0026#34;) Or set GROUPDOCS_LIC_PATH as an environment variable and it will be applied automatically on import.\nSupported formats The Python package handles the same breadth of formats as the .NET library:\nPDF — .pdf Word / Rich Text — .doc, .docx, .docm, .dot, .dotx, .dotm, .rtf, .odt, .ott Spreadsheets — .xls, .xlsx, .xlsb, .xlsm, .csv, .tsv, .ods, .ots eBooks — .epub, .mobi Text / Markup / Help — .txt, .xml, .chm Pythonic examples Conversion options and image strategies from groupdocs.markdown import ( MarkdownConverter, ConvertOptions, MarkdownFlavor, ExportImagesToFileSystemStrategy, ) strategy = ExportImagesToFileSystemStrategy(\u0026#34;output/images\u0026#34;) strategy.images_relative_path = \u0026#34;images\u0026#34; # ![](images/img-001.png) options = ConvertOptions() options.flavor = MarkdownFlavor.GIT_HUB options.heading_level_offset = 1 # # Title -\u0026gt; ## Title options.include_front_matter = True # prepend YAML metadata options.image_export_strategy = strategy MarkdownConverter.to_file(\u0026#34;report.docx\u0026#34;, \u0026#34;output/report.md\u0026#34;, convert_options=options) Document inspection without conversion from groupdocs.markdown import MarkdownConverter info = MarkdownConverter.get_info(\u0026#34;business-plan.docx\u0026#34;) print(f\u0026#34;{info.file_format}, {info.page_count} pages, author: {info.author}\u0026#34;) Loading a password-protected file from groupdocs.markdown import MarkdownConverter, LoadOptions, FileFormat load_opts = LoadOptions(FileFormat.DOCX) load_opts.password = \u0026#34;secret\u0026#34; MarkdownConverter.to_file(\u0026#34;protected.docx\u0026#34;, \u0026#34;output.md\u0026#34;, load_options=load_opts) Streams and context managers from groupdocs.markdown import MarkdownConverter with open(\u0026#34;document.docx\u0026#34;, \u0026#34;rb\u0026#34;) as stream: with MarkdownConverter(stream) as converter: converter.convert(\u0026#34;document.md\u0026#34;) Async API — converting many documents concurrently Because file I/O is asynchronous, asyncio.gather() lets a single worker process many documents without blocking:\nimport asyncio from groupdocs.markdown import MarkdownConverter async def convert_many(): await asyncio.gather( MarkdownConverter.to_file_async(\u0026#34;a.docx\u0026#34;, \u0026#34;a.md\u0026#34;, None), MarkdownConverter.to_file_async(\u0026#34;b.pdf\u0026#34;, \u0026#34;b.md\u0026#34;, None), MarkdownConverter.to_file_async(\u0026#34;c.xlsx\u0026#34;, \u0026#34;c.md\u0026#34;, None), ) asyncio.run(convert_many()) This makes the library a natural fit for ASGI frameworks like FastAPI — a single worker can serve many concurrent conversion requests without thread contention.\nError handling All conversion methods raise on failure, with specific exception types for common scenarios:\nfrom groupdocs.markdown import ( MarkdownConverter, DocumentProtectedException, InvalidFormatException, GroupDocsMarkdownException, ) try: MarkdownConverter.to_file(\u0026#34;annual-report.docx\u0026#34;, \u0026#34;annual-report.md\u0026#34;) except DocumentProtectedException: print(\u0026#34;Wrong or missing password.\u0026#34;) except InvalidFormatException: print(\u0026#34;File is corrupt or unsupported.\u0026#34;) except GroupDocsMarkdownException as ex: print(f\u0026#34;Conversion failed: {ex}\u0026#34;) Built for RAG and LLM pipelines Markdown is the preferred input format for embedding models and retrieval pipelines — it preserves headings, lists, tables, and emphasis while being easy to chunk and tokenize. A typical RAG ingestion looks like this:\nimport re from groupdocs.markdown import MarkdownConverter, ConvertOptions, SkipImagesStrategy, MarkdownFlavor options = ConvertOptions() options.image_export_strategy = SkipImagesStrategy() # text-only for RAG options.flavor = MarkdownFlavor.COMMON_MARK MarkdownConverter.to_file(\u0026#34;business-plan.pdf\u0026#34;, \u0026#34;business-plan.md\u0026#34;, convert_options=options) with open(\u0026#34;business-plan.md\u0026#34;, \u0026#34;r\u0026#34;, encoding=\u0026#34;utf-8\u0026#34;) as f: markdown = f.read() # Split by top-level headings, then embed/index each chunk chunks = [c for c in re.split(r\u0026#34;\\n#{1,2} \u0026#34;, markdown) if c.strip()] Because the library runs entirely on-premise, sensitive documents never leave your environment — a common requirement for regulated industries, legal teams, and internal knowledge bases.\nAI-friendly by design Most Python SDKs treat AI coding assistants as an afterthought — a developer still has to point the agent at documentation, paste in examples, or debug through trial and error. GroupDocs.Markdown for Python via .NET flips that: the library is designed so that agents like Claude Code, Cursor, GitHub Copilot, and Codex can pick it up without any manual setup.\nAGENTS.md ships inside the wheel This is the first GroupDocs package to bundle an AGENTS.md file directly inside the installed wheel. The file follows the emerging AGENTS.md convention — a plain-Markdown README specifically written for AI coding assistants rather than humans.\nWhen you run pip install groupdocs-markdown-net, a file lands at:\nsite-packages/groupdocs/markdown/AGENTS.md An AI assistant opening your project can read it and immediately learn:\nThe full public API surface (classes, methods, enums, exceptions) and how they relate. Idiomatic usage patterns for the most common scenarios — static vs instance API, sync vs async, image strategies, front matter, error handling. Common pitfalls and how to avoid them — e.g. which ConvertOptions overloads accept None, how to handle password-protected files, how to capture conversion warnings. Troubleshooting for platform-specific issues (libSkiaSharp on macOS, ICU on Linux). In practice this means you can say \u0026ldquo;use groupdocs-markdown-net to convert this folder of PDFs to Markdown for my RAG pipeline\u0026rdquo; and the agent writes working code on the first try — no hallucinated method names, no wrong argument order, no guessed imports.\nMachine-readable documentation For agents that need to look up something that isn\u0026rsquo;t in AGENTS.md, the full product documentation is also published in machine-readable form:\nSingle-file corpus — the complete docs as one concatenated Markdown file, ready to drop into an agent\u0026rsquo;s context window: https://docs.groupdocs.com/markdown/python-net/llms-full.txt Per-page Markdown — append .md to any docs URL to fetch the raw source: https://docs.groupdocs.com/markdown/python-net/quick-start-guide.md llms.txt index — a llms.txt-style table of contents that points agents at the pages they need: https://docs.groupdocs.com/markdown/python-net/llms.txt MCP server for live doc lookups For agents that speak Model Context Protocol, we expose the docs as an MCP server. Add this to your Claude Code or Cursor config:\n{ \u0026#34;mcpServers\u0026#34;: { \u0026#34;groupdocs-docs\u0026#34;: { \u0026#34;url\u0026#34;: \u0026#34;https://docs.groupdocs.com/mcp\u0026#34; } } } After that, your agent can query the documentation on demand instead of relying on training data that may be stale.\nMarkdown in, Markdown out There\u0026rsquo;s a nice symmetry here: the library\u0026rsquo;s output is Markdown — the format LLMs parse best for RAG — and its documentation is also Markdown, served as a single file for easy context-window ingestion. Whether you\u0026rsquo;re asking an agent to write code that uses the library, or asking an agent to understand your documents via the library, Markdown is the common medium.\nExport Example The snippets above are close to the shortest useful program you can write with the library. Here\u0026rsquo;s the same idea packaged as a runnable project — source document, Python script, pre-generated output, requirements.txt, and a Dockerfile — so you can try it end-to-end without writing anything from scratch.\nSource DOCX\nThe source file business-plan.docx is a short, richly-formatted business plan with headings, tables, images, and metadata.\nPython script\nfrom groupdocs.markdown import MarkdownConverter, ConvertOptions, MarkdownFlavor def quick_example(): \u0026#34;\u0026#34;\u0026#34;Convert a Word document to Markdown with GitHub flavor and YAML front matter.\u0026#34;\u0026#34;\u0026#34; # One-liner — returns a Markdown string md = MarkdownConverter.to_markdown(\u0026#34;business-plan.docx\u0026#34;) # With options — writes to a file options = ConvertOptions() options.flavor = MarkdownFlavor.GIT_HUB options.include_front_matter = True options.heading_level_offset = 1 MarkdownConverter.to_file(\u0026#34;business-plan.docx\u0026#34;, \u0026#34;quick-example.md\u0026#34;, convert_options=options) if __name__ == \u0026#34;__main__\u0026#34;: quick_example() Output Markdown\nThe quick-example.md output starts with a YAML front-matter block auto-extracted from the document metadata, followed by the converted content with GitHub Flavored tables and a shifted heading hierarchy (ready to embed inside a larger document).\nRunnable sample app\nEverything bundled together: sample-app.zip. Unzip, then:\ncd src python -m venv .venv # Windows: .venv\\Scripts\\activate # Linux/macOS: source .venv/bin/activate pip install -r requirements.txt python quick_example.py Or run it in Docker — the included Dockerfile sets up the ICU dependency the bundled .NET runtime needs on Linux:\ncd src docker build -t groupdocs-markdown-python-example . docker run --rm -v \u0026#34;$(pwd)/output:/app/output\u0026#34; groupdocs-markdown-python-example Summary GroupDocs.Markdown for Python via .NET brings the full document-to-Markdown conversion engine to Python as a self-contained wheel — no external runtime, no cloud, no surprises. A pythonic API, async support, and first-class AI tooling integration make it a practical choice for Python teams building RAG systems, static site generators, or document processing pipelines.\nLearn more PyPI package: https://pypi.org/project/groupdocs-markdown-net/ Product home: https://products.groupdocs.com/markdown/python-net/ Documentation: https://docs.groupdocs.com/markdown/python-net/ Release notes: https://releases.groupdocs.com/markdown/python-net/release-notes/ Code examples on GitHub: https://github.com/groupdocs-markdown/GroupDocs.Markdown-for-Python-via-.NET License information: https://about.groupdocs.com/legal/ Related .NET release post: GroupDocs.Markdown for .NET — First Public Release Support \u0026amp; feedback For questions or technical assistance, please use our Free Support Forum — we\u0026rsquo;ll be happy to help.\n","permalink":"https://blog.groupdocs.com/markdown/groupdocs-markdown-for-python-first-public-release/","summary":"Introducing a Python library to export popular document formats to clean Markdown — a single \u003ccode\u003epip install\u003c/code\u003e with no runtime dependencies.","title":"GroupDocs.Markdown for Python via .NET — First Public Release"},{"content":"We’re happy to announce the GroupDocs.Total for Java 26.4 release, available as of April 2026. This update bundles the latest versions of the individual libraries that compose the Total suite, bringing a range of enhancements, bug fixes, and performance improvements across the board.\nWhat’s new in this release GroupDocs.Total for Java 26.4 now embeds the following products (each upgraded to the versions listed). Detailed changelogs are available via the links in the table.\nEmbedded product Version Release notes GroupDocs.Comparison 26.3 Release notes GroupDocs.Conversion 26.3 Release notes GroupDocs.Viewer 26.3 Release notes GroupDocs.Metadata 26.1 Release notes GroupDocs.Watermark 25.9 Release notes GroupDocs.Assembly 25.6 Release notes GroupDocs.Editor 26.1 Release notes GroupDocs.Redaction 25.12 Release notes GroupDocs.Merger 25.12 Release notes GroupDocs.Signature 24.7 Release notes GroupDocs.Annotation 25.6 Release notes GroupDocs.Parser 25.5 Release notes GroupDocs.Search 25.4 Release notes How to obtain the update Maven Central Add (or update) the groupdocs-total artifact in your pom.xml. The latest version is 26.4:\n\u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-total\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;26.4\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Resources Full release notes – the page you are reading now. Documentation – comprehensive guides and API references are hosted at https://docs.groupdocs.com/total/java/. Free Support Forum – ask questions or report issues at https://forum.groupdocs.com/c/total/8. If you encounter any issues or have suggestions for future improvements, please let us know through the support forum or by opening an issue on our GitHub tracker. Happy coding!\n","permalink":"https://blog.groupdocs.com/total/groupdocs-total-for-java-26-4/","summary":"GroupDocs.Total for Java 26.4 introduces updated embedded libraries and stability improvements.","title":"GroupDocs.Total for Java 26.4 – April 2026 Release Highlights"},{"content":"GroupDocs.Editor for .NET 26.3 is now available as of March 2026. This is a significant release with lots of new features, enhancements and bug fixes. Public API was a little bit expanded with the new features.\nWhat\u0026rsquo;s new in this release Key Category Summary EDITORNET-3019 New feature Add support of TrueType Collection font EDITORNET-3020 New feature Add support of text-based PPT and PPS EDITORNET-3036 Improvement Add support of new CSS properties EDITORNET-3037 Improvement Add support of XML processing instructions and XML-Stylesheet EDITORNET-3022 Bug Fix NRE in obfuscated assembly after HtmlCss was injected Public API changes Added new TtcFont type that represents a TrueType Collection (TTC) font and implements the FontResourceBase. How to get the update NuGet GroupDocs.Editor – .NET 6.0 and .NET 4.6.2 assemblies. Direct download Download the package from the direct download page. Resources Product Overview System Requirements Technical Support Free Support Forum Feel free to reach out via the support forum if you have any questions or feedback.\n","permalink":"https://blog.groupdocs.com/editor/groupdocs-editor-for-net-26-3/","summary":"GroupDocs.Editor for .NET 26.3 introduces TrueType Collection font support, improved PPT/PPS handling, new CSS and XML features, and critical bug fixes.","title":"GroupDocs.Editor for .NET 26.3 – March 2026 Release Highlights"},{"content":"We are pleased to announce the release of GroupDocs.Redaction for .NET 26.4, published in April 2026. In this release, we addressed several important issues and introduced valuable improvements for WordProcessing documents and images.\nFixes and enhancements [Enhancement] Updated EXIF metadata handling for images to provide better compatibility across supported formats. (REDACTIONNET-740) [Enhancement] Enhanced OpenOffice format support by adding full support for ODT and OTT documents. (REDACTIONNET-742) [Enhancement] Implemented metadata redaction support for WEBP images. (REDACTIONNET-743) What’s New? This release introduces important improvements and fixes focused on enhancing stability and expanding support for document and image formats. The following updates have been implemented:\nImproved EXIF metadata processing for supported image formats, including JPEG, PNG, TIFF, BMP, GIF, and WEBP, ensuring better compatibility and more reliable redaction workflows.\nExpanded OpenOffice WordProcessing support with full support for ODT and OTT files, allowing a broader range of documents to be processed and redacted.\nAdded metadata redaction support for WEBP images, enabling secure removal of sensitive metadata from modern web image formats.\nHow to get the update NuGet – Upgrade to the latest GroupDocs.Redaction for .NET package via NuGet Direct Download – Download GroupDocs.Redaction assemblies from the GroupDocs.Redaction for .NET 26.4 page Learn more Full Release Notes Documentation GroupDocs.Redaction Free Support Forum ","permalink":"https://blog.groupdocs.com/redaction/groupdocs-redaction-for-net-26-4/","summary":"GroupDocs.Redaction for .NET 26.4 release notes.","title":"GroupDocs.Redaction for .NET 26.4 – April 2026 Release Notes"},{"content":"GroupDocs.Parser for .NET 26.3 is now available. This release adds OCR support for Arabic and Korean languages, with all required resources bundled inside the DLL.\nWhat\u0026rsquo;s new in this release Key Category Summary PARSERNET-2843 Improvement Implement support for Arabic and Korean languages ​​when using OCR Public API changes None.\nCode example // Create an instance of Parser class using (Parser parser = new Parser(documentPath)) { OcrOptions ocrOptions = new OcrOptions() { Language = Language.Kor }; TextOptions options = new TextOptions(false, true, ocrOptions); TextReader result = parser.GetText(options); string text = result.ReadToEnd(); Console.WriteLine(text); } How to get the update NuGet – Upgrade to the latest GroupDocs.Parser package via NuGet:\nNuGet\\Install-Package GroupDocs.Parser -Version 26.3.0 NuGet\\Install-Package GroupDocs.Parser.NETFramework -Version 26.3.0 Direct Download – Download the assemblies for .NET from the GroupDocs.Parser for .NET 26.3 page on the GroupDocs releases site:\nhttps://releases.groupdocs.com/parser/net/new-releases/groupdocs.parser-for-.net-26.3-dlls-only/ https://releases.groupdocs.com/parser/net/new-releases/groupdocs.parser-for-.net--26.3/\nResources Full Release Notes Documentation – OCR GroupDocs.Parser Free Support Forum ","permalink":"https://blog.groupdocs.com/parser/groupdocs-parser-for-net-26-3/","summary":"GroupDocs.Parser for .NET 26.3 introduces built-in OCR support for Arabic and Korean languages, improving multilingual document parsing.","title":"GroupDocs.Parser for .NET 26.3 – March 2026 Release Highlights"},{"content":"GroupDocs.Conversion for .NET 26.3 is now available. This release expands format support, improves conversion fidelity, and addresses a range of stability and compliance issues.\nWhat\u0026rsquo;s new in this release Key Category Summary CONVERSIONNET-8259 Feature Convert from ICS file CONVERSIONNET-8205 Improvement Add custom font folders, default font, and font substitution support for Publisher documents CONVERSIONNET-7977 Bug .eml to pdf conversion issue - incompatible unit types CONVERSIONNET-8204 Bug PresentationLoadOptions and NoteLoadOptions missing IFontSubstituteLoadOptions interface implementation CONVERSIONNET-8207 Bug Memory leak when converting PDF to WordProcessing formats except DOC/DOCX CONVERSIONNET-8208 Bug WhitelistedResources not respected when converting Web document with WebLoadOptions.UsePdf = true CONVERSIONNET-8209 Bug CustomCssStyle and Encoding not applied when converting Web document with WebLoadOptions.UsePdf = true CONVERSIONNET-8218 Bug Email with images conversion - the embedded image is converted as an attachment CONVERSIONNET-8223 Bug Unable to load one or more of the requested types when converting HTML to PDF CONVERSIONNET-8226 Bug Conversion to DCM and JFIF fails with “archive entry was compressed using an unsupported compression method” CONVERSIONNET-8228 Bug Converting PDF to wordprocessing PdfRecognitionMode.Flow produces identical output to TextBox CONVERSIONNET-8229 Bug Conversion from Html and Html to Tiff throws System.ArgumentOutOfRangeException : Invalid page index. (Parameter ‘pageIndex’) CONVERSIONNET-8231 Bug PDF/A-1A conversion produces non‑compliant PDF due to invalid ToUnicode tables CONVERSIONNET-8234 Bug ResizeMode ScaleToFit not working correctly when both PageOrientation and PageSize are set Public API changes No existing public API has been removed or changed in a breaking way. Existing applications will continue to work unchanged.\nNew features ICS Conversion: Adds native support for converting iCalendar (.ics) files, allowing users to transform calendar data directly into PDF, DOCX, and other target formats without external tools. Enhanced Font Substitution: Provides full font‑substitution for Publisher, Presentation, and Note documents, plus custom font folder and default‑font configuration, ensuring accurate rendering when original fonts are missing. Improved Email \u0026amp; Messaging Conversion: Fixes special‑character rendering in MSG‑to‑PDF, corrects embedded image handling in email conversions, and resolves .eml to PDF unit‑type errors, delivering reliable conversion of Outlook messages and email files. PDF/A-1A Compliance \u0026amp; Recognition Mode Fixes: Corrects invalid ToUnicode tables in PDF/A-1A output and aligns PdfRecognitionMode.Flow behavior with expected text flow, guaranteeing standards‑compliant PDFs and consistent text extraction. Stability \u0026amp; Layout Enhancements: Addresses scaling issues with ResizeMode.ScaleToFit, resolves HTML‑to‑PDF loading errors, fixes DCM/JFIF conversion failures, and eliminates memory leaks during PDF‑to‑WordProcessing conversions, resulting in more stable and predictable conversion workflows. How to get the update NuGet Upgrade to the latest GroupDocs.Conversion for .NET package via NuGet. Use the appropriate package for your target platform.\n","permalink":"https://blog.groupdocs.com/conversion/groupdocs-conversion-for-net-26-3/","summary":"GroupDocs.Conversion for .NET 26.3 adds iCalendar (ICS) conversion, enhanced font substitution, fixes email and PDF conversion issues, and improves compliance and stability.","title":"GroupDocs.Conversion for .NET 26.3 – March 2026 Release Highlights"},{"content":"GroupDocs.Metadata for .NET 26.3 is now available. This release adds PDF/A format detection and improves OOXML compliance handling for Word documents, along with several public API extensions.\nWhat\u0026rsquo;s new in this release Key Summary Category METADATANET-4171 Add PDF/A format detection support. New Feature METADATANET-4169 Implement support and respect OOXML compliance for the Words documents. New Feature Fixes and enhancements No fixes or enhancements are listed for this release.\nPublic API changes The GroupDocs.Metadata.Formats.Document.PdfFormat has been added to the GroupDocs.Metadata.Formats.Document namespace.\nThe PdfFormat has been added to the GroupDocs.Metadata.Formats.Document.PdfTypePackage class.\nThe IsPdfA has been added to the GroupDocs.Metadata.Formats.Document.PdfTypePackage class.\nThe IsPdfX has been added to the GroupDocs.Metadata.Formats.Document.PdfTypePackage class.\nNew features Add PDF/A format detection support. Implement support and respect OOXML compliance for the Words documents. Code example using (Metadata metadata = new Metadata(\u0026#34;input_a.pdf\u0026#34;)) { var root = metadata.GetRootPackage\u0026lt;PdfRootPackage\u0026gt;(); if (root.FileType.IsPdfA) { Console.WriteLine(\u0026#34;PDF/A version: {0}\u0026#34;, root.FileType.PdfFormat); } else { Console.WriteLine(\u0026#34;The document is not PDF/A compliant.\u0026#34;); } } How to get the update No specific NuGet or direct download instructions are provided in the release notes.\nResources GroupDocs.Metadata.Formats.Document.PdfFormat GroupDocs.Metadata.Formats.Document.PdfTypePackage.PdfFormat GroupDocs.Metadata.Formats.Document.PdfTypePackage.IsPdfA GroupDocs.Metadata.Formats.Document.PdfTypePackage.IsPdfX ","permalink":"https://blog.groupdocs.com/metadata/groupdocs-metadata-for-net-26-3/","summary":"GroupDocs.Metadata for .NET 26.3 adds PDF/A detection and improved OOXML handling, with new API members including PdfFormat, IsPdfA, and IsPdfX.","title":"GroupDocs.Metadata for .NET 26.3 – March 2026 Release Highlights"},{"content":"We’re happy to announce the release of GroupDocs.Watermark for .NET 26.3, available as of March 2026.\nThis release adds polygon-based image inpainting for more precise watermark removal and fixes an issue with password-protected Word documents and Strict OOXML formatting.\nFixes and enhancements [Feature] Added support for image inpainting within a specified polygon so you can restrict edits to a custom region while keeping the rest of the image intact. (WATERMARKNET-2152) [Fix] Fixed an unintended format change to Strict OOXML when processing password-protected Word documents. (WATERMARKNET-2138) How to get the update You can get the latest version from NuGet or download it directly from the GroupDocs website.\nNuGet GroupDocs.Watermark for .NET 26.3\nDirect download Download assemblies for both .NET and .NET Framework from the GroupDocs.Watermark for .NET 26.3 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/watermark/groupdocs-watermark-for-net-26-3/","summary":"GroupDocs.Watermark for .NET 26.3 is here.","title":"GroupDocs.Watermark for .NET 26.3 – March 2026 Release Highlights"},{"content":"GroupDocs.Viewer for Java 26.3 is now available. This minor update introduces a new rendering option for slide placeholders and resolves a wide range of bugs affecting PDF, PowerPoint, Excel, Word, and image conversions.\nWhat\u0026rsquo;s new in this release GroupDocs.Viewer for Java 26.3 (25.12 → 26.3) Key Category Summary VIEWERNET‑5551 New feature Add option to render placeholders in headers and footers of slide VIEWERNET‑5550 Bug Content added to PowerPoint footer is not visible when rendering to all output formats VIEWERNET‑5530 Bug Incorrect rendering of arabic fonts when converting DOCX to PDF VIEWERNET‑5408 Bug Slow rendering speed PDF to HTML VIEWERNET‑4964 Bug Malformed text during saving PDF to HTML when custom DefaultFontName is applied VIEWERNET‑4941 Bug Intermittent Character rendering Errors on Windows Server 2019 VIEWERNET‑5024 Bug PDF to HTML: Text not converted correctly VIEWERNET‑5514 Bug Incorrect processing of explicit page numbering during consecutive calls for Spreadsheet formats family VIEWERNET‑5513 Bug Invalid WordProcessing document generation in trial mode with explicitly specified page number is out of trial limit VIEWERNET‑5480 Bug PDF rendering is completely broken VIEWERNET‑5515 Bug TIFF rendering throws exception with Cross-platform Viewer on Linux VIEWERNET‑4540 Bug PDF file displayed incorrectly, with letters changed and lines shifted VIEWERNET‑5516 Bug Invalid WordProcessing to PDF view generation in licensed mode when passed a page number greater than the total number of pages in the document VIEWERNET‑5577 Improvement Implement detection and wrapping of raw URIs in mail message body VIEWERNET‑5550 Bug Content added to PowerPoint footer is not visible when rendering to all output formats (reopened from v25.11) VIEWERNET‑5241 Bug Formatting of numbers, datetimes and money values is broken when converting PDF to HTML VIEWERNET‑4709 Bug PDF to HTML: Whole resultant file become link VIEWERNET‑5568 Bug Hyperlinks in email body are not clickable VIEWERJAVA‑4048 Bug XLSX to HTML: Autofit is not applied for row number VIEWERJAVA‑4058 Bug NullPointerException in font resolution on Docker due to missing LOCALAPPDATA VIEWERJAVA‑4060 Enhancement Excel rendering produces low-resolution text compared to PDF when converting to JPG ( or PNG) Public API changes Added\ncom.groupdocs.viewer.options.PresentationOptions.isRenderHeaderFooterPlaceholders() boolean property (VIEWERNET‑5551)\nRemoved\nNone\nNew Features Added HorizontalResolution and VerticalResolution properties to the SpreadsheetOptions class, allowing users to control the output image resolution (in DPI) when rendering spreadsheets to PNG and JPEG formats. Code Example Path pageFilePathFormat = Paths.get(\u0026#34;page_{0}.png\u0026#34;); PngViewOptions viewOptions = new PngViewOptions(pageFilePathFormat); viewOptions.getSpreadsheetOptions().setHorizontalResolution(300); viewOptions.getSpreadsheetOptions().setVerticalResolution(300); try (Viewer viewer = new Viewer(\u0026#34;sample.xlsx\u0026#34;)) { viewer.view(viewOptions); } How to get the update Add the following dependency to your pom.xml (or the equivalent entry in Gradle) to use version 26.3:\n\u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-viewer\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;26.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Direct download Alternatively, download the compiled JARs from the official release page:\nhttps://releases.groupdocs.com/viewer/java/\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-java-26-3/","summary":"GroupDocs.Viewer for Java 26.3 delivers key bug fixes across PDF, Word, Excel, PowerPoint, and image conversions, plus a new rendering option for slide placeholders.","title":"GroupDocs.Viewer for Java 26.3 – March 2026 Release Highlights"},{"content":"GroupDocs.Total for .NET 26.3 is now available. This release updates several component libraries, adds performance improvements for conversion and viewer warm‑up, and fixes critical bugs affecting conversion, DXF rendering, and HTML‑to‑PDF table handling.\nWhat\u0026rsquo;s new in this release GroupDocs.Comparison for .NET (25.12 → 26.2) GroupDocs.Conversion for .NET (25.12 → 26.1) GroupDocs.Metadata for .NET (25.8 → 26.1) GroupDocs.Signature for .NET (25.12 → 26.2) Fixes Issue Product Description TOTALNET‑283 Conversion Warm‑up of GroupDocs.Conversion and GroupDocs.Viewer has been optimized. Parallelizing viewer warm‑ups and overlapping conversion with viewers reduces total start‑up time from ~5.6 s to ~2.2 s (≈61 % faster). Additional gains come from a multi‑stage Dockerfile using the ASP.NET runtime image and ReadyToRun pre‑compilation, which cut image size and JIT overhead. TOTALNET‑341 Viewer A partial fix for DXF rendering failures is included. When a valid license is configured, rendering of previously problematic DXF files now succeeds; trial‑mode rendering is not yet supported and will be addressed in a future release. TOTALNET‑351 Conversion The conversion stylesheet no longer forces all table cells to fit, preserving nowrap rules defined in the source HTML. The updated stylesheet defers to inline styles, fixing table formatting in the generated PDF. Visual regression tests have been added to verify correct table layout and prevent future regressions. How to get the update NuGet GroupDocs.Total 26.3 – .NET 6.0 assembly (also includes .NET Standard 2.0 for earlier versions). GroupDocs.Total.NETFramework 26.3 – .NET Framework 4.6.2+ assembly. Direct download Download the compiled packages from the direct download page: https://releases.groupdocs.com/total/net/#direct-download Resources Product Overview System Requirements Technical Support Free Support Forum ","permalink":"https://blog.groupdocs.com/total/groupdocs-total-for-net-26-3/","summary":"GroupDocs.Total for .NET 26.3 introduces optimized warm-up performance, DXF rendering fixes (with valid license), and improved HTML-to-PDF table styling — plus updates to key component libraries.","title":"GroupDocs.Total for .NET 26.3 – March 2026 Release Highlights"},{"content":"Introduction Whether you work with contracts, internal policies, technical specifications, or marketing copies, the pattern is the same: you quickly accumulate several .docx versions and at some point need to see what exactly changed between them. Word\u0026rsquo;s built‑in Compare dialog is fine for an occasional manual check, but it does not help much when comparison becomes part of a regular process or has to be automated on the server side.\nGroupDocs.Comparison for .NET lets you run that comparison from code and produce the result in the format your reviewers prefer. The library supports two output comparison modes for Word documents:\nRevision mode — differences are written as Word revision (track‑changes) markup. Reviewers open the file, see the familiar Review → Accept / Reject controls, and work through changes one by one. Highlight mode — inserted, deleted, and modified text is rendered with colour highlights directly in the document body, so differences are visible at a glance while you read the final text. In this article we will walk through both approaches with working C# examples, explore the WordCompareOptions class and its properties, and discuss when each mode makes more sense\nPrerequisites Before you start:\n.NET 6.0 or later. GroupDocs.Comparison for .NET — install via NuGet: dotnet add package GroupDocs.Comparison A license file (GroupDocs.Comparison.lic). Without it the library runs in evaluation mode with watermarks and size limits. You can request a temporary license for testing. Two Word files to compare — we will call them source.docx and target.docx. Example content: source.docx target.docx Method 1: Revision‑Track Comparison When to use: reviewers need to accept or reject each change individually in Microsoft Word using the built‑in Review → Accept / Reject tools — for example, during contract negotiation or policy approval cycles.\nusing GroupDocs.Comparison; using GroupDocs.Comparison.Options; using (var comparer = new Comparer(\u0026#34;source.docx\u0026#34;)) { comparer.Add(\u0026#34;target.docx\u0026#34;); var options = new WordCompareOptions { DetectStyleChanges = true, DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions }; comparer.Compare(\u0026#34;result_revision.docx\u0026#34;, options); } Resulting document in revision (track changes) mode:\nWhat happens under the hood:\nComparisonDisplayMode.Revisions tells the engine to emit native Word track‑changes markup. DetectStyleChanges = true makes the comparison pick up formatting differences (bold, font size, colour) alongside textual edits. The output file opens in Microsoft Word with the Review pane ready — every insertion, deletion, and style tweak is listed and can be accepted or rejected. Because revision mode does not need to re‑render the document content — it simply attaches revision metadata — it tends to be the faster of the two modes.\nMethod 2: Highlight‑Mode Comparison When to use: stakeholders want a clean document that clearly shows what changed but are not interested in working through every single revision. A typical scenario is a manager who opens the latest version in Word and quickly scans highlighted insertions and deletions to understand the impact of the update.\nusing GroupDocs.Comparison; using GroupDocs.Comparison.Options; using (var comparer = new Comparer(\u0026#34;source.docx\u0026#34;)) { comparer.Add(\u0026#34;target.docx\u0026#34;); var options = new WordCompareOptions { DetectStyleChanges = true, DisplayMode = WordCompareOptions.ComparisonDisplayMode.Highlight }; comparer.Compare(\u0026#34;result_highlighted.docx\u0026#34;, options); } Resulting document in highlight mode:\nWhat happens under the hood:\nComparisonDisplayMode.Highlight renders differences as inline colour highlights — red for deletions, green for insertions, blue for style changes (default colours that can be adjusted through WordCompareOptions / CompareOptions and their related StyleSettings). The document is ready for reading or printing without any extra steps. No track‑changes metadata is added to the file. Highlight mode does more work internally because it has to modify the actual document content and apply formatting. For large files you may notice a significant performance difference compared to revision mode.\nExploring WordCompareOptions Both examples above use WordCompareOptions — a class that inherits common settings from CompareOptions and adds properties specific to Word documents. Through this type you control display mode (DisplayMode), whether to track style changes (DetectStyleChanges), which author name appears on revisions (RevisionAuthorName), how line breaks, bookmarks etc.\nOn top of that, the base CompareOptions exposes styles for inserted, deleted, and changed items (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle), so you can fine‑tune colours and formatting of the highlights when needed.\nHere is a small example of configuring options for a text‑only check in revision mode:\nvar options = new WordCompareOptions { DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions, DetectStyleChanges = false, RevisionAuthorName = \u0026#34;QA Bot\u0026#34;, CompareBookmarks = true }; Getting Changes Programmatically Regardless of which output mode you choose (revisions or highlight), you can always obtain a structured list of detected differences via the common Comparer.GetChanges API. This method works for Word and all other supported formats.\nusing (var comparer = new Comparer(\u0026#34;source.docx\u0026#34;)) { comparer.Add(\u0026#34;target.docx\u0026#34;); comparer.Compare(\u0026#34;result_revision.docx\u0026#34;); var changes = comparer.GetChanges(); // returns ChangeInfo[] } This is useful when you need to post‑process changes in your own workflow — for example, to build a custom HTML report, feed differences into a review system, or aggregate statistics about edits. See the official API reference for more details: Comparer.GetChanges.\nWorking with Password‑Protected Documents If documents are protected with a password, they can still be compared: the password is passed via LoadOptions when creating the Comparer. This approach works the same way for Word, PDF, and other supported formats.\nusing GroupDocs.Comparison; using GroupDocs.Comparison.Options; using (var comparer = new Comparer(\u0026#34;source_protected.docx\u0026#34;, new LoadOptions { Password = \u0026#34;secret\u0026#34; })) { comparer.Add(\u0026#34;target_protected.docx\u0026#34;); var options = new WordCompareOptions { DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions }; comparer.Compare(\u0026#34;result_protected.docx\u0026#34;, options); } Get a Free Trial You can download GroupDocs.Comparison for .NET from the official releases page. For unrestricted testing, request a temporary license — no credit card required.\nFrequently Asked Questions Q: Do I need Microsoft Word or Office installed on the server? A: No. GroupDocs.Comparison is a standalone .NET library; it reads and writes DOCX files on its own.\nQ: Can I compare documents in other formats besides Word? A: Yes — the library supports PDFs, Excel spreadsheets, presentations, plain‑text files, and many more. The full list is in the documentation.\nQ: What happens if I don\u0026rsquo;t set a license? A: The library works in evaluation mode. Output documents will contain a watermark and only the first few pages are processed. A temporary license removes these restrictions for testing.\nQ: Can I customise the highlight colours? A: The default colours work for most use cases. For advanced styling control, check the StyleSettings property on CompareOptions.\nOther Platforms GroupDocs.Comparison ships as a native library for several runtimes — the revision/highlight workflow described above is available across all of them:\nGroupDocs.Comparison for Java GroupDocs.Comparison for Python via .NET GroupDocs.Comparison for Node.js via Java GroupDocs.Comparison Cloud API — language‑agnostic REST API The API surface is intentionally kept consistent across platforms, so the Comparer / WordCompareOptions / DisplayMode concepts translate directly — only the syntax changes.\nConclusion GroupDocs.Comparison for .NET gives you two clean ways to diff Word documents from code. Revision mode plugs straight into the review workflow your team already uses; highlight mode delivers an instant visual summary for people who just need to see the changes. The WordCompareOptions class lets you fine‑tune the output — from style detection and author attribution to bookmark and document‑property comparison.\nPick the mode that fits your scenario, or generate both and let each audience choose their preferred view.\nAdditional Resources GroupDocs.Comparison Documentation API Reference Get a Temporary License Sample Projects on GitHub GroupDocs.Comparison Blog Category Community Forum ","permalink":"https://blog.groupdocs.com/comparison/word-comparison-net-revision-track-vs-highlight-modes/","summary":"Discover how to automate Word document comparison with GroupDocs.Comparison for .NET. This guide walks through two practical approaches – revision‑track markup and inline highlighting – with ready‑to‑run C# code examples.","title":"Word Comparison in .NET: Revision Track vs Highlight Modes"},{"content":"What’s new in this release [Bug fix] Sign document error when using Azure Key Vault – DefaultSignatureLength parameter (SIGNATURENET‑5654) This maintenance release focuses on a critical stability issue that affected PDF signing through Azure Key Vault when a custom hash algorithm was used. The internal DefaultSignatureLength value was too small for the generated signature, causing an exception. The limit has been raised, so the same code now signs documents successfully without any changes.\nFixes and enhancements Issue ID Category Summary SIGNATURENET‑5654 Bug Increased DefaultSignatureLength to support signatures generated via Azure Key Vault custom‑hash flow. Details Issue: Signing a PDF with Azure Key Vault and a custom hash failed because the default buffer for the signature was insufficient. Resolution: The default buffer size is now large enough to hold the full signature payload, eliminating the runtime error. No API changes are required for existing implementations. How to get the update NuGet – Upgrade to the latest GroupDocs.Signature package via NuGet. Use the version that matches your target framework, e.g.: dotnet add package GroupDocs.Signature --version 26.2 Direct Download – Download the compiled assemblies for .NET from the GroupDocs.Signature for .NET 26.2 release page. Resources Full Release Notes – https://releases.groupdocs.com/signature/net/26.2/ Documentation – https://docs.groupdocs.com/signature/net/ Support Forum – https://forum.groupdocs.com/c/signature/ ","permalink":"https://blog.groupdocs.com/signature/groupdocs-signature-for-net-26-2/","summary":"Version 26.2 of GroupDocs.Signature for .NET adds a critical Azure Key Vault fix, raises the default signature length, and is available via NuGet.","title":"GroupDocs.Signature for .NET 26.2 – February 2026 Release Highlights"},{"content":"Introduction When your business needs to ingest large batches of invoices, legal documents, or email exports that arrive as compressed ZIP or RAR files, the traditional approach is to unzip them to disk, open each file with a separate reader, and then discard the temporary files. This round‑trip adds costly I/O, complicates cleanup, and makes handling nested archives a nightmare.\nGroupDocs.Parser for .NET eliminates those pain points. It lets you open an archive directly, enumerate every entry, and extract raw text (and metadata) completely in memory. In this article you will learn how to:\nInstall the Parser NuGet package. Pull text from a flat archive in a single pass. Recursively walk nested ZIP/RAR files. Apply best‑practice settings for robust processing. Why In‑Memory Archive Parsing Matters Processing archives in memory gives you:\nZero temporary files – no disk clutter, no leftover files. Speed – avoid the extra read/write cycle for each entry. Scalability – handle large archives or cloud‑based streams where a file system may not be available. Prerequisites .NET 6.0 or later. GroupDocs.Parser for .NET (latest version) – see the temporary license for a free evaluation. A ZIP or RAR archive containing supported documents (PDF, DOCX, TXT, etc.). Installation dotnet add package GroupDocs.Parser Add the required namespaces:\nusing GroupDocs.Parser; using GroupDocs.Parser.Data; using System.Collections.Generic; using System.IO; Step 1 – Open the Archive The first step is to create a Parser instance that points at the archive file. GetContainer() returns a collection of ContainerItem objects – one per entry inside the archive.\n// Path to the archive you want to scan string archivePath = \u0026#34;./SampleDocs/InvoicesArchive.zip\u0026#34;; using (Parser parser = new Parser(archivePath)) { // Retrieve every file (or nested archive) inside the container IEnumerable\u0026lt;ContainerItem\u0026gt; attachments = parser.GetContainer(); if (attachments == null) { Console.WriteLine(\u0026#34;Archive is empty or could not be read.\u0026#34;); return; } // Hand off the collection to a helper that extracts text/metadata ExtractDataFromAttachments(attachments); } What’s happening:\nThe Parser constructor loads the archive without extracting it to disk. GetContainer() lazily reads the archive’s directory and gives you ContainerItem objects you can work with. Step 2 – Process Each Entry ExtractDataFromAttachments walks the ContainerItem list, prints basic metadata, detects nested archives, and extracts text from regular documents. The method is completely reusable – call it once for a top‑level archive and again for any nested archive you discover.\n/// \u0026lt;summary\u0026gt; /// Recursively extracts metadata and plain‑text from each item in an archive. /// \u0026lt;/summary\u0026gt; static void ExtractDataFromAttachments(IEnumerable\u0026lt;ContainerItem\u0026gt; attachments) { foreach (ContainerItem item in attachments) { // Print a quick line with file name and size (optional) Console.WriteLine($\u0026#34;File: {item.FilePath} | Size: {item.Metadata.Size} bytes\u0026#34;); try { // Each ContainerItem can open its own Parser instance using (Parser itemParser = item.OpenParser()) { if (itemParser == null) { // The item is not a supported document – skip it continue; } // Detect nested archives by extension (case‑insensitive) bool isArchive = item.FilePath.EndsWith(\u0026#34;.zip\u0026#34;, StringComparison.OrdinalIgnoreCase) || item.FilePath.EndsWith(\u0026#34;.rar\u0026#34;, StringComparison.OrdinalIgnoreCase); if (isArchive) { // Recursively process the inner archive IEnumerable\u0026lt;ContainerItem\u0026gt;? nested = itemParser.GetContainer(); if (nested != null) { ExtractDataFromAttachments(nested); } } else { // Regular document – extract its raw text using (TextReader reader = itemParser.GetText()) { string text = reader.ReadToEnd(); Console.WriteLine($\u0026#34;Extracted {text.Length} characters from {item.FilePath}\u0026#34;); // Here you could store `text` in a database, index it, etc. } } } } catch (UnsupportedDocumentFormatException) { // The file type is not supported by GroupDocs.Parser – ignore gracefully Console.WriteLine($\u0026#34;Skipping unsupported format: {item.FilePath}\u0026#34;); } } } Key Points Metadata access – item.Metadata gives you file name, size, creation date, etc., without reading the file contents. Recursive handling – The same method calls itself when it encounters another ZIP/RAR, giving you unlimited nesting support. Error resilience – UnsupportedDocumentFormatException is caught so a single bad file won’t abort the whole run. Step 3 – Putting It All Together Below is a minimal, copy‑pasteable program that combines the two snippets above. It demonstrates a full end‑to‑end flow: install, open, process, and report.\nusing GroupDocs.Parser; using GroupDocs.Parser.Data; using System; using System.Collections.Generic; using System.IO; class ArchiveTextExtractor { static void Main(string[] args) { string archivePath = args.Length \u0026gt; 0 ? args[0] : \u0026#34;./SampleDocs/InvoicesArchive.zip\u0026#34;; using (Parser parser = new Parser(archivePath)) { IEnumerable\u0026lt;ContainerItem\u0026gt; attachments = parser.GetContainer(); if (attachments == null) { Console.WriteLine(\u0026#34;No items found in the archive.\u0026#34;); return; } ExtractDataFromAttachments(attachments); } } static void ExtractDataFromAttachments(IEnumerable\u0026lt;ContainerItem\u0026gt; attachments) { foreach (ContainerItem item in attachments) { Console.WriteLine($\u0026#34;File: {item.FilePath} | Size: {item.Metadata.Size} bytes\u0026#34;); try { using (Parser itemParser = item.OpenParser()) { if (itemParser == null) continue; bool isArchive = item.FilePath.EndsWith(\u0026#34;.zip\u0026#34;, StringComparison.OrdinalIgnoreCase) || item.FilePath.EndsWith(\u0026#34;.rar\u0026#34;, StringComparison.OrdinalIgnoreCase); if (isArchive) { var nested = itemParser.GetContainer(); if (nested != null) ExtractDataFromAttachments(nested); } else { using (TextReader reader = itemParser.GetText()) { string text = reader.ReadToEnd(); Console.WriteLine($\u0026#34;Extracted {text.Length} chars from {item.FilePath}\u0026#34;); } } } } catch (UnsupportedDocumentFormatException) { Console.WriteLine($\u0026#34;Unsupported format: {item.FilePath}\u0026#34;); } } } } Run the program with the path to your archive:\ndotnet run -- ./Data/LegalDocs.zip Best Practices \u0026amp; Tips Limit parsing options – By default Parser extracts all supported content. If you only need text, avoid calling additional heavy methods like GetImages(). Large archives – Process items sequentially as shown; avoid loading all texts into memory at once. Performance – Skip nested archives you don’t need by checking the file extension before recursing. Error handling – Always catch UnsupportedDocumentFormatException; many corporate archives contain binaries that the parser cannot read. Conclusion GroupDocs.Parser for .NET provides a clean, in‑memory way to read every document inside ZIP or RAR archives, no matter how deeply they are nested. With just a few lines of code you can replace complex unzip‑plus‑parse pipelines, reduce I/O overhead, and build reliable document‑ingestion services.\nNext steps\nExplore document comparison or metadata extraction features. Learn how to extract images from archived files with the same API. Integrate the extracted text into a search index or AI pipeline. Additional Resources GroupDocs.Parser Documentation API Reference Get a Temporary License Sample Projects on GitHub GroupDocs.Parser Blog Category Community Forum ","permalink":"https://blog.groupdocs.com/parser/extract-text-from-zip-rar-archives/","summary":"Learn how to pull plain text from every document inside ZIP or RAR archives with GroupDocs.Parser for .NET. This tutorial covers installation, flat‑archive extraction, recursive processing of nested archives, and tips for reliable results.","title":"How to Extract Text from ZIP/RAR Archives Using GroupDocs.Parser in .NET"},{"content":"What’s new in this release [Improvement] Add support for Chinese and Japanese languages when using OCR (PARSERNET‑2833) A new Languages class has been introduced in the GroupDocs.Parser.Options namespace. GroupDocs.Parser.Options.OcrOptions now includes a Languages Languages property that lets you specify the OCR language set. These updates enable you to run text recognition on documents that contain Chinese or Japanese characters directly through the parser API.\nUsage example // Create an instance of Parser class using (Parser parser = new Parser(documentPath)) { OcrOptions ocrOptions = new OcrOptions() { Language = Language.Jpn // Set OCR language to Japanese }; TextOptions options = new TextOptions(false, true, ocrOptions); TextReader result = parser.GetText(options); string text = result.ReadToEnd(); Console.WriteLine(text); } The same approach works for Chinese by setting Language = Language.Chn (or the appropriate enum value defined in Languages).\nFixes and enhancements No bug fixes or additional enhancements are included in this 26.2 release.\nHow to get the update NuGet – Upgrade to the latest GroupDocs.Parser package via NuGet:\nNuGet\\Install-Package GroupDocs.Parser -Version 26.2.0 NuGet\\Install-Package GroupDocs.Parser.NETFramework -Version 26.2.0 Direct Download – Download the assemblies for .NET from the GroupDocs.Parser for .NET 26.2 page on the GroupDocs releases site:\nhttps://releases.groupdocs.com/parser/net/new-releases/groupdocs.parser-for-.net-26.2-dlls-only/ https://releases.groupdocs.com/parser/net/new-releases/groupdocs.parser-for-.net-26.2/\nResources Full Release Notes Documentation – OCR GroupDocs.Parser Free Support Forum ","permalink":"https://blog.groupdocs.com/parser/groupdocs-parser-for-net-26-2/","summary":"Version 26.2 (Feb 2026) introduces OCR language support for Chinese and Japanese in GroupDocs.Parser for .NET, with usage examples and upgrade guidance.","title":"GroupDocs.Parser for .NET 26.2 – February 2026 Release Highlights"},{"content":"We\u0026rsquo;re happy to announce the release of GroupDocs.Comparison for .NET 26.2, available as of February 2026.\nGroupDocs.Comparison version 26.2 includes multiple improvements to strengthen performance and stability, including enhancements for Word document comparison and a new dedicated options class.\nFixes and enhancements [Enhancement] Significantly improved comparison performance for large-size Word documents. (COMPARISONNET-4684) [Enhancement] Ability to specify ChangeType directly in the GetChanges method. (COMPARISONNET-4548) [Bug] Fixed NullReference exception when comparing Word documents with WordTrackChanges = true. (COMPARISONNET-4688) [Enhancement] New WordCompareOptions class for Word document comparison. (COMPARISONNET-4685) [Bug] Document comparison crashes when Word document contains multi-line field code formula. (COMPARISONNET-4295) Major Features Ability to specify ChangeType directly in the GetChanges method You can now specify ChangeType directly when calling the GetChanges method to filter which types of changes are returned.\nNew WordCompareOptions class for Word document comparison A new WordCompareOptions class has been created specifically for Word document comparison, allowing you to configure Word-specific compare options in a dedicated, type-safe manner.\nusing (var comparer = new Comparer(\u0026#34;source.docx\u0026#34;)) { comparer.Add(\u0026#34;target.docx\u0026#34;); var options = new WordCompareOptions() { DetectStyleChanges = true, DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions }; comparer.Compare(\u0026#34;result.docx\u0026#34;, options); } Public API changes CompareOptions has been refactored to separate document-type-specific settings. Word-specific options are now available in the dedicated WordCompareOptions class (DisplayMode, MarkLineBreaks, CompareBookmarks, and others). These properties remain on CompareOptions but are marked as obsolete and will be removed in a future release. Existing code remains backward compatible.\nHow to get the update You can get the latest version from NuGet or download it directly from the GroupDocs website.\nNuGet GroupDocs.Comparison for .NET 26.2\nDirect download Download assemblies for both .NET and .NET Framework from the GroupDocs.Comparison for .NET 26.2 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-for-net-26-2/","summary":"GroupDocs.Comparison for .NET 26.2 is here.","title":"GroupDocs.Comparison for .NET 26.2 – February 2026 Release Highlights"},{"content":"What’s new in GroupDocs.Editor for Java 26.1 (February 2026) New features ID Description EDITORNET‑2968 Delete slides from a presentation – a new API method lets you remove selected slides before saving. See the delete‑slides documentation. EDITORNET‑2969 Delete worksheet from a spreadsheet – you can now programmatically drop a worksheet from an Excel file. Details in delete‑worksheet documentation. Improvements ID Description EDITORNET‑2933 Rendering of IConnector elements in presentations is now more accurate. EDITORNET‑2934 Added support for HighlightColor on text portions in presentations. EDITORNET‑2935 Geometry figures are rendered as SVG instead of using legacy ClipPath markup, improving quality and browser compatibility. EDITORNET‑2938 Introduced simplified overloads for Editor.save and EditableDocument.fromMarkup, reducing boilerplate when working with markup strings. EDITORNET‑2940 Auto‑format detection during a save operation has been corrected, eliminating false‑positive format guesses. Fixed issues (bugs) ID Description EDITORNET‑2883 Right‑hand truncation of content when converting DOCX to paged HTML. EDITORNET‑2903 Background images were lost during HTML‑to‑Presentation conversion. EDITORNET‑2906 Minor rendering glitches in Presentation‑to‑HTML conversion fixed. EDITORNET‑2927 Drawing lines inside shapes now render correctly. EDITORNET‑2928 Vertical alignment problems in tables within presentations resolved. EDITORNET‑2932 Errors processing images from embedded HTML during HTML‑to‑Presentation conversion eliminated. EDITORNET‑2939 Right‑side text truncation in tables during DOCX‑to‑paged‑HTML conversion fixed. EDITORNET‑3003 HTML tables are now bound to rulesets using class‑selectors rather than ID‑selectors. EDITORJAVA‑1256 Numbered list handling after editing a Word document corrected. EDITORJAVA‑1257 “Undefined” label issue in Word documents removed. Highlighted conversion improvements HTML → Presentation – Table vertical alignment and slide‑background image handling have been tightened, delivering higher fidelity output. Presentation → HTML – SVG conversion for grouped shapes (GroupShape) and image positioning inside shapes are now more reliable. Geometry rendering – SVG is the default format for geometric figures, and old ClipPath code paths have been removed. Getting the update Add the latest GroupDocs.Editor for Java artifact to your project via Maven Central:\n\u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-editor\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;26.1.0\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Or, if you prefer Gradle:\nimplementation \u0026#39;com.groupdocs:groupdocs-editor:26.1.0\u0026#39; The binaries are also available for direct download on the GroupDocs releases page.\nResources Full release notes – (the content above is extracted from the official notes). Product overview – https://docs.groupdocs.com/editor/java/product-overview/ System requirements – https://docs.groupdocs.com/editor/java/system-requirements/ Technical support – https://docs.groupdocs.com/editor/java/technical-support/ Community forum – https://forum.groupdocs.com/c/editor/20 Feel free to reach out through the forum if you encounter any issues or have suggestions for future releases.\n","permalink":"https://blog.groupdocs.com/editor/groupdocs-editor-for-java-26-1/","summary":"Version 26.1 of GroupDocs.Editor for Java introduces APIs to delete slides and worksheets, SVG-based geometry rendering, enhanced highlight support, and a suite of stability improvements.","title":"GroupDocs.Editor for Java 26.1 – February 2026 Release Highlights"},{"content":"We’re happy to announce the release of GroupDocs.Comparison for .NET 26.1, available as of January 2026.\nGroupDocs.Comparison version 26.1 includes multiple improvements to strengthen performance and stability.\nFixes and enhancements [Enhancement] Improved document preview functionality. (COMPARISONNET-4511) [Enhancement] Added dimension settings to preview functionality. (COMPARISONNET-4294) Major Features Added dimension settings to preview functionality When previewing a file, you can now specify dimension settings using the Resolution option.\nstring sourcePath = @\u0026#34;source.pdf\u0026#34;; using (Comparer comparer = new Comparer(sourcePath)) { ReleasePageStream releasePageStreamDelegate = delegate (int number, Stream stream) { stream.Close(); }; PreviewOptions previewOptions = new PreviewOptions(pageNumber =\u0026gt; { string outputFolder = @\u0026#34;c:\\Temp\u0026#34;; var pagePath = Path.Combine(outputFolder, $\u0026#34;result_{pageNumber}.png\u0026#34;); return File.Create(pagePath); }, releasePageStreamDelegate); previewOptions.PreviewFormat = PreviewFormats.PNG; previewOptions.PageNumbers = new int[] {2,3}; previewOptions.Resolution = new PreviewResolution() { HorizontalResolution = 300, VerticalResolution = 300 }; comparer.Source.GeneratePreview(previewOptions); } How to get the update You can get the latest version from NuGet or download it directly from the GroupDocs website.\nNuGet GroupDocs.Comparison for .NET 26.1\nDirect download Download assemblies for both .NET and .NET Framework from the GroupDocs.Comparison for .NET 26.1 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-for-net-26-1/","summary":"GroupDocs.Comparison for .NET 26.1 is here.","title":"GroupDocs.Comparison for .NET 26.1 – January 2026 Release Highlights"},{"content":"What’s new in GroupDocs.Conversion for .NET 26.1 (January 2026) Category Issue Description Feature CONVERSIONNET-8080 Full import and export support for the FlatOpc (Flat XML) format for Word, Excel, and PowerPoint documents. Improvement CONVERSIONNET-4551 Fixed incorrect conversion of PDFs that contain images to Excel worksheets. Improvement CONVERSIONNET-8147 Restored the required Aspose.Drawing assembly, eliminating runtime Could not load file or assembly errors when processing image‑ and Visio‑based files. Improvement CONVERSIONNET-8153 Corrected stamp handling so that stamps are no longer replaced with the literal “Draft” text when MarginSettings are enabled during PDF conversion. Improvement CONVERSIONNET-8157 Fixed diagram watermark resource loading after code obfuscation. Security fix CONVERSIONNET-8164 Patched Server‑Side Request Forgery (SSRF) and NTLM credential‑leak vulnerabilities. The SkipExternalResources property now defaults to true for several load‑option classes. Improvement CONVERSIONNET-8170 Table of Contents is no longer updated automatically unless UpdateFields is explicitly set to true. Improvement CONVERSIONNET-8185 Resolved conversion of Excel FlatOpc files to SVG and SVGZ formats. Major highlights FlatOpc (Flat XML) support – load and save Word, Excel, and PowerPoint files as a single XML representation. Conversion accuracy – reliable Excel FlatOpc → SVG/SVGZ output and correct PDF‑to‑Excel image extraction. Enhanced security – SSRF and NTLM credential leaks are mitigated; external resources are skipped by default. Robust dependencies – the missing Aspose.Drawing dependency is bundled, preventing assembly‑load failures. Predictable document behavior – TOC updates and stamp rendering now respect the explicit conversion settings. Public API changes (backward‑compatible) The Format property of several load‑ and convert‑option classes now accepts new enum values for FlatOpc handling.\nClass Property New enum value WordProcessingLoadOptions Format WordProcessingFileType.FlatOpc SpreadsheetLoadOptions Format SpreadsheetFileType.FlatOpc WordProcessingConvertOptions Format WordProcessingFileType.FlatOpc SpreadsheetConvertOptions Format SpreadsheetFileType.FlatOpc Note: No APIs were removed. Existing code continues to work; simply assign the new FlatOpc enum value where needed.\nCode samples 1. Convert a Word FlatOpc file to PDF using GroupDocs.Conversion; using GroupDocs.Conversion.FileTypes; using GroupDocs.Conversion.Options.Convert; using GroupDocs.Conversion.Options.Load; var loadOptions = new WordProcessingLoadOptions { Format = WordProcessingFileType.FlatOpc }; using (var converter = new Converter(\u0026#34;document.xml\u0026#34;, () =\u0026gt; loadOptions)) { var options = new PdfConvertOptions(); converter.Convert(\u0026#34;output.pdf\u0026#34;, options); } 2. Convert a DOCX file to Word FlatOpc using GroupDocs.Conversion; using GroupDocs.Conversion.FileTypes; using GroupDocs.Conversion.Options.Convert; using (var converter = new Converter(\u0026#34;document.docx\u0026#34;)) { var options = new WordProcessingConvertOptions { Format = WordProcessingFileType.FlatOpc }; converter.Convert(\u0026#34;output.word.xml\u0026#34;, options); } 3. Convert an Excel FlatOpc file to PDF using GroupDocs.Conversion; using GroupDocs.Conversion.FileTypes; using GroupDocs.Conversion.Options.Convert; using GroupDocs.Conversion.Options.Load; var loadOptions = new SpreadsheetLoadOptions { Format = SpreadsheetFileType.FlatOpc }; using (var converter = new Converter(\u0026#34;spreadsheet.xml\u0026#34;, () =\u0026gt; loadOptions)) { var options = new PdfConvertOptions(); converter.Convert(\u0026#34;output.pdf\u0026#34;, options); } 4. Convert an XLSX file to Excel FlatOpc using GroupDocs.Conversion; using GroupDocs.Conversion.FileTypes; using GroupDocs.Conversion.Options.Convert; using (var converter = new Converter(\u0026#34;spreadsheet.xlsx\u0026#34;)) { var options = new SpreadsheetConvertOptions { Format = SpreadsheetFileType.FlatOpc }; converter.Convert(\u0026#34;output.excel.xml\u0026#34;, options); } How to get the update NuGet – Upgrade to the latest package:\nInstall-Package GroupDocs.Conversion -Version 26.1.0 (or update via the NuGet UI in Visual Studio).\nDirect download – Assemblies for .NET 6 / .NET Framework can be downloaded from the official GroupDocs release page once it is published.\nResources Full Release Notes API Reference – WordProcessingLoadOptions API Reference – SpreadsheetLoadOptions Documentation – Converting documents with GroupDocs.Conversion for .NET GroupDocs.Conversion Free Support Forum ","permalink":"https://blog.groupdocs.com/conversion/groupdocs-conversion-for-net-26-1/","summary":"The January 2026 release of GroupDocs.Conversion for .NET 26.1 adds FlatOpc format support, critical security fixes, and several conversion accuracy improvements.","title":"GroupDocs.Conversion for .NET 26.1 – January 2026 Release Highlights"},{"content":"We’re happy to announce GroupDocs.Total for .NET 25.12 – January 2026 GroupDocs.Total 25.12 bundles the latest versions of the individual GroupDocs APIs and introduces GroupDocs.Markdown to the suite. The update is available via NuGet and direct download.\nWhat’s new in this release Product Old version → New version GroupDocs.Annotation 25.11 GroupDocs.Assembly 25.6 → 25.12 GroupDocs.Comparison 25.11 → 25.12 GroupDocs.Conversion 25.11 → 25.12 GroupDocs.Editor 25.11 → 25.12 GroupDocs.Merger 25.11 GroupDocs.Metadata 25.8 GroupDocs.Parser 25.11 → 25.12.1 GroupDocs.Redaction 25.9 → 25.12 GroupDocs.Search 25.11 GroupDocs.Signature 25.6 → 25.12 GroupDocs.Viewer 25.11 → 25.12 GroupDocs.Watermark 25.11 GroupDocs.Markdown 25.9 (newly added) New component – GroupDocs.Markdown GroupDocs.Markdown allows you to export PDF, Word, Excel and other popular formats to Markdown. This makes it easy to generate lightweight, version‑controlled documentation from existing files.\nProduct home: https://products.groupdocs.com/markdown/net/ Documentation: https://docs.groupdocs.com/markdown/ Code examples: https://github.com/groupdocs-markdown/GroupDocs.Markdown-for-.NET Fixes \u0026amp; enhancements Issue / Key Category Description TOTALNET‑315 Enhancement Added GroupDocs.Markdown to the GroupDocs.Total package (now included in the 25.12 bundle). No bug‑fixes were reported for this release; the primary change is the inclusion of the new Markdown component.\nHow to get the update NuGet Upgrade the appropriate Total package to 25.12:\nTarget framework Package Install command .NET 6+ (net6.0) GroupDocs.Total dotnet add package GroupDocs.Total --version 25.12 .NET Framework 4.6.2+ GroupDocs.Total.NETFramework Install-Package GroupDocs.Total.NETFramework -Version 25.12 Direct download Download the compiled assemblies (both .NET 6 and .NET Framework) from the GroupDocs.Total 25.12 release page.\nAdditional resources Full release notes – see the individual product pages linked in the table above. Product overview – https://docs.groupdocs.com/total/net/product-overview/ System requirements – https://docs.groupdocs.com/total/net/system-requirements/ Technical support – https://docs.groupdocs.com/total/net/technical-support/ Feedback We welcome your input! If you have questions, encounter issues, or have suggestions, please post them in our Free Support Forum. Our team will respond as quickly as possible.\n","permalink":"https://blog.groupdocs.com/total/groupdocs-total-for-net-25-12/","summary":"GroupDocs.Total for .NET 25.12 introduces the new GroupDocs.Markdown component and updates across the suite, available now.","title":"GroupDocs.Total for .NET 25.12 – January 2026 Release Highlights"},{"content":"When working with Excel spreadsheets, tracking changes across multiple versions becomes essential for data validation, auditing, and collaborative workflows. Manual inspection is error-prone and doesn\u0026rsquo;t scale, especially with large workbooks containing hundreds of rows and complex formulas. GroupDocs.Comparison for .NET enables programmatic Excel spreadsheet comparison with advanced cell-by-cell analysis, custom styling, and comprehensive change tracking. This guide demonstrates how to implement sophisticated Excel comparison workflows using GroupDocs.Comparison\u0026rsquo;s powerful API.\nWhat Is Excel Spreadsheet Comparison? Excel spreadsheet comparison identifies and highlights differences between two Excel workbooks at the cell level. Unlike text-based diff tools that treat spreadsheets as binary files, GroupDocs.Comparison understands the Excel format structure and detects:\nCell insertions: Newly added cells or rows Cell deletions: Removed cells or rows Cell modifications: Changed values, formulas, or formatting Structural changes: Added or removed worksheets, columns, or rows Formatting differences: Style, color, font, and alignment changes GroupDocs.Comparison provides a high-level .NET API that automatically detects these differences and renders them in a new workbook with customizable visual indicators.\nCommon Use Cases for Excel Comparison GroupDocs.Comparison handles various Excel comparison scenarios:\nFinancial auditing: Compare budget versions, financial reports, and accounting spreadsheets Data validation: Verify data accuracy during migrations or system updates Version control: Track changes across multiple spreadsheet versions Compliance reporting: Audit changes for regulatory compliance Collaborative editing: Review changes made by multiple team members Report generation: Create change summaries for stakeholders CI/CD pipelines: Automated change detection in Excel-based workflows All these scenarios benefit from GroupDocs.Comparison\u0026rsquo;s cell-level detection and customizable output formatting.\nGroupDocs.Comparison Excel Comparison Features GroupDocs.Comparison for .NET provides comprehensive features for Excel spreadsheet comparison:\nNote: The complete working project with all code examples is available in the GitHub repository. You can clone, run, and customize the examples to suit your needs.\nCell-by-Cell Analysis GroupDocs.Comparison performs granular cell-level comparison, detecting insertions, deletions, and modifications with precision. The API understands Excel\u0026rsquo;s structure, including formulas, formatting, and metadata.\nCustom Styling Options GroupDocs.Comparison\u0026rsquo;s StyleSettings class allows you to customize the visual appearance of different change types:\nInsertedItemStyle: Customize appearance of newly added cells DeletedItemStyle: Style removed cells ChangedItemStyle: Format modified cells Font colors, bold, italic, underline: Full formatting control Summary Page Generation GroupDocs.Comparison can automatically generate a summary page listing all detected changes, providing a quick overview of modifications without examining each cell individually.\nVisibility Controls GroupDocs.Comparison provides fine-grained control over what appears in the comparison result:\nShowInsertedContent: Show or hide inserted cells ShowDeletedContent: Show or hide deleted cells LeaveGaps: Preserve document structure by leaving gaps for deleted content Multi-Format Support GroupDocs.Comparison supports Excel formats (XLSX, XLS) along with Word, PDF, PowerPoint, images, and more. The API handles format-specific optimizations automatically.\nSource and Target Files The following images show the source and target Excel files. At first glance, they appear identical, but GroupDocs.Comparison will detect subtle differences at the cell level.\nSource Excel spreadsheet containing the original data.\nTarget Excel spreadsheet with modifications that need to be identified.\nCode Example: Excel Comparison with GroupDocs.Comparison This example demonstrates GroupDocs.Comparison\u0026rsquo;s Excel comparison capabilities:\nStep 1: Basic Excel Comparison First, perform a basic comparison using default settings:\nusing GroupDocs.Comparison; using GroupDocs.Comparison.Options; private static void BasicComparison(string sourcePath, string targetPath, string resultPath) { EnsureFileExists(sourcePath, \u0026#34;source Excel file\u0026#34;); EnsureFileExists(targetPath, \u0026#34;target Excel file\u0026#34;); using (var comparer = new Comparer(sourcePath)) { comparer.Add(targetPath); comparer.Compare(resultPath); } Console.WriteLine(\u0026#34;Basic comparison completed.\u0026#34;); } This code uses GroupDocs.Comparison\u0026rsquo;s Comparer class to compare two Excel files with default styling, highlighting all differences automatically.\nBasic comparison result showing all detected differences with default formatting. Inserted cells are highlighted in one color, deleted cells in another, and modified cells in a third color.\nThe basic comparison provides a comprehensive view of all changes, making it ideal for initial analysis and quick change detection.\nStep 2: Styled Comparison with Custom Formatting Next, apply custom styling and generate a summary page:\nprivate static void StyledComparison(string sourcePath, string targetPath, string resultPath) { EnsureFileExists(sourcePath, \u0026#34;source Excel file\u0026#34;); EnsureFileExists(targetPath, \u0026#34;target Excel file\u0026#34;); var compareOptions = new CompareOptions { InsertedItemStyle = new StyleSettings() { FontColor = System.Drawing.Color.Green, IsUnderline = true, IsBold = true, IsItalic = true }, DeletedItemStyle = new StyleSettings() { FontColor = System.Drawing.Color.Brown, IsUnderline = true, IsBold = true, IsItalic = true }, ChangedItemStyle = new StyleSettings() { FontColor = System.Drawing.Color.Firebrick, IsUnderline = true, IsBold = true, IsItalic = true }, GenerateSummaryPage = true, ShowDeletedContent = false, }; using (var comparer = new Comparer(sourcePath)) { comparer.Add(targetPath); comparer.Compare(resultPath, compareOptions); } Console.WriteLine(\u0026#34;Styled comparison completed (changes highlighted, summary page generated).\u0026#34;); } This example demonstrates GroupDocs.Comparison\u0026rsquo;s CompareOptions and StyleSettings classes for custom formatting. Inserted cells appear in green, deleted cells in brown, and changed cells in firebrick, all with bold, italic, and underline formatting.\nStep 3: Visibility Controls GroupDocs.Comparison provides visibility controls for focused analysis:\n// Hide inserted content - focus on deletions and modifications private static void HideInsertedContentComparison(string sourcePath, string targetPath, string resultPath) { var compareOptions = new CompareOptions { ShowInsertedContent = false }; using (var comparer = new Comparer(sourcePath)) { comparer.Add(targetPath); comparer.Compare(resultPath, compareOptions); } } // Hide deleted content - focus on additions and modifications private static void HideDeletedContentComparison(string sourcePath, string targetPath, string resultPath) { var compareOptions = new CompareOptions { ShowDeletedContent = false }; using (var comparer = new Comparer(sourcePath)) { comparer.Add(targetPath); comparer.Compare(resultPath, compareOptions); } } // Leave gaps for deleted content - preserve document structure private static void LeaveGapsComparison(string sourcePath, string targetPath, string resultPath) { var compareOptions = new CompareOptions { LeaveGaps = true }; using (var comparer = new Comparer(sourcePath)) { comparer.Add(targetPath); comparer.Compare(resultPath, compareOptions); } } // Hide both inserted and deleted content - show only modifications private static void HideBothContentComparison(string sourcePath, string targetPath, string resultPath) { var compareOptions = new CompareOptions { ShowInsertedContent = false, ShowDeletedContent = false, LeaveGaps = true }; using (var comparer = new Comparer(sourcePath)) { comparer.Add(targetPath); comparer.Compare(resultPath, compareOptions); } } These examples demonstrate GroupDocs.Comparison\u0026rsquo;s flexible visibility controls, allowing you to customize the comparison output based on your analysis needs.\nComparison Results: Hiding Content GroupDocs.Comparison can hide specific change types to focus your analysis. The following shows results when hiding inserted and deleted content separately.\nComparison result with inserted content hidden, focusing on deletions and modifications.\nComparison result with deleted content hidden, focusing on insertions and modifications.\nComparison Results: Leaving Gaps When preserving document structure is important, GroupDocs.Comparison can leave gaps where content was deleted.\nComparison result with gaps left for deleted content, preserving the original document structure and layout.\nComparison Results: Styled Comparison Finally, GroupDocs.Comparison\u0026rsquo;s styled comparison with custom formatting and summary page provides comprehensive change tracking.\nStyled comparison result with custom formatting: green for insertions, brown for deletions, firebrick for modifications, and a summary page for quick review.\nWhy GroupDocs.Comparison Outperforms Manual and Basic Approaches Manual Comparison Limitations Manual Excel review doesn\u0026rsquo;t scale. Comparing two large spreadsheets manually takes hours and is prone to errors. GroupDocs.Comparison automates this process, completing comparisons in seconds with 100% accuracy.\nExcel Built-in Limitations Excel\u0026rsquo;s \u0026ldquo;Track Changes\u0026rdquo; feature has significant limitations:\nRequires shared workbooks: Cannot be used in standard workbooks No automation: Manual activation and review required Limited formatting: Basic change indicators only No programmatic access: Cannot integrate into automated workflows Version conflicts: Difficult to manage across multiple versions GroupDocs.Comparison addresses these limitations with a programmatic API that works with any Excel file and integrates seamlessly into automated workflows.\nText Diff Tool Failures Standard text diff tools fail with Excel files because they:\nTreat files as binary: No understanding of Excel structure Can\u0026rsquo;t handle formatting: Ignore cell styles, colors, and formatting Miss formulas: Don\u0026rsquo;t understand Excel formulas and calculations No structure awareness: Cannot detect worksheet, row, or column changes Metadata blind: Ignore Excel metadata and properties GroupDocs.Comparison understands Excel\u0026rsquo;s format and detects changes at multiple levels: cell values, formulas, formatting, structure, and metadata.\nGroupDocs.Comparison Advantages GroupDocs.Comparison provides comprehensive Excel comparison capabilities:\nFormat-aware comparison: Understands Excel structure and semantics Cell-level precision: Detects changes at individual cell level Custom styling: Full control over visual appearance of changes Summary pages: Automatic generation of change summaries Visibility controls: Show or hide specific change types Programmatic API: Integrate into automated workflows Multi-format support: Compare Excel along with Word, PDF, PowerPoint, and more Real-World Excel Comparison Scenarios Financial Auditing Workflow GroupDocs.Comparison enables automated financial auditing:\n// Compare budget versions with custom styling var auditOptions = new CompareOptions { InsertedItemStyle = new StyleSettings() { FontColor = System.Drawing.Color.Red, // Highlight new expenses IsBold = true }, ChangedItemStyle = new StyleSettings() { FontColor = System.Drawing.Color.Orange, // Highlight modifications IsBold = true }, GenerateSummaryPage = true }; using (var comparer = new Comparer(\u0026#34;budget_v1.xlsx\u0026#34;)) { comparer.Add(\u0026#34;budget_v2.xlsx\u0026#34;); comparer.Compare(\u0026#34;audit_report.xlsx\u0026#34;, auditOptions); } This workflow automatically generates audit reports highlighting budget changes, making financial reviews efficient and accurate.\nData Migration Validation GroupDocs.Comparison verifies data accuracy during migrations:\n// Compare source and migrated data var validationOptions = new CompareOptions { ShowInsertedContent = false, // Focus on missing data ShowDeletedContent = false, // Focus on extra data LeaveGaps = true // Preserve structure }; using (var comparer = new Comparer(\u0026#34;source_data.xlsx\u0026#34;)) { comparer.Add(\u0026#34;migrated_data.xlsx\u0026#34;); comparer.Compare(\u0026#34;validation_report.xlsx\u0026#34;, validationOptions); } This approach ensures data integrity by identifying discrepancies between source and migrated data.\nCollaborative Editing Review GroupDocs.Comparison tracks changes in collaborative environments:\n// Review changes from multiple contributors var reviewOptions = new CompareOptions { InsertedItemStyle = new StyleSettings() { FontColor = System.Drawing.Color.Green, IsBold = true }, DeletedItemStyle = new StyleSettings() { FontColor = System.Drawing.Color.Red, IsStrikethrough = true }, ChangedItemStyle = new StyleSettings() { FontColor = System.Drawing.Color.Blue, IsUnderline = true }, GenerateSummaryPage = true }; using (var comparer = new Comparer(\u0026#34;original.xlsx\u0026#34;)) { comparer.Add(\u0026#34;collaborative_version.xlsx\u0026#34;); comparer.Compare(\u0026#34;review_report.xlsx\u0026#34;, reviewOptions); } This workflow provides clear visual indicators of all changes, making collaborative review efficient.\nAdvanced GroupDocs.Comparison Features License Management GroupDocs.Comparison requires a license for production use:\nprivate static void ApplyLicense() { string licensePath = \u0026#34;path to your license file\u0026#34;; License license = new License(); license.SetLicense(licensePath); } Apply the license before performing comparisons to enable full functionality. Without a license, GroupDocs.Comparison operates in evaluation mode with limitations.\nError Handling GroupDocs.Comparison provides robust error handling:\nprivate static void EnsureFileExists(string path, string description) { if (!File.Exists(path)) { throw new FileNotFoundException($\u0026#34;The {description} was not found. Path: {path}\u0026#34;, path); } } Validate file existence before comparison operations to prevent runtime errors and provide clear error messages.\nBatch Processing GroupDocs.Comparison supports batch processing for multiple Excel files:\nvar excelFiles = Directory.GetFiles(\u0026#34;source\u0026#34;, \u0026#34;*.xlsx\u0026#34;); var targetFiles = Directory.GetFiles(\u0026#34;target\u0026#34;, \u0026#34;*.xlsx\u0026#34;); foreach (var sourceFile in excelFiles) { var fileName = Path.GetFileName(sourceFile); var targetFile = Path.Combine(\u0026#34;target\u0026#34;, fileName); if (File.Exists(targetFile)) { using (var comparer = new Comparer(sourceFile)) { comparer.Add(targetFile); comparer.Compare(Path.Combine(\u0026#34;output\u0026#34;, $\u0026#34;comparison_{fileName}\u0026#34;)); } } } This approach enables automated batch comparison of entire directories of Excel files.\nWhen to Use GroupDocs.Comparison GroupDocs.Comparison is ideal for:\nEnterprise applications: Document management and version control systems Financial systems: Budget tracking, auditing, and reporting Data migration tools: Validation and verification workflows Collaborative platforms: Change tracking and review systems CI/CD pipelines: Automated document change detection Compliance systems: Regulatory auditing and reporting Reporting tools: Automated change summary generation Best Practices for Excel Comparison 1. Choose Appropriate Visibility Settings Select visibility controls based on your analysis needs:\nFull comparison: Show all changes for comprehensive review Focused analysis: Hide specific change types to focus on relevant modifications Structure preservation: Use LeaveGaps to maintain document layout 2. Customize Styling for Clarity Use distinct colors and formatting for different change types:\nInsertions: Green or blue for new content Deletions: Red or brown for removed content Modifications: Orange or yellow for changed content 3. Generate Summary Pages Enable summary page generation for quick change overview:\ncompareOptions.GenerateSummaryPage = true; Summary pages provide a high-level view of all changes without examining individual cells.\n4. Validate Input Files Always validate file existence before comparison:\nEnsureFileExists(sourcePath, \u0026#34;source Excel file\u0026#34;); EnsureFileExists(targetPath, \u0026#34;target Excel file\u0026#34;); This prevents runtime errors and provides clear error messages.\n5. Handle Large Files Efficiently For large Excel files, consider:\nProcessing in batches Using appropriate visibility settings to reduce output size Disabling summary pages if not needed for performance Conclusion GroupDocs.Comparison for .NET provides powerful features for Excel spreadsheet comparison with advanced cell-by-cell analysis. The API enables programmatic comparison with custom styling, summary pages, and flexible visibility controls, making it ideal for financial auditing, data validation, version control, and collaborative workflows.\nKey GroupDocs.Comparison advantages:\nCell-level precision: Detects changes at individual cell level Custom styling: Full control over visual appearance of changes Summary pages: Automatic generation of change summaries Visibility controls: Show or hide specific change types Programmatic API: Integrate into automated workflows Multi-format support: Compare Excel along with Word, PDF, PowerPoint, and more Production-ready: Robust error handling and file validation With GroupDocs.Comparison, you can transform Excel comparison from manual inspection into an automated, scalable process that provides accurate, visually clear change tracking for enterprise workflows.\nSee Also GroupDocs.Comparison Documentation\nAPI Reference\nAdditional Articles\nGroupDocs.Comparison for .NET free NuGet download\nGroupDocs.Comparison for Java free Maven download\nGroupDocs.Comparison for Node.js via Java free NPM download\nDownload a Free Trial You can download a free trial of GroupDocs.Comparison from the releases page. Additionally, to test the library without restrictions, consider acquiring a temporary license at GroupDocs Temporary License.\nWith GroupDocs.Comparison for .NET, integrating advanced Excel comparison capabilities into your applications has never been easier. Start enhancing your document processing workflow today!\n","permalink":"https://blog.groupdocs.com/comparison/compare-excel-spreadsheets-advanced-cell-by-cell-analysis-csharp/","summary":"Discover how to programmatically compare Excel spreadsheets with advanced features using GroupDocs.Comparison for .NET. This technical guide shows cell-by-cell analysis, custom styling, summary pages, and visibility controls for comprehensive Excel document comparison in C#.","title":"Compare Excel Spreadsheets: Advanced Cell-by-Cell Analysis with C#"},{"content":"Legal professionals spend significant time comparing contract versions, tracking changes in legal documents, and ensuring accuracy across multiple document revisions. Manual comparison is time-consuming, error-prone, and doesn\u0026rsquo;t scale for high-volume legal workflows. A legal document comparison API provides programmatic document comparison capabilities that automate contract review processes, reduce human error, and enable integration into legal technology systems.\nWhat Is Legal Document Comparison? Legal document comparison is the process of identifying differences between two or more versions of legal documents, such as contracts, agreements, or legal briefs. This includes detecting text changes, structural modifications, formatting differences, and content additions or deletions. For legal professionals, accurate comparison is critical because even minor changes can have significant legal implications.\nDocument comparison for legal use cases involves:\nText-level changes: Added, deleted, or modified clauses, terms, and conditions Structural changes: Reordered sections, new paragraphs, or removed sections Formatting changes: Style modifications that might indicate emphasis or importance Metadata changes: Document properties, dates, or version information Traditional manual comparison requires lawyers to read through documents line by line, which is inefficient and increases the risk of missing critical changes. Programmatic document comparison automates this process, providing accurate, consistent results that can be integrated into legal workflows.\nCommon Legal Use Cases Legal document comparison APIs serve multiple purposes in legal practice:\nContract negotiation tracking: Compare contract versions during negotiations to identify what changed between rounds Compliance verification: Ensure documents meet regulatory requirements by comparing against templates or previous compliant versions Due diligence: Review multiple document versions during mergers, acquisitions, or legal audits Version control: Track changes across document revisions for case management and record-keeping Document review automation: Automate initial review processes to flag significant changes for attorney attention Audit trail generation: Create detailed change reports for legal documentation and compliance purposes How GroupDocs.Comparison Solves Legal Document Comparison GroupDocs.Comparison for Node.js via Java is a document comparison API that enables programmatic comparison of legal documents. The API supports multiple document formats commonly used in legal practice, including Word documents (DOCX, DOC), PDF files, and other formats. It provides backend integration capabilities, allowing legal technology systems to automate document comparison workflows.\nThe API detects changes at multiple levels: paragraphs, words, characters, formatting, and document structure. It generates comparison reports that highlight differences with color-coded annotations, making it easy for legal professionals to review changes quickly. The comparison results can be saved in various formats, and the API supports password-protected documents, which is important for maintaining client confidentiality.\nGroupDocs.Comparison operates as a backend API, meaning it can be integrated into existing legal technology platforms, document management systems, or custom applications without requiring client-side software installation. This makes it suitable for server-side automation, batch processing, and integration into legal workflow systems.\nCode Example: Comparing Contract Versions The following example demonstrates how to compare two Word documents representing contract versions using GroupDocs.Comparison for Node.js:\nconst groupdocs = require(\u0026#39;@groupdocs/groupdocs.comparison\u0026#39;); const path = require(\u0026#39;path\u0026#39;); async function compareContractVersions() { // Define paths to contract versions const originalContract = path.join(__dirname, \u0026#39;contracts\u0026#39;, \u0026#39;contract_v1.docx\u0026#39;); const revisedContract = path.join(__dirname, \u0026#39;contracts\u0026#39;, \u0026#39;contract_v2.docx\u0026#39;); const comparisonReport = path.join(__dirname, \u0026#39;output\u0026#39;, \u0026#39;contract_comparison.docx\u0026#39;); // Initialize comparer with original contract const comparer = new groupdocs.Comparer(originalContract); // Add revised contract for comparison comparer.add(revisedContract); // Perform comparison and save result await comparer.compare(comparisonReport); console.log(\u0026#39;Contract comparison complete. Report saved to:\u0026#39;, comparisonReport); } compareContractVersions().catch(console.error); Demonstration of GroupDocs.Comparison basic contract comparison showing detected differences between contract versions with default color coding (blue for inserted, red for deleted, green for modified content).\nThis code loads two Word documents, compares them programmatically, and generates a result document that highlights all differences. The result document shows inserted content in blue, deleted content in red, and modified content in green, providing a clear visual representation of changes between contract versions.\nAdvanced Comparison with Custom Styling For legal review workflows, you may need custom styling to match firm standards or improve readability. The following example demonstrates how to configure custom styles for different types of changes:\nconst groupdocs = require(\u0026#39;@groupdocs/groupdocs.comparison\u0026#39;); const java = require(\u0026#39;java\u0026#39;); const Color = java.import(\u0026#39;java.awt.Color\u0026#39;); const path = require(\u0026#39;path\u0026#39;); async function compareContractsWithCustomStyles() { const originalContract = path.join(__dirname, \u0026#39;contracts\u0026#39;, \u0026#39;contract_v1.docx\u0026#39;); const revisedContract = path.join(__dirname, \u0026#39;contracts\u0026#39;, \u0026#39;contract_v2.docx\u0026#39;); const comparisonReport = path.join(__dirname, \u0026#39;output\u0026#39;, \u0026#39;contract_comparison_styled.docx\u0026#39;); const comparer = new groupdocs.Comparer(originalContract); comparer.add(revisedContract); // Create comparison options with custom styling const compareOptions = new groupdocs.CompareOptions(); // Style for inserted content (new clauses) const insertedStyle = new groupdocs.StyleSettings(); insertedStyle.setHighlightColor(Color.BLUE); insertedStyle.setFontColor(Color.BLUE); insertedStyle.setBold(true); insertedStyle.setUnderline(true); compareOptions.setInsertedItemStyle(insertedStyle); // Style for deleted content (removed clauses) const deletedStyle = new groupdocs.StyleSettings(); deletedStyle.setHighlightColor(Color.RED); deletedStyle.setFontColor(Color.RED); deletedStyle.setStrikethrough(true); deletedStyle.setBold(true); compareOptions.setDeletedItemStyle(deletedStyle); // Style for changed content (modified clauses) const changedStyle = new groupdocs.StyleSettings(); changedStyle.setHighlightColor(Color.GREEN); changedStyle.setFontColor(Color.GREEN); changedStyle.setUnderline(true); compareOptions.setChangedItemStyle(changedStyle); // Generate summary page for quick overview compareOptions.setGenerateSummaryPage(true); // Perform comparison with custom options await comparer.compare(comparisonReport, compareOptions); console.log(\u0026#39;Styled comparison complete. Report saved to:\u0026#39;, comparisonReport); } compareContractsWithCustomStyles().catch(console.error); Demonstration of GroupDocs.Comparison with custom styling showing bold, underlined, and strikethrough formatting for different change types, along with the summary page overview.\nThis example configures specific visual styles for different change types, making it easier for legal professionals to quickly identify the nature of changes. The summary page provides an overview of all changes, which is useful for high-level review before detailed examination.\nComparing Password-Protected Legal Documents Legal documents often require password protection for confidentiality. GroupDocs.Comparison supports comparing password-protected documents:\nconst groupdocs = require(\u0026#39;@groupdocs/groupdocs.comparison\u0026#39;); const path = require(\u0026#39;path\u0026#39;); async function compareProtectedContracts() { const protectedContract1 = path.join(__dirname, \u0026#39;contracts\u0026#39;, \u0026#39;contract_v1_protected.docx\u0026#39;); const protectedContract2 = path.join(__dirname, \u0026#39;contracts\u0026#39;, \u0026#39;contract_v2_protected.docx\u0026#39;); const comparisonReport = path.join(__dirname, \u0026#39;output\u0026#39;, \u0026#39;protected_contract_comparison.docx\u0026#39;); // Create load options with passwords const sourceLoadOptions = new groupdocs.LoadOptions(\u0026#39;contract_password_1\u0026#39;); const targetLoadOptions = new groupdocs.LoadOptions(\u0026#39;contract_password_2\u0026#39;); // Initialize comparer with password-protected source document const comparer = new groupdocs.Comparer(protectedContract1, sourceLoadOptions); // Add password-protected target document comparer.add(protectedContract2, targetLoadOptions); // Perform comparison await comparer.compare(comparisonReport); console.log(\u0026#39;Protected contract comparison complete.\u0026#39;); } compareProtectedContracts().catch(console.error); This capability is essential for legal workflows where documents must remain protected during the comparison process, maintaining client confidentiality while enabling automated review.\nComparison with Manual Review Processes Manual contract comparison requires attorneys to read through documents sequentially, comparing each section manually. This approach has several limitations:\nTime consumption: Manual comparison of lengthy contracts can take hours Human error: Easy to miss subtle changes, especially in complex legal language Inconsistency: Different reviewers may identify different changes Scalability: Manual processes don\u0026rsquo;t scale for high-volume document review No audit trail: Manual comparison doesn\u0026rsquo;t generate standardized change reports Generic text diff tools are designed for plain text files and don\u0026rsquo;t handle Word document formatting, structure, or legal document complexities. They also don\u0026rsquo;t preserve document formatting in results, making them unsuitable for legal review.\nProgrammatic document comparison APIs address these limitations by providing automated, consistent comparison that detects all changes, generates standardized reports, and integrates into legal technology workflows. This enables legal professionals to focus on analyzing changes rather than identifying them.\nPerformance, Accuracy, and Automation Benefits Automated legal document comparison provides several advantages over manual processes:\nAutomation: Document comparison APIs can process multiple document pairs automatically, enabling batch processing of contract reviews, due diligence document sets, or compliance verification tasks. This automation reduces the time required for initial document review.\nAccuracy: Programmatic comparison detects all changes, including subtle modifications that might be missed during manual review. The API analyzes documents at character, word, paragraph, and structural levels, ensuring comprehensive change detection.\nScalability: Backend APIs can handle high-volume document comparison workloads, processing hundreds or thousands of document pairs without requiring proportional increases in human resources.\nIntegration: Document comparison APIs integrate into existing legal technology systems, document management platforms, and workflow automation tools. This enables seamless integration into legal practice workflows.\nAudit trails: Automated comparison generates detailed change reports that serve as audit trails, documenting what changed between document versions. These reports are useful for compliance, case management, and record-keeping purposes.\nWhen to Use GroupDocs.Comparison for Legal Workflows GroupDocs.Comparison for Node.js is suitable for various legal technology scenarios:\nBackend services: Integrate document comparison into server-side legal applications, document management systems, or legal workflow platforms. The API operates without requiring client-side software installation.\nBatch processing: Automate comparison of multiple document pairs for due diligence, compliance reviews, or contract negotiation tracking. The API can process documents programmatically without manual intervention.\nDocument management integration: Integrate comparison capabilities into existing legal document management systems, enabling automated change tracking and version control.\nWorkflow automation: Incorporate document comparison into automated legal workflows, such as contract review pipelines, compliance verification processes, or document approval workflows.\nOn-premise or cloud deployment: The API can be deployed on-premise for organizations with strict data security requirements, or integrated into cloud-based legal technology platforms.\nCompliance and Security Considerations For legal document comparison, security and compliance are critical. GroupDocs.Comparison supports password-protected documents, enabling comparison of confidential legal documents while maintaining protection. The API operates as a backend service, allowing organizations to maintain control over document processing and storage.\nWhen integrating document comparison into legal workflows, consider data handling requirements, document retention policies, and compliance with legal industry regulations. The API\u0026rsquo;s backend architecture enables organizations to maintain control over document processing and ensure compliance with data security requirements.\nConclusion Legal document comparison APIs automate contract review processes, reduce human error, and enable integration into legal technology systems. GroupDocs.Comparison for Node.js via Java provides programmatic document comparison capabilities that detect changes at multiple levels, generate detailed comparison reports, and support password-protected documents. For legal professionals managing high-volume document review workflows, programmatic comparison offers a scalable, accurate alternative to manual processes.\nThe legal document comparison API enables legal technology systems to automate initial document review, track changes across contract versions, and generate audit trails for compliance and record-keeping. By integrating document comparison into legal workflows, organizations can improve efficiency, reduce costs, and maintain accuracy in document review processes.\nSee Also GroupDocs.Comparison Documentation\nAPI Reference\nAdditional Articles\nGroupDocs.Comparison for .NET free NuGet download\nGroupDocs.Comparison for Java free Maven download\nGroupDocs.Comparison for Node.js via Java free NPM download\nDownload a Free Trial You can download a free trial of GroupDocs.Comparison from the releases page. Additionally, to test the library without restrictions, consider acquiring a temporary license at GroupDocs Temporary License.\nWith GroupDocs.Comparison for Node.js, integrating advanced document comparison capabilities into your applications has never been easier. Start enhancing your document processing workflow today!\n","permalink":"https://blog.groupdocs.com/comparison/legal-document-comparison-api-contract-review-automation-nodejs/","summary":"Automate legal document comparison and contract review workflows using GroupDocs.Comparison API for Node.js. This guide shows how to programmatically compare contract versions, track changes, and generate review reports for legal professionals.","title":"Legal Document Comparison API: Automate Contract Review with Node.js"},{"content":"When processing thousands of documents, sequential comparison becomes a bottleneck. GroupDocs.Comparison for Node.js via Java enables document comparison performance optimization through batch processing, parallel execution, and configurable API settings. This guide demonstrates how to scale document comparison operations to handle millions of files efficiently using GroupDocs.Comparison\u0026rsquo;s built-in performance features.\nWhat Is Document Comparison Performance Optimization? Performance optimization improves document comparison speed and throughput. Instead of processing documents one-by-one, you process multiple documents simultaneously using parallel execution and batch processing techniques.\nGroupDocs.Comparison provides several optimization features:\nParallel batch processing: Compare multiple document pairs simultaneously Configurable comparison options: Tune sensitivity and features for speed Efficient resource management: Control memory and CPU usage Scalable architecture: Handle large volumes without performance degradation In real-world testing with GroupDocs.Comparison, processing 25 Word documents sequentially takes 3.09 seconds (8.1 documents per second). With parallel processing, the same batch completes faster by utilizing multiple CPU cores simultaneously.\nCommon Use Cases for High-Volume Document Comparison GroupDocs.Comparison handles high-volume scenarios:\nVersion control: Compare thousands of document versions Compliance auditing: Batch process documents against templates Content migration: Verify accuracy during system migrations CI/CD pipelines: Automated document change detection Legal review: Process large volumes of contracts and agreements Content management: Synchronize and verify documents across systems All these scenarios benefit from GroupDocs.Comparison\u0026rsquo;s batch processing and parallel execution capabilities.\nGroupDocs.Comparison Performance Features GroupDocs.Comparison for Node.js via Java provides built-in features for performance optimization:\nBatch Processing Support GroupDocs.Comparison\u0026rsquo;s Comparer class efficiently handles multiple document pairs. You can process entire directories of documents programmatically, with automatic file pairing and result management.\nParallel Execution Capabilities The API supports parallel comparison execution. You can configure concurrency levels to match your system resources. GroupDocs.Comparison handles thread management internally, making parallel processing straightforward to implement.\nConfigurable Comparison Options GroupDocs.Comparison\u0026rsquo;s CompareOptions class provides performance tuning:\nSensitivityOfComparison: Adjust from 0-100 (lower = faster, less accurate) GenerateSummaryPage: Control summary generation for faster processing DetectStyleChanges: Disable style detection when not needed Multi-Format Support GroupDocs.Comparison supports Word (DOCX, DOC), PDF, Excel, PowerPoint, images, emails, and more. The API handles format-specific optimizations automatically, ensuring efficient processing across different document types.\nServer-Side Architecture GroupDocs.Comparison operates as a backend API, ideal for server-side batch processing. No client-side installation required, making it perfect for cloud deployments and automated workflows.\nCode Example: Parallel Batch Comparison with GroupDocs.Comparison This example demonstrates GroupDocs.Comparison\u0026rsquo;s parallel batch processing capabilities:\nStep 1: Single Document Comparison First, create a function to compare a single document pair using GroupDocs.Comparison:\nconst groupdocs = require(\u0026#39;@groupdocs/groupdocs.comparison\u0026#39;); async function compareWordPair(sourcePath, targetPath, outputPath, options = {}) { const startTime = Date.now(); try { // GroupDocs.Comparison Comparer initialization const comparer = new groupdocs.Comparer(sourcePath); comparer.add(targetPath); // Use GroupDocs.Comparison CompareOptions for optimization const compareOptions = options.compareOptions || null; if (compareOptions) { await comparer.compare(outputPath, compareOptions); } else { await comparer.compare(outputPath); } return { success: true, duration: Date.now() - startTime, outputPath }; } catch (error) { return { success: false, duration: Date.now() - startTime, error: error.message }; } } Step 2: Parallel Batch Processing Next, implement parallel batch processing to handle multiple documents:\nasync function compareBatchParallel(documentPairs, options = {}, concurrency = 5) { const startTime = Date.now(); const results = []; // Process batches with controlled concurrency for (let i = 0; i \u0026lt; documentPairs.length; i += concurrency) { const batch = documentPairs.slice(i, i + concurrency); const batchResults = await Promise.all( batch.map(pair =\u0026gt; compareWordPair( pair.source, pair.target, pair.output, options )) ); results.push(...batchResults); } const totalDuration = Date.now() - startTime; const succeeded = results.filter(r =\u0026gt; r.success).length; const throughput = (succeeded / (totalDuration / 1000)).toFixed(2); return { total: documentPairs.length, succeeded, failed: documentPairs.length - succeeded, totalDuration, throughput: `${throughput} documents/second`, results }; } Step 3: Usage Example Finally, use GroupDocs.Comparison with optimized settings:\nasync function main() { const documentPairs = [ { source: \u0026#39;source/doc1.docx\u0026#39;, target: \u0026#39;target/doc1.docx\u0026#39;, output: \u0026#39;output/result1.docx\u0026#39; }, { source: \u0026#39;source/doc2.docx\u0026#39;, target: \u0026#39;target/doc2.docx\u0026#39;, output: \u0026#39;output/result2.docx\u0026#39; } ]; // Configure GroupDocs.Comparison CompareOptions for performance const compareOptions = new groupdocs.CompareOptions(); compareOptions.setSensitivityOfComparison(75); // Performance tuning compareOptions.setGenerateSummaryPage(true); const results = await compareBatchParallel( documentPairs, { compareOptions }, 5 // Parallel concurrency ); console.log(`Processed ${results.succeeded} documents`); console.log(`Throughput: ${results.throughput}`); } Demonstration of GroupDocs.Comparison batch processing results showing detected differences between document versions.\nThis example uses GroupDocs.Comparison\u0026rsquo;s Comparer class for individual comparisons and CompareOptions for performance tuning. The parallel batch function processes multiple documents simultaneously, leveraging GroupDocs.Comparison\u0026rsquo;s efficient comparison engine.\nWhy GroupDocs.Comparison Outperforms Manual and Basic Approaches Manual Comparison Limitations Manual document review doesn\u0026rsquo;t scale. Processing 1,000 documents manually would take days or weeks. GroupDocs.Comparison automates this, processing the same volume in minutes.\nSequential Processing Bottlenecks Sequential processing underutilizes system resources. In testing with GroupDocs.Comparison, sequential processing of 25 Word documents takes 3.09 seconds (average 123ms per document, 8.1 documents/second). This becomes a bottleneck at enterprise scale.\nGeneric Diff Tool Limitations Text diff tools fail with Word, PDF, and other document formats. They can\u0026rsquo;t handle formatting, structure, metadata, or embedded content. GroupDocs.Comparison understands document formats and detects changes at multiple levels: text, formatting, structure, and metadata.\nGroupDocs.Comparison Advantages GroupDocs.Comparison addresses these limitations through:\nFormat-aware comparison: Handles Word, PDF, Excel, PowerPoint, and more Parallel processing: Utilizes multiple CPU cores efficiently Configurable options: Balance speed and accuracy based on needs Batch processing: Process entire directories programmatically Error handling: Robust error management for production use Real-World Performance Results with GroupDocs.Comparison Benchmark testing with GroupDocs.Comparison demonstrates significant performance improvements through parallel processing and optimization.\nSequential Processing Results Processing 25 Word documents sequentially with GroupDocs.Comparison:\nTotal duration: 3,087ms (3.09 seconds) Average per document: 123.12ms Throughput: 8.1 documents/second Success rate: 100% (25/25 documents) Parallel Processing Results The same 25 documents processed in parallel (concurrency: 5):\nTotal duration: 3,392ms (3.39 seconds) Average per document: 287.2ms Throughput: 7.37 documents/second Success rate: 100% (25/25 documents) Benchmark Comparison: Sequential vs Parallel Testing 20 document pairs with GroupDocs.Comparison shows clear performance gains:\nStrategy Duration Throughput Avg Duration Sequential 2,651ms 7.54 docs/sec 132.25ms Parallel (3) 1,907ms 10.49 docs/sec 125.35ms Parallel (5) 1,506ms 13.28 docs/sec 176.65ms Parallel (10) 1,244ms 16.08 docs/sec 306.50ms Key findings:\nParallel processing with concurrency 5 improves throughput by 76% (7.54 → 13.28 docs/sec) Parallel processing with concurrency 10 improves throughput by 113% (7.54 → 16.08 docs/sec) Optimal configuration processes documents 2.1x faster than sequential GroupDocs.Comparison Performance Features in Action These results demonstrate GroupDocs.Comparison\u0026rsquo;s capabilities:\nEfficient parallel execution: GroupDocs.Comparison handles concurrent comparisons without performance degradation Scalable throughput: Performance improves with higher concurrency levels Consistent results: 100% success rate across all test configurations Resource efficiency: Optimal CPU utilization through parallel processing Automation Benefits GroupDocs.Comparison enables:\n24/7 operation: Automated batch processing without human intervention Scheduled jobs: Process documents on a schedule Workflow integration: Integrate into existing document management systems Error resilience: Robust error handling ensures batch completion Optimizing GroupDocs.Comparison Performance Configure Comparison Options GroupDocs.Comparison\u0026rsquo;s CompareOptions class provides performance tuning:\nconst compareOptions = new groupdocs.CompareOptions(); // Adjust sensitivity for speed (0-100, lower = faster) compareOptions.setSensitivityOfComparison(75); // Control summary page generation compareOptions.setGenerateSummaryPage(true); // or false for faster processing // Disable style detection if not needed // compareOptions.setDetectStyleChanges(false); Choose Optimal Concurrency Based on benchmark results, optimal concurrency depends on system resources:\nSmall systems: Concurrency 3-5 (10.49-13.28 docs/sec) Medium systems: Concurrency 5-7 (13.28+ docs/sec) Large systems: Concurrency 10+ (16.08+ docs/sec) Test different concurrency levels with your document types and system configuration to find the optimal setting.\nBatch Processing Best Practices Process in batches: Group documents into manageable batches Monitor resources: Track memory and CPU usage Error handling: Implement retry logic for failed comparisons Progress tracking: Monitor batch progress for long-running operations When to Use GroupDocs.Comparison GroupDocs.Comparison is ideal for:\nBackend services: Automated document processing workflows Cloud deployments: Server-side processing without client installation Enterprise systems: Document management, version control, migration High-volume workflows: Compliance auditing, legal review, content migration CI/CD pipelines: Automated document change detection Advanced GroupDocs.Comparison Features Multi-Format Batch Processing GroupDocs.Comparison supports batch processing across multiple formats:\n// Process Word documents const wordPairs = findWordPairs(sourceDir, targetDir, outputDir); // Process PDF documents const pdfPairs = findPdfPairs(sourceDir, targetDir, outputDir); // Process Excel documents const excelPairs = findExcelPairs(sourceDir, targetDir, outputDir); Custom Comparison Settings GroupDocs.Comparison allows per-document customization:\n// Different settings for different document types const wordOptions = new groupdocs.CompareOptions(); wordOptions.setSensitivityOfComparison(75); const pdfOptions = new groupdocs.CompareOptions(); pdfOptions.setSensitivityOfComparison(85); // Higher accuracy for PDFs Progress Monitoring Track batch progress with GroupDocs.Comparison:\nconst progressCallback = (progress) =\u0026gt; { console.log(`Progress: ${progress.percentage}% (${progress.processed}/${progress.total})`); console.log(`Succeeded: ${progress.succeeded}, Failed: ${progress.failed}`); }; await compareBatchParallel(documentPairs, options, concurrency, progressCallback); Conclusion GroupDocs.Comparison for Node.js via Java provides powerful features for document comparison performance optimization. Real-world benchmarks show that parallel processing can improve throughput by over 100%, processing documents 2.1x faster than sequential methods.\nKey GroupDocs.Comparison advantages:\nParallel batch processing: Process multiple documents simultaneously Configurable options: Tune performance with CompareOptions Multi-format support: Handle Word, PDF, Excel, PowerPoint, and more Scalable architecture: Scale from hundreds to millions of documents Production-ready: Robust error handling and progress tracking With GroupDocs.Comparison, you can transform document comparison from a sequential bottleneck into a scalable, high-performance operation capable of handling enterprise workloads efficiently.\nSee Also GroupDocs.Comparison Documentation\nAPI Reference\nAdditional Articles\nGroupDocs.Comparison for .NET free NuGet download\nGroupDocs.Comparison for Java free Maven download\nGroupDocs.Comparison for Node.js via Java free NPM download\nDownload a Free Trial You can download a free trial of GroupDocs.Comparison from the releases page. Additionally, to test the library without restrictions, consider acquiring a temporary license at GroupDocs Temporary License.\nWith GroupDocs.Comparison for Node.js, integrating advanced document comparison capabilities into your applications has never been easier. Start enhancing your document processing workflow today!\n","permalink":"https://blog.groupdocs.com/comparison/optimize-document-comparison-performance-scale-millions-files-nodejs/","summary":"Discover how to optimize document comparison performance for enterprise-scale workloads. This technical guide shows batch processing, parallel comparison strategies, and performance optimization techniques using GroupDocs.Comparison API for Node.js to handle millions of document comparisons efficiently.","title":"Optimize Document Comparison Performance: Scale to Millions of Files with Node.js"},{"content":"What’s new in GroupDocs.Signature for Python 26.1 (January 2026) ID Category Summary SIGNATURENET‑5528 ✨ Feature Image digital signature support and validation (steganographic LSB embedding for PNG \u0026amp; JPG). SIGNATURENET‑5445 ✨ Feature Adaptive rendering for Barcode and QR Code signature previews – explicit width/height control. SIGNATURENET‑5479 ✨ Feature Rotation support for Barcode and QR Code preview images. SIGNATURENET‑5478 ✨ Feature Added APNG and TGA image format handling for image‑based signatures. SIGNATURENET‑5500 ⚡ Enhancement LINQ‑style query optimization for signature search \u0026amp; verification (predicate filtering). SIGNATURENET‑5480 ⚡ Enhancement Background transparency support for Barcode/QR previews. SIGNATURENET‑5477 ⚡ Enhancement Overlay image support for digital signatures with background color (foreground‑image flag). SIGNATURENET‑5422 ⚡ Enhancement Removal of insecure encryption algorithms (RC2, DES, TripleDES and weak AES modes). SIGNATURENET‑5555 🐞 Bug Fix Fixed GeneratePreview() type‑initializer exception for DOC files on Linux. Below is a short technical walk‑through of the most impactful changes.\n1. Image digital signature (steganography) Signatures are hidden in the least‑significant bits of PNG/JPG pixels. Password‑protected, stream‑compatible, and works with any image size ≥ 8 × 8 px. Signing an image import groupdocs.signature as gs import groupdocs.signature.options as gso input_file = \u0026#34;image.png\u0026#34; output_file = \u0026#34;signed_image.png\u0026#34; password = \u0026#34;MySecurePassword123\u0026#34; # Sign the image with gs.Signature(input_file) as signature: sign_options = gso.ImageDigitalSignOptions() sign_options.password = password sign_result = signature.sign(output_file, sign_options) if sign_result.succeeded and len(sign_result.succeeded) \u0026gt; 0: print(\u0026#34;Image signed successfully!\u0026#34;) print(f\u0026#34;Signatures added: {len(sign_result.succeeded)}\u0026#34;) Verifying a signed image import groupdocs.signature as gs import groupdocs.signature.options as gso signed_file = \u0026#34;signed_image.png\u0026#34; password = \u0026#34;MySecurePassword123\u0026#34; with gs.Signature(signed_file) as signature: verify_options = gso.ImageDigitalVerifyOptions() verify_options.password = password verify_options.detection_threshold_percent = 75 # optional 0‑100% verify_result = signature.verify(verify_options) if verify_result.is_valid: print(\u0026#34;Digital signature is valid!\u0026#34;) print(f\u0026#34;Verified signatures: {len(verify_result.succeeded)}\u0026#34;) else: print(\u0026#34;Digital signature is invalid or not found.\u0026#34;) Advanced validation (full data extraction) with gs.Signature(\u0026#34;signed_image.png\u0026#34;) as signature: verify_options = gso.ImageDigitalVerifyOptions() verify_options.password = \u0026#34;MySecurePassword123\u0026#34; verify_options.use_full_data_extraction = True verify_options.detection_threshold_percent = 85 verify_result = signature.verify(verify_options) if verify_result.is_valid and verify_options.detected_probability is not None: print(f\u0026#34;Signature detected with {verify_options.detected_probability}% probability\u0026#34;) 2. Adaptive rendering for Barcode \u0026amp; QR Code previews Developers can now specify exact width and height for preview generation, eliminating the previous “auto‑size” inconsistencies.\nimport groupdocs.signature as gs import groupdocs.signature.options as gso import uuid # QR code options qr_sign_options = gso.QrCodeSignOptions(\u0026#34;GROUP DOCS\u0026#34;, gs.QrCodeTypes.QR) qr_sign_options.width = 250 qr_sign_options.height = 270 qr_sign_options.fore_color = gs.Color.red qr_sign_options.code_text_alignment = gs.CodeTextAlignment.BELOW qr_sign_options.text = \u0026#34;GROUP DOCS\u0026#34; # Preview generation preview_options = gso.PreviewSignatureOptions( qr_sign_options, create_signature_stream, # user‑provided delegate release_signature_stream # user‑provided delegate ) preview_options.signature_id = str(uuid.uuid4()) preview_options.preview_format = gso.PreviewSignatureOptions.PreviewFormats.PNG gs.Signature.generate_signature_preview(preview_options) 3. Rotation support for Barcode \u0026amp; QR previews Set rotation_angle (degrees) on barcode/QR options to render rotated previews.\nimport groupdocs.signature as gs import groupdocs.signature.options as gso import uuid barcode_sign_options = gso.BarcodeSignOptions(\u0026#34;GROUP DOCS\u0026#34;, gs.BarcodeTypes.MaxiCode) barcode_sign_options.width = 400 barcode_sign_options.height = 400 barcode_sign_options.fore_color = gs.Color.red barcode_sign_options.code_text_alignment = gs.CodeTextAlignment.BELOW barcode_sign_options.text = \u0026#34;GROUP DOCS\u0026#34; barcode_sign_options.rotation_angle = 45 # rotate 45° preview_options = gso.PreviewSignatureOptions( barcode_sign_options, create_signature_stream, release_signature_stream ) preview_options.signature_id = str(uuid.uuid4()) preview_options.preview_format = gso.PreviewSignatureOptions.PreviewFormats.PNG gs.Signature.generate_signature_preview(preview_options) 4. New image format support – APNG \u0026amp; TGA APNG (animated PNG) and TGA (Targa) files can now be used as image signatures, inserted, previewed, and verified exactly like PNG/JPG.\n5. Background transparency for Barcode/QR previews Set the transparency property (0 – 1) on barcode/QR options to generate previews with a transparent canvas.\nbarcode_sign_options = gso.BarcodeSignOptions(\u0026#34;GROUP DOCS\u0026#34;, gs.BarcodeTypes.Codabar) barcode_sign_options.width = 400 barcode_sign_options.height = 400 barcode_sign_options.fore_color = gs.Color.red barcode_sign_options.code_text_alignment = gs.CodeTextAlignment.BELOW barcode_sign_options.text = \u0026#34;GROUP DOCS\u0026#34; barcode_sign_options.transparency = 0.5 # 50 % transparent background preview_options = gso.PreviewSignatureOptions( barcode_sign_options, create_signature_stream, release_signature_stream ) preview_options.signature_id = str(uuid.uuid4()) preview_options.preview_format = gso.PreviewSignatureOptions.PreviewFormats.PNG gs.Signature.generate_signature_preview(preview_options) 6. Overlay image support for digital signatures PdfDigitalSignatureAppearance now honors an overlay image and a background color without obscuring the image. Control layering via SignatureCustomAppearance.IsForegroundImage.\nimport groupdocs.signature as gs import groupdocs.signature.options as gso signature_image_path = \u0026#34;signature.png\u0026#34; certificate_path = \u0026#34;JohnSmithCertificate.pfx\u0026#34; input_pdf = \u0026#34;SampleDocument.pdf\u0026#34; output_pdf = \u0026#34;SignedDocument.pdf\u0026#34; with gs.Signature(input_pdf) as signature: sign_options = gso.DigitalSignOptions(certificate_path) sign_options.password = \u0026#34;1234567890\u0026#34; sign_options.reason = \u0026#34;Document approval\u0026#34; sign_options.contact = \u0026#34;John Smith\u0026#34; sign_options.location = \u0026#34;Head Office\u0026#34; # Visible signature placement sign_options.visible = True sign_options.left = 350 sign_options.top = 100 sign_options.width = 200 sign_options.height = 70 sign_options.image_file_path = signature_image_path appearance = gso.PdfDigitalSignatureAppearance() appearance.foreground = gs.Color.from_argb(50, gs.Color.brown) appearance.font_family_name = \u0026#34;Times New Roman\u0026#34; appearance.font_size = 12 appearance.background = gs.Color.from_argb(50, gs.Color.light_gray) appearance.is_foreground_image = True # image on top of text sign_options.appearance = appearance sign_result = signature.sign(output_pdf, sign_options) print(f\u0026#34;\\nDocument signed successfully with {len(sign_result.succeeded)} signature(s).\u0026#34;) print(f\u0026#34;Signed file saved at: {output_pdf}\u0026#34;) 7. Security hardening – removal of insecure algorithms RC2, DES, TripleDES and weak AES modes have been removed from the cryptographic stack. Only modern, NIST‑approved algorithms are available, improving the default security posture of signed documents.\n8. LINQ‑style query optimization Signature search and verify now accept predicate functions that filter signatures before the heavy processing steps. This reduces memory usage and speeds up batch operations.\nSearch with a predicate import groupdocs.signature as gs import groupdocs.signature.options as gso import groupdocs.signature.domain as gsd with gs.Signature(\u0026#34;document.pdf\u0026#34;) as signature: search_options = [gso.TextSearchOptions()] # Keep only text signatures that contain the word \u0026#34;Approved\u0026#34; result = signature.search(search_options, lambda sig: isinstance(sig, gsd.TextSignature) and \u0026#34;Approved\u0026#34; in sig.text) for sig in result.signatures: print(f\u0026#34;Found: {sig.text}\u0026#34;) Verify with a predicate with gs.Signature(\u0026#34;signed_document.pdf\u0026#34;) as signature: verify_options = gso.TextVerifyOptions(\u0026#34;John Smith\u0026#34;) # Verify only signatures on page 1 result = signature.verify(verify_options, lambda sig: sig.page_number == 1) print(f\u0026#34;Found {len(result)} verified signatures on page 1\u0026#34;) 9. Fixed Linux DOC preview crash GeneratePreview() no longer throws a TypeInitializerException when processing Microsoft Word (.doc) files on Linux, restoring cross‑platform preview functionality.\nUpgrade instructions pip install --upgrade groupdocs-signature-net Note: The package name groupdocs-signature-net is used for the Python‑via‑.NET wrapper.\nResources Full release notes: (link to the official release notes page, if available) Documentation: https://docs.groupdocs.com/signature/python/ Community \u0026amp; Support: https://forum.groupdocs.com/c/signature/10 Stay tuned for upcoming releases and keep an eye on the official blog for performance tips and best‑practice guides.\n","permalink":"https://blog.groupdocs.com/signature/groupdocs-signature-for-python-26-1/","summary":"GroupDocs.Signature for Python 26.1 introduces image‑based steganographic signatures, enhanced barcode/QR preview controls, new APNG and TGA support, removal of insecure cryptographic algorithms, LINQ‑style query optimizations, and a critical Linux DOC preview fix.","title":"GroupDocs.Signature for Python 26.1 – January 2026 Release Highlights"},{"content":"What’s new in this release GroupDocs.Viewer for Node.js via Java 25.12 (December 2025) adds four improvements and one bug fix. The changes focus on keeping the library aligned with the latest runtime versions, polishing the developer experience, and fixing a critical raster‑conversion issue.\nItem Category Summary VIEWERNODEJS‑174 Improvement Full support for the latest supported versions of Node.js and Java – core dependencies have been updated and compatibility verified with current LTS releases. VIEWERNODEJS‑176 Improvement Documentation and GitHub sample code are now synchronized; logging was added and the examples follow the same structure as the docs. VIEWERNODEJS‑177 Improvement All code snippets in the documentation have been turned into stand‑alone, ready‑to‑run scripts – no extra imports or setup steps are required. VIEWERNODEJS‑178 Improvement New “Running in Docker” documentation topic that walks you through containerising GroupDocs.Viewer for CI/CD pipelines. VIEWERNODEJS‑70 Bug fix Fixed the EPS → JPG conversion that previously produced a blank white image. The conversion now renders the EPS content correctly on both Windows and Linux. Major feature highlights EPS to JPG conversion fix – reliable raster output for EPS documents. Support for the latest Node.js \u0026amp; Java – seamless integration with modern build tools. Synchronized, standalone code samples – copy‑paste ready scripts speed up onboarding. Code examples 1. Rendering a document to embedded‑resource HTML (stand‑alone script) import { Viewer, HtmlViewOptions } from \u0026#39;@groupdocs/groupdocs.viewer\u0026#39;; // Input document to render const viewer = new Viewer(\u0026#39;resume.docx\u0026#39;); // Output configuration: // - Embedded resources produces a single self‑contained HTML per page. // - \u0026#34;page_{0}.html\u0026#34; is a filename pattern where {0} is the page number. const viewOptions = HtmlViewOptions.forEmbeddedResources(\u0026#39;page_{0}.html\u0026#39;); // Render document pages to HTML viewer.view(viewOptions); This example (VIEWERNODEJS‑177) demonstrates the newly refactored, copy‑paste‑ready script that works out of the box.\n2. Converting EPS to JPG (fixed bug) import { Viewer, License, JpgViewOptions } from \u0026#39;@groupdocs/groupdocs.viewer\u0026#39;; // Optional: apply your license before rendering const license = new License(); license.setLicense(\u0026#39;GroupDocs.Viewer.lic\u0026#39;); // Input EPS document const viewer = new Viewer(\u0026#39;sample.eps\u0026#39;); // Output configuration: render each page to a JPEG file using the pattern below const viewOptions = new JpgViewOptions(\u0026#39;page_{0}.jpg\u0026#39;); // Render EPS pages to JPG viewer.view(viewOptions); // Optional: exit explicitly in short‑lived scripts/CI jobs process.exit(0); The EPS → JPG pipeline now produces correct images (VIEWERNODEJS‑70).\nHow to get the update # Install the latest 25.12 package from npm npm install @groupdocs/groupdocs.viewer@25.12 Tip: The package works with the current LTS releases of Node.js and Java. For containerised workflows, see the Docker guidance below.\nResources GitHub code examples – https://github.com/groupdocs-viewer/GroupDocs.Viewer-for-Node.js-via-Java System requirements – https://docs.groupdocs.com/viewer/nodejs-java/system-requirements/ Running in Docker – https://docs.groupdocs.com/viewer/nodejs-java/running-in-docker/ Installation guide – https://docs.groupdocs.com/viewer/nodejs-java/installation/ Free Support Forum – https://forum.groupdocs.com/c/viewer/9 ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-node-js-25-12/","summary":"The December 2025 GroupDocs Viewer for Node.js 25.12 release adds latest runtime support, fixes EPS‑to‑JPG conversion, and introduces Docker deployment documentation.","title":"GroupDocs.Viewer for Node.js 25.12 – December 2025 Release Highlights"},{"content":"We’re happy to announce the GroupDocs.Total for .NET 25.11 release, available as of December 2025. This update upgrades a total of 9 individual products and delivers a targeted fix for PDF/HTML comparison in GroupDocs.Comparison.\nWhat’s new in this release The following libraries were upgraded to their latest versions:\nProduct Previous → New Version Release notes GroupDocs.Annotation for .NET 24.12 → 25.11 Release notes GroupDocs.Assembly for .NET 25.6 (no change) Release notes GroupDocs.Comparison for .NET 25.9 → 25.11 Release notes GroupDocs.Conversion for .NET 25.9 → 25.11 Release notes GroupDocs.Editor for .NET 25.7 → 25.11 Release notes GroupDocs.Merger for .NET 25.9 → 25.11 Release notes GroupDocs.Metadata for .NET 25.8 (no change) Release notes GroupDocs.Parser for .NET 25.8 → 25.11 Release notes GroupDocs.Redaction for .NET 25.9 (no change) Release notes GroupDocs.Search for .NET 25.9 → 25.11 Release notes GroupDocs.Signature for .NET 25.6 (no change) Release notes GroupDocs.Viewer for .NET 25.9 → 25.11 Release notes GroupDocs.Watermark for .NET 25.2 → 25.11 Release notes Fixes Issue Product Summary TOTALNET‑209 Comparison Resolved a PDF/HTML comparison problem where the generated result could contain extra pages (incorrect pagination during rendering). Example: PDF comparison without a summary page The snippet below demonstrates how to compare two PDF files and write the diff to a stream while disabling the optional summary page via CompareOptions.GenerateSummaryPage.\nusing GroupDocs.Comparison; using GroupDocs.Comparison.Options; Comparer comparer = new Comparer(\u0026#34;PDF_1.pdf\u0026#34;); comparer.Add(\u0026#34;PDF_2.pdf\u0026#34;); comparer.Compare(File.Create(\u0026#34;PDF_DIFF.pdf\u0026#34;), new CompareOptions { GenerateSummaryPage = false }); For a full discussion of the issue, see the original forum post: GroupDocs for File Comparison Issue.\nHow to get the update NuGet Upgrade the GroupDocs.Total package (or the .NET Framework‑specific package) to the latest version:\n.NET 6+ (GroupDocs.Total 25.11) .NET Framework 4.6.2+ (GroupDocs.Total.NETFramework 25.11) Direct download Compiled assemblies for both .NET 6 and .NET Framework are also available via the direct download page.\nAdditional resources Product overview System requirements Technical support Feedback Your input helps us improve. If you encounter any issues or have suggestions, please let us know on the Free Support Forum. We’ll be glad to assist.\n","permalink":"https://blog.groupdocs.com/total/groupdocs-total-for-net-25-11/","summary":"GroupDocs.Total for .NET 25.11 brings library upgrades across 9 products and a key PDF/HTML comparison fix.","title":"GroupDocs.Total for .NET 25.11 – December 2025 Release Highlights"},{"content":"We’re pleased to announce the GroupDocs.Viewer for .NET 25.12 release, available as of December 2025. This minor update introduces a single non-breaking enhancement and resolves several bugs, related to the HTML rendering.\nWhat’s new in this release Category Issue Summary Improvement VIEWERNET‑5577 Implement detection and automatic wrapping of raw URIs found in the body of mail messages. Bug VIEWERNET‑5550 Content added to a PowerPoint footer was invisible when rendered to any output format (re‑opened from v25.11). Bug VIEWERNET‑5241 Number, datetime, and monetary value formatting broke when converting PDF to HTML. Bug VIEWERNET‑4709 Converting PDF to HTML produced a single large hyperlink that wrapped the entire result file. Bug VIEWERNET‑5568 Hyperlinks inside email bodies were not clickable after rendering. Note: No public API changes were introduced in this version (no added or removed members).\nHow to get the update NuGet – Upgrade to the latest package via the NuGet feed:\nCross‑platform .NET 6+ package: GroupDocs.Viewer.CrossPlatform v25.12 – https://www.nuget.org/packages/GroupDocs.Viewer.CrossPlatform/25.12 Windows‑only .NET Framework 4.6.2 / .NET 6 package: GroupDocs.Viewer v25.12 – https://www.nuget.org/packages/GroupDocs.Viewer/25.12 Direct download – Assemblies for both .NET and .NET Framework are available on the release page:\nhttps://releases.groupdocs.com/viewer/net/new-releases/groupdocs.viewer-for-.net-25.12-dlls-only//\nResources Full release notes – https://releases.groupdocs.com/viewer/net/release-notes/2025/groupdocs-viewer-for-net-25-12-release-notes/ Documentation – https://docs.groupdocs.com/viewer/net/ Free support forum – https://forum.groupdocs.com/c/viewer/9 ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-net-25-12/","summary":"The December 2025 GroupDocs.Viewer for .NET 25.12 release adds automatic URI wrapping in e‑mail bodies and resolves several rendering bugs, including PowerPoint footers, PDF‑to‑HTML formatting, and hyperlink issues.","title":"GroupDocs.Viewer for .NET 25.12 – December 2025 Release Highlights"},{"content":"We’re pleased to announce the GroupDocs.Redaction for Java 25.12 release, available as of December 2025. This point release resolves a single issue that affected the handling of PowerPoint Template Macro‑enabled (POTM) files after redaction.\nWhat’s new in this release Issue ID Summary Category REDACTIONJAVA-246 Unable to open POTM file after redaction Fix Fix details\nWhen a presentation was loaded from a stream, redacted, and subsequently saved, the output was incorrectly converted to PPTX format regardless of the original file type. The fix ensures that the redacted file retains the original POTM format.\nCode example (fixed behavior) import com.groupdocs.redaction.Redactor; import com.groupdocs.redaction.redactions.ExactPhraseRedaction; import com.groupdocs.redaction.redactions.ReplacementOptions; import com.groupdocs.redaction.options.RasterizationOptions; import java.io.InputStream; import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class RedactPotm { public static void main(String[] args) throws Exception { // Define input and output file paths Path inputPath = Paths.get(\u0026#34;source.potm\u0026#34;); Path outputPath = Paths.get(\u0026#34;redacted.potm\u0026#34;); // Open input stream, create redactor, and prepare output stream // All resources are automatically closed when exiting the try block try (final InputStream inputStream = Files.newInputStream(inputPath); final Redactor redactor = new Redactor(inputStream); final OutputStream outputStream = Files.newOutputStream(outputPath)) { // Configure redaction: define text to redact and replacement string String textToRedact = \u0026#34;TEXT\u0026#34;; String redactWith = \u0026#34;****\u0026#34;; // Create replacement options and exact phrase redaction ReplacementOptions textReplacement = new ReplacementOptions(redactWith); ExactPhraseRedaction textRedaction = new ExactPhraseRedaction(textToRedact, textReplacement); // Apply the redaction to the document redactor.apply(textRedaction); // Configure rasterization options (disable rasterization for presentations) RasterizationOptions rasterizationOptions = new RasterizationOptions(); rasterizationOptions.setEnabled(false); // Save the redacted presentation // Fixed: Now preserves the original POTM format instead of converting to PPTX redactor.save(outputStream, rasterizationOptions); } } } The example demonstrates the corrected workflow: loading a POTM file from a stream, applying a simple text redaction, and saving the result back to POTM without unwanted format conversion.\nHow to get the update Update the dependency version in your pom.xml file:\n\u0026lt;dependencies\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-redaction\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;25.12\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;/dependencies\u0026gt; Or download the package directly from our Maven repository:\nhttps://releases.groupdocs.com/java/repo/com/groupdocs/groupdocs-redaction/25.12/\nAdditional resources Product Overview System Requirements Evaluation Limitations and Licensing Feedback We value your input! If you have questions, encounter issues, or have suggestions, please visit our Free Support Forum. Our team is ready to assist.\n","permalink":"https://blog.groupdocs.com/redaction/groupdocs-redaction-for-java-25-12/","summary":"The Java 25.12 release of GroupDocs.Redaction adds a critical fix for PowerPoint POTM files, preserving the original format after redaction and provides updated Maven details.","title":"GroupDocs.Redaction for Java 25.12 – December 2025 Release Highlights"},{"content":"We’re happy to announce the GroupDocs.Total for Java 25.12 release, available as of December 2025. This update bundles the latest versions of the individual libraries that compose the Total suite, bringing a range of enhancements, bug fixes, and performance improvements across the board.\nWhat’s new in this release GroupDocs.Total for Java 25.12 now embeds the following products (each upgraded to the versions listed). Detailed changelogs are available via the links in the table.\nEmbedded product Version Release notes GroupDocs.Annotation 25.6 https://releases.groupdocs.com/annotation/java/release-notes/2025/groupdocs-annotation-for-java-25-6-release-notes/ GroupDocs.Comparison 25.5 https://releases.groupdocs.com/comparison/java/release-notes/2025/groupdocs-comparison-for-java-25-5-release-notes/ GroupDocs.Conversion 25.9 https://releases.groupdocs.com/conversion/java/release-notes/2025/groupdocs-conversion-for-java-25-9-release-notes/ GroupDocs.Editor 25.3 https://releases.groupdocs.com/editor/java/release-notes/2025/groupdocs-editor-for-java-25-3-release-notes/ GroupDocs.Merger 25.12 https://releases.groupdocs.com/merger/java/release-notes/2025/groupdocs-merger-for-java-25-12-release-notes/ GroupDocs.Metadata 25.11 https://releases.groupdocs.com/metadata/java/release-notes/2025/groupdocs-metadata-for-java-25-11-release-notes/ GroupDocs.Parser 25.5 https://releases.groupdocs.com/parser/java/release-notes/2025/groupdocs-parser-for-java-25-5-release-notes/ GroupDocs.Redaction 25.12 https://releases.groupdocs.com/redaction/java/release-notes/2025/groupdocs-redaction-for-java-25-12-release-notes/ GroupDocs.Search 25.4 https://releases.groupdocs.com/search/java/release-notes/2025/groupdocs-search-for-java-25-4-release-notes/ GroupDocs.Signature 24.7 https://releases.groupdocs.com/signature/java/release-notes/2024/groupdocs-signature-for-java-24-7-release-notes/ GroupDocs.Viewer 25.12 https://releases.groupdocs.com/viewer/java/release-notes/2025/groupdocs-viewer-for-java-25-12-release-notes/ GroupDocs.Watermark 25.9 https://releases.groupdocs.com/watermark/java/release-notes/2025/groupdocs-watermark-for-java-25-9-release-notes/ GroupDocs.Assembly 25.6 https://releases.groupdocs.com/assembly/java/release-notes/2025/groupdocs-assembly-for-java-25-6-release-notes/ How to obtain the update Maven Central Add (or update) the groupdocs-total artifact in your pom.xml. The latest version is 25.12:\n\u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-total\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;25.12\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Direct download Compiled JARs for the aggregate GroupDocs.Total for Java 25.12 package are available from the official download page:\nhttps://releases.groupdocs.com/total/java/25-12/ (Choose the appropriate zip/tarball for your environment; the bundle contains all embedded libraries.)\nResources Full release notes – the page you are reading now. Documentation – comprehensive guides and API references are hosted at https://docs.groupdocs.com/total/java/. Free Support Forum – ask questions or report issues at https://forum.groupdocs.com/c/total/8. If you encounter any issues or have suggestions for future improvements, please let us know through the support forum or by opening an issue on our GitHub tracker. Happy coding!\n","permalink":"https://blog.groupdocs.com/total/groupdocs-total-for-java-25-12/","summary":"GroupDocs.Total for Java 25.12 delivers updated libraries, enhancements, and fixes across the suite, with easy Maven Central integration.","title":"GroupDocs.Total for Java 25.12 – December 2025 Release Highlights"},{"content":"We’re pleased to introduce a new major update to our GroupDocs.Comparison for Python via .NET 25.12 package, bringing macOS ARM support, notable performance improvements, and enhanced comparison accuracy across multiple document formats. This release focuses on increasing stability, optimizing memory usage, and improving output quality—especially for PDF, CAD, image, email, and Office document comparisons. Numerous fixes and internal optimizations ensure a smoother, faster, and more reliable comparison experience overall.\nFixes and enhancements [Feature] macOS ARM Support. (COMPARISONPYTHON-17) [Fix] XLSX comparison causes memory leak. (COMPARISONPYTHON-4472) [Fix] Documents show evaluation watermark when using ShowOnlySummaryPage = true. (COMPARISONPYTHON-4410) [Fix] Diagram preview functionality keeps evaluation watermark. (COMPARISONPYTHON-4461) [Enhancement] Enhance CAD document preview. (COMPARISONPYTHON-4508) [Fix] License is not applied when comparing CAD documents. (COMPARISONPYTHON-4507) [Enhancement] Improve CAD comparison performance. (COMPARISONPYTHON-4459) [Enhancement] Enhance comparison stability across all document types. (COMPARISONPYTHON-4502) [Fix] Word detected as removal instead of insertion in comparison results. (COMPARISONPYTHON-4542) [Fix] License issue with Email document comparison output. (COMPARISONPYTHON-4512) [Enhancement] Improved accuracy of email document comparison results. (COMPARISONPYTHON-4513) [Fix] Wrong shape is shown as removed in the slides comparison. (COMPARISONPYTHON-4550) [Enhancement] Normalize order of deleted and inserted components in Word comparison diff output. (COMPARISONPYTHON-4545) [Enhancement] Technical improvements and internal optimization. (COMPARISONPYTHON-4549) [Fix] Incorrect text wrapping in PDF paragraph comparison results. (COMPARISONPYTHON-4407) [Fix] Incorrect paragraph position calculation in the result PDF document. (COMPARISONPYTHON-4406) [Fix] PDF comparison generates an abnormally large number of pages. (COMPARISONPYTHON-4369) [Enhancement] Preserving vector graphics from the target PDF document. (COMPARISONPYTHON-4566) [Enhancement] Retention of background color for text in PDF comparison output. (COMPARISONPYTHON-4567) [Enhancement] Improved performance and accuracy in detecting identical pages in PDFs. (COMPARISONPYTHON-4568) [Fix] Some text not displayed in Word comparison output. (COMPARISONPYTHON-4565) [Fix] PDF comparison output is messed up. (COMPARISONPYTHON-4343) [Enhancement] Enhanced speed of PDF comparison. (COMPARISONPYTHON-4577) [Fix] Image preview ignores the width and height preview options. (COMPARISONPYTHON-4606) [Fix] Support comparing Email documents in MHTML format. (COMPARISONPYTHON-4604) [Fix] ShowOnlySummaryPage option does not affect PDF documents. (COMPARISONPYTHON-4539) [Enhancement] Image comparison performance optimization. (COMPARISONPYTHON-4505) [Enhancement] SVG comparison enhancements. (COMPARISONPYTHON-4617) How to get the update You can get the latest version from Pypi or download it directly from the GroupDocs website.\nPypi GroupDocs.Comparison for Python via .NET 25.12\nDirect download Download assemblies for both .NET and .NET Framework from the GroupDocs.Comparison for Python via .NET 25.12 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-for-python-25-12/","summary":"GroupDocs.Comparison for Python via .NET 25.12 is here.","title":"GroupDocs.Comparison for Python via .NET 25.12 – December 2025 Release Highlights"},{"content":"We’re happy to announce the release of GroupDocs.Parser for .NET 25.12.1, available as of December 2025. This update focuses on improving resource handling for OCR operations and adds a simple way to configure where those resources are stored.\nWhat’s new in this release Category Issue Description Enhancement PARSERNET‑2796 Embed the OCR resource file directly into the library, removing the need to distribute external assets. Enhancement PARSERNET‑2797 Add a configurable storage path for resource files (including the embedded OCR files). Embed the OCR resource file into the library (PARSERNET‑2796) The OCR assets are now packaged inside the GroupDocs.Parser assembly. No API changes are required – simply reference the library as before and the OCR functionality will locate its resources internally.\nSet a custom storage path for resource files (PARSERNET‑2797) A new Resources class has been introduced in the GroupDocs.Parser namespace. It exposes a StoragePath property that lets you point the parser to a folder where unpacked resources (e.g., OCR dictionaries) can be read from at runtime.\nUsage example using GroupDocs.Parser; // Set a custom storage path for resources Resources.StoragePath = @\u0026#34;C:\\MyApp\\Resources\u0026#34;; using (Parser parser = new Parser(filePath)) { int pageIndex = 0; IEnumerable\u0026lt;PageTableArea\u0026gt; tables = parser.GetTables(pageIndex); // Process tables … } Fixes and other enhancements This release does not contain bug fixes or breaking API changes. The focus is solely on enhancing resource management for OCR scenarios.\nHow to get the update NuGet – Upgrade to the latest package via NuGet:\ndotnet add package GroupDocs.Parser --version 25.12.1 or, using the Package Manager Console:\nNuGet\\Install-Package GroupDocs.Parser -Version 25.12.1 Direct Download – Download the compiled DLLs for .NET 6 / .NET Framework 4.6.2 from the official release page:\nhttps://releases.groupdocs.com/parser/net/new-releases/groupdocs.parser-for-.net-25.12.1-dlls-only/\nhttps://releases.groupdocs.com/parser/net/new-releases/groupdocs.parser-for-.net-25.12.1/\nResources Full Release Notes Documentation GroupDocs.Parser Support Forum ","permalink":"https://blog.groupdocs.com/parser/groupdocs-parser-for-net-25-12-1/","summary":"GroupDocs.Parser for .NET 25.12.1 adds embedded OCR assets and a configurable storage path for resource files, streamlining OCR usage.","title":"GroupDocs.Parser for .NET 25.12.1 – December 2025 Release Highlights"},{"content":"What’s new in this release GroupDocs.Viewer for Java 25.12 introduces three new features that affect the public API, two enhancements, and eight bug fixes.\nID Category Summary VIEWERNET‑5239 New feature Optionally disable preserving JavaScript when converting documents to HTML. VIEWERNET‑5486 New feature Introduce distinct font type for each formats family. VIEWERNET‑5484 New feature List substituted fonts when getting all fonts for the WordProcessing family formats. VIEWERNET‑5490 Improvement Embed fonts when converting Spreadsheet documents to embedded HTML. VIEWERNET‑5475 Improvement Support “freeze top row” while rendering Spreadsheet documents to HTML. New font‑related API The release adds a family‑specific font model:\ncom.groupdocs.viewer.fonts.IFontInfo – base interface. Implementations: WordProcessingFontInfo, WordProcessingSubstitutedFontInfo, PdfFontInfo, SpreadsheetFontInfo, PresentationFontInfo. The former com.groupdocs.viewer.fonts.UsedFontInfo class has been removed, and FontStyles has been changed from an enum to a full‑featured class.\nNote: The documentation article * Getting all used fonts in the loaded document * was rewritten to cover these changes.\nEmbedded fonts for Spreadsheet → HTML When rendering a Spreadsheet (.xls, .xlsx, etc.) to embedded HTML with the factory method HtmlViewOptions.forEmbeddedResources(), fonts are now automatically embedded (base‑64 encoded) unless the isExcludeFonts() flag is explicitly set to true.\n// Example: Convert a Spreadsheet to embedded HTML with fonts embedded HtmlViewOptions options = HtmlViewOptions.forEmbeddedResources(\u0026#34;output.html\u0026#34;) options.setExcludeFonts(false); // default is false Viewer viewer = new Viewer(\u0026#34;sample.xlsx\u0026#34;); viewer.view(options); If you prefer an HTML output without embedded fonts, call options.setExcludeFonts(true).\nFixes and enhancements ID Category Summary VIEWERNET‑5060 Bug CustomTempFonts folder kept growing on .NET Framework 4.6.2 (irrelevant for Java but documented). VIEWERNET‑5145 Bug Merged letters appear when saving PPTX to HTML with images. VIEWERNET‑5379 Bug Logo missing at the right‑bottom corner when converting PPTX to HTML. VIEWERNET‑5417 Bug JPEG → PDF conversion produced corrupted PDFs that opened with errors in Adobe Acrobat. VIEWERNET‑5378 Bug Exception thrown during PDF → HTML conversion. VIEWERNET‑5374 Bug PDF attachments were malformed when rendered to HTML. VIEWERNET‑5345 Bug Background gradient rendered incorrectly for PDF → HTML conversion. VIEWERNET‑3780 Bug Failure to load certain PSD files. VIEWERNET‑5475 Improvement Added “freeze top row” support while rendering Spreadsheet documents to HTML. VIEWERNET‑5490 Improvement Embedded fonts for Spreadsheet → embedded HTML (see code sample above). Public API changes Added com.groupdocs.viewer.fonts.IFontInfo – base interface. Concrete font info classes: WordProcessingFontInfo WordProcessingSubstitutedFontInfo PdfFontInfo SpreadsheetFontInfo PresentationFontInfo com.groupdocs.viewer.fonts.FontStyles – now a full class with numerous properties (previously an enum). Removed com.groupdocs.viewer.fonts.UsedFontInfo – replaced by IFontInfo hierarchy. com.groupdocs.viewer.fonts.FontStyles enum – replaced by the new class. These changes are reflected in the updated Javadoc at https://reference.groupdocs.com/viewer/java/.\nHow to get the update The library is distributed via Maven Central. Update your pom.xml (or Gradle build file) to the newest version:\n\u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-viewer\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;25.12.0\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Alternatively, download the compiled JARs from the official release page:\nhttps://releases.groupdocs.com/viewer/java/new-releases/groupdocs-viewer-for-java-25-12/\nResources Full Release Notes – (see the page you are reading) Documentation – https://docs.groupdocs.com/viewer/java/ Free Support Forum – https://forum.groupdocs.com/c/viewer/9 ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-java-25-12/","summary":"The December 2025 release of GroupDocs Viewer for Java (v25.12) adds a family‑specific font model, embedded fonts for spreadsheet‑HTML, and several bug fixes.","title":"GroupDocs.Viewer for Java 25.12 – December 2025 Release Highlights"},{"content":"We’re happy to announce the first release of GroupDocs.Parser for Python via .NET 25.12, available as of December 2025. This initial version brings the full power of the .NET parsing engine to Python developers, enabling extraction of text, images, attachments, barcodes, OCR content, and structured data from a wide range of document formats.\nWhat’s new in this release Major features Text extraction – Retrieve plain or formatted text from PDFs, Office documents, emails, e‑books, archives and more. Advanced search – Page‑level access with case‑sensitive, whole‑word, and regular‑expression search options. Structured content parsing – Detect and extract document hierarchy such as headings, paragraphs, tables and custom text areas. Template parsing – Use predefined templates to pull strongly‑typed fields from invoices, receipts and other business documents. Image extraction – Pull embedded raster images from supported document and image formats. Attachment extraction – Export file attachments embedded in documents. Barcode scanning – Detect and read barcodes present in documents. OCR support – Perform optical character recognition on scanned PDFs and raster images, with optional spell‑checking. Metadata extraction – Access document properties like author, creation date, and custom metadata. Table of contents extraction – Retrieve TOC structures from supported formats. Hyperlink extraction – Extract hyperlinks (currently limited to a subset of formats). Supported document formats Word processing – DOC, DOCX, RTF, TXT, ODT PDF \u0026amp; markup – PDF, HTML/MHTML, Markdown, XML Spreadsheets – XLS, XLSX, ODS, CSV Presentations – PPT, PPTX, ODP Email \u0026amp; notes – PST, OST, EML, MSG, ONE eBooks \u0026amp; web content – EPUB, MOBI, AZW3, CHM, FB2 Images – JPEG, PNG, TIFF, GIF, BMP, SVG Archives \u0026amp; containers – ZIP, RAR, 7Z, TAR, GZ, BZ2 Platform support Windows, Linux, and macOS Python 3.5+ Installation Download the appropriate WHL package for your platform from the GroupDocs Releases page:\nWindows x64 Windows x32 Linux macOS macOS ARM Install the package with pip (replace * with the actual file name you downloaded):\npip install groupdocs_parser_net-25.12-*.whl Getting started The following snippet shows how to extract plain text from a PDF file:\nfrom groupdocs.parser import Parser # Create a Parser instance for your document with Parser(\u0026#34;sample.pdf\u0026#34;) as parser: # Extract text from the document text = parser.GetText() # Print all extracted text to the console print(text) For more complex scenarios—such as using templates, OCR, or barcode scanning—refer to the API reference and the code samples repository linked below.\nHow to get the update Direct download – Choose the WHL package matching your OS from the GroupDocs Releases page. pip upgrade – Once a newer version is published, upgrade with: pip install --upgrade groupdocs_parser_net Resources Documentation API Reference Live Demos Code examples on GitHub Free Support Forum ","permalink":"https://blog.groupdocs.com/parser/groupdocs-parser-for-python-25-12/","summary":"GroupDocs.Parser for Python 25.12 brings the complete .NET parsing engine to Python, enabling extraction of text, images, OCR, barcodes, metadata and structured content from over 30 document types.","title":"GroupDocs.Parser for Python 25.12 – December 2025 Release Highlights"},{"content":"We’re pleased to announce the GroupDocs.Editor for .NET 25.12 release, now available as of December 2025. This update is a pure bug-fix build — no new features or API changes were introduced.\nWhat’s new in this release Bug fixes (3)\nIssue ID Category Summary EDITORNET‑2962 Bug Fixed problems with numbered lists after editing a DOCX file. EDITORNET‑2963 Bug Resolved the “Undefined” label that appeared after saving edited content to DOCX. EDITORNET‑3003 Bug Updated HTML table binding to use class-selectors instead of ID-selectors when applying rulesets. These corrections are primarily focused on a list processing in WordProcessing documents.\nHow to get the update NuGet – Upgrade to the latest package:\ndotnet add package GroupDocs.Editor The package contains assemblies for .NET 6.0 and .NET 4.6.2.\nDirect download – Grab the binaries from the official release page:\nhttps://releases.groupdocs.com/editor/net/#direct-download\nAdditional resources Product overview – https://docs.groupdocs.com/editor/net/product-overview/ System requirements – https://docs.groupdocs.com/editor/net/system-requirements/ Technical support – https://docs.groupdocs.com/editor/net/technical-support/ Free Support Forum – https://forum.groupdocs.com/c/editor/20 ","permalink":"https://blog.groupdocs.com/editor/groupdocs-editor-for-net-25-12/","summary":"The December 2025 GroupDocs.Editor for .NET 25.12 release delivers three critical bug fixes, enhancing DOCX editing and HTML table handling.","title":"GroupDocs.Editor for .NET 25.12 – December 2025 Release Highlights"},{"content":"What’s new in this release Feature ID Description CONVERSIONNET‑8090 Disable external asset loading in email files – Adds the ability to block loading of external resources (images, stylesheets, etc.) when converting email messages. This improves security and can speed up conversion. CONVERSIONNET‑8124 Full font embedding for Word → PDF – Introduces an option to embed the complete set of fonts used in a WordProcessing document when converting to PDF, guaranteeing identical text rendering on any system. Using the new API Skipping external resources in email conversion var loadOptions = new EmailLoadOptions { SkipExternalResources = true }; When SkipExternalResources is set to true, all external assets are ignored.\nWhitelisting selected resources var loadOptions = new EmailLoadOptions { SkipExternalResources = true, WhitelistedResources = { \u0026#34;trusted-domain.com\u0026#34;, \u0026#34;.jpeg\u0026#34;, \u0026#34;.png\u0026#34; } }; Resources that match an entry in WhitelistedResources are loaded normally; everything else remains blocked.\nEmbedding full fonts in PDF conversion var convertOptions = new PdfConvertOptions(); convertOptions.EmbedFullFonts = true; Setting EmbedFullFonts to true forces the converter to embed the complete font files in the resulting PDF.\nFixes and enhancements Issue ID Type Description CONVERSIONNET‑8108 Bug Conversion of AI, PSD, PSB files to FODP/POT failed. CONVERSIONNET‑8109 Bug Conversion of AI, PSD, PSB files to XPS failed. CONVERSIONNET‑8024 Bug The order of attachment icons in generated PDFs was incorrect. CONVERSIONNET‑8131 Bug IConverterListener.Started() was not invoked at the start of the conversion process. These fixes restore full compatibility for Adobe Illustrator, Photoshop, and large Photoshop (PSB) source files, correct PDF attachment rendering, and ensure listener callbacks fire as documented.\nHow to get the update NuGet – Choose the package that matches your target framework:\nFor .NET 6+ (cross-platform):\ndotnet add package GroupDocs.Conversion --version 25.12 For .NET Framework 4.6.2+:\ndotnet add package GroupDocs.Conversion.NETFramework --version 25.12 Since version 25.1.0, the library has been split into two separate packages to better support each platform.\nDirect download – Download the compiled assemblies for .NET from the official release page:\nhttps://releases.groupdocs.com/conversion/net/25.12/\nResources Full Release Notes – https://releases.groupdocs.com/conversion/net/25.12/ Documentation – https://docs.groupdocs.com/conversion/net/ Support Forum – https://forum.groupdocs.com/c/conversion/ ","permalink":"https://blog.groupdocs.com/conversion/groupdocs-conversion-for-net-25-12/","summary":"Version 25.12 introduces external resource blocking for email conversion, full‑font embedding for PDF output, and a series of critical bug fixes.","title":"GroupDocs.Conversion for .NET 25.12 – December 2025 Release Highlights"},{"content":"We’re happy to announce the GroupDocs.Conversion for Python 25.12 release, available as of December 2025. This update expands platform coverage, widens the supported Python runtime matrix, and resolves a conversion‑specific bug.\nWhat’s new in this release Feature Description Issue [New feature] Linux platform support The library can now be executed on Linux‑based systems in addition to Windows and macOS. CONVERSIONPYTHON‑50 [New feature] Extended Python version support Supported interpreter versions are now 3.5 – 3.13, giving you flexibility to work with older or the latest Python releases. CONVERSIONPYTHON‑51 Fixes and enhancements Type Description Issue [Fix] RTF → PDF conversion Fixed an edge‑case where converting Rich Text Format documents to PDF produced incorrect output. CONVERSIONPYTHON‑37 How to get the update pip – Upgrade to the latest package version:\npip install --upgrade groupdocs-conversion==25.12 Direct download – Assemblies for the underlying .NET component are available on the GroupDocs.Conversion for Python via .NET 25.12 release page.\nResources Full Release Notes – https://releases.groupdocs.com/conversion/python/v25-12/ Developer Guide – https://docs.groupdocs.com/conversion/python-net/developer-guide/ Code Examples – https://github.com/groupdocs-conversion/GroupDocs.Conversion-for-Python-via-.NET Technical Support – https://docs.groupdocs.com/conversion/python-net/technical-support/ Free Support Forum – https://forum.groupdocs.com/c/conversion/11 ","permalink":"https://blog.groupdocs.com/conversion/groupdocs-conversion-for-python-25-12/","summary":"Version 25.12 of GroupDocs.Conversion for Python adds Linux support, broadens compatibility to Python 3.5–3.13, and resolves key conversion issues.","title":"GroupDocs.Conversion for Python 25.12 – December 2025 Release Highlights"},{"content":"We’re happy to announce the release of GroupDocs.Comparison for .NET 25.12, available as of December 2025.\nWith version 25.12, GroupDocs.Comparison introduces multiple enhancements and resolutions to improve overall stability and performance.\nFixes and enhancements [Enhancement] Image comparison performance optimization. (COMPARISONNET-4505) [Enhancement] SVG comparison enhancements. (COMPARISONNET-4617) How to get the update You can get the latest version from NuGet or download it directly from the GroupDocs website.\nNuGet GroupDocs.Comparison for .NET 25.12\nDirect download Download assemblies for both .NET and .NET Framework from the GroupDocs.Comparison for .NET 25.12 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-for-net-25-12/","summary":"GroupDocs.Comparison for .NET 25.12 is here.","title":"GroupDocs.Comparison for .NET 25.12 – December 2025 Release Highlights"},{"content":"What’s new in GroupDocs.Viewer for Python via .NET 25.12 (December 2025) Enhancement ID Linux platform support – the library can now be run on Linux without any code changes. VIEWERPYTHON‑109 Extended Python version compatibility – supported Python versions are now 3.5 – 3.13 (up from 3.9 – 3.11). VIEWERPYTHON‑110 Restructured and updated code examples – examples are now standalone, executable scripts that follow the current repository layout and include logging where appropriate. VIEWERPYTHON‑111 Linux support Version 25.12 adds native support for Linux. Existing applications built for Windows or macOS require no API changes to run on Linux; simply install the package on a Linux machine and execute your code as before.\nPython version compatibility The supported interpreter range has been broadened:\nRelease Supported Python versions 24.9 (previous) 3.9 – 3.11 25.12 (current) 3.5 – 3.13 This extension covers long‑term‑support (LTS) Python releases and the newest 3.12/3.13 runtimes, making the library suitable for CI pipelines, containerised deployments, and on‑premise environments that still rely on older interpreters.\nDocumentation and README updates The PyPI README now lists explicit installation prerequisites, basic runtime configuration, and several common usage scenarios. Documentation pages have been refreshed for consistency with the current API and repository structure. All example snippets are now standalone scripts with explanatory comments. Updated topics (with direct links): Hello World – https://docs.groupdocs.com/viewer/python-net/hello-world/ System Requirements – https://docs.groupdocs.com/viewer/python-net/system-requirements/ Installation – https://docs.groupdocs.com/viewer/python-net/installation/ How to Run Examples – https://docs.groupdocs.com/viewer/python-net/how-to-run-examples/ Licensing and Evaluation – https://docs.groupdocs.com/viewer/python-net/licensing-and-evaluation/ Code examples repository The example code base has been reorganised to align with the documentation flow:\nOne script per feature, placed under directories that match the corresponding documentation section. Consistent entry‑point naming (main.py or feature‑specific name) and file structure. Logging configuration added to examples where it adds diagnostic value. Repository: https://github.com/groupdocs-viewer/GroupDocs.Viewer-for-Python-via-.NET/\nDemo projects New and updated demo projects show how to run the library in typical environments:\nDocker (Linux) – https://github.com/groupdocs-viewer/GroupDocs.Viewer-for-Python-via-.NET/tree/master/Demos/hello-world-docker macOS (updated) – https://github.com/groupdocs-viewer/GroupDocs.Viewer-for-Python-via-.NET/tree/master/Demos/hello-world-macos How to get the update # Install or upgrade to the latest 25.12 release from PyPI pip install --upgrade groupdocs-viewer-net==25.12 Package: https://pypi.org/project/groupdocs-viewer-net/\nResources Full Release Notes – https://releases.groupdocs.com/viewer/python-net/release-notes/2025/groupdocs-viewer-for-python-via-net-25-12-release-notes/ Documentation – https://docs.groupdocs.com/viewer/python-net/ Support Forum – https://forum.groupdocs.com/c/viewer/9 Feel free to try the new Linux demo, report any issues on the support forum, and let us know how the broader Python compatibility helps your projects.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-python-25-12/","summary":"Version 25.12 introduces native Linux support, broadens Python compatibility to 3.5‑3.13, and provides refreshed documentation and standalone example scripts.","title":"GroupDocs.Viewer for Python 25.12 – December 2025 Release Highlights"},{"content":"What’s new in this release [Feature] Image digital signature support and validation (SIGNATURENET‑5528)\nIntroduces steganography‑based embedding of digital signatures into PNG and JPG images. Supports password‑protected signatures, stream/file handling, and full verification with optional detection thresholds.\n[Enhancement] LINQ queries optimization for signature operations (SIGNATURENET‑5500)\nRefactored LINQ logic across the library to reduce memory allocations and improve execution speed. Adds predicate‑based filtering for Search and Verify methods, enabling developers to pre‑filter signatures before expensive processing.\nFixes and enhancements [Bug Fix] Fixed GeneratePreview() type initializer exception with DOC format on Linux (SIGNATURENET‑5555)\nThe exception is no longer thrown when generating previews for Microsoft Word documents on Linux environments. How to use the new features Signing an image (steganography) using GroupDocs.Signature; using GroupDocs.Signature.Options; string inputFile = \u0026#34;image.png\u0026#34;; string outputFile = \u0026#34;signed_image.png\u0026#34;; string password = \u0026#34;MySecurePassword123\u0026#34;; using (Signature signature = new Signature(inputFile)) { ImageDigitalSignOptions signOptions = new ImageDigitalSignOptions { Password = password }; SignResult signResult = signature.Sign(outputFile, signOptions); if (signResult.Succeeded?.Count \u0026gt; 0) { Console.WriteLine(\u0026#34;Image signed successfully!\u0026#34;); Console.WriteLine($\u0026#34;Signatures added: {signResult.Succeeded.Count}\u0026#34;); } } Verifying a signed image using GroupDocs.Signature; using GroupDocs.Signature.Options; string signedFile = \u0026#34;signed_image.png\u0026#34;; string password = \u0026#34;MySecurePassword123\u0026#34;; using (Signature signature = new Signature(signedFile)) { ImageDigitalVerifyOptions verifyOptions = new ImageDigitalVerifyOptions { Password = password, DetectionThresholdPercent = 75 // optional, 0‑100% }; VerificationResult verifyResult = signature.Verify(verifyOptions); if (verifyResult.IsValid) { Console.WriteLine(\u0026#34;Digital signature is valid!\u0026#34;); Console.WriteLine($\u0026#34;Verified signatures: {verifyResult.Succeeded.Count}\u0026#34;); } else { Console.WriteLine(\u0026#34;Digital signature is invalid or not found.\u0026#34;); } } Advanced verification with full data extraction using (Signature signature = new Signature(\u0026#34;signed_image.png\u0026#34;)) { ImageDigitalVerifyOptions verifyOptions = new ImageDigitalVerifyOptions { Password = \u0026#34;MySecurePassword123\u0026#34;, UseFullDataExtraction = true, // maximum accuracy DetectionThresholdPercent = 85 }; VerificationResult verifyResult = signature.Verify(verifyOptions); if (verifyResult.IsValid \u0026amp;\u0026amp; verifyOptions.DetectedProbability.HasValue) { Console.WriteLine($\u0026#34;Signature detected with {verifyOptions.DetectedProbability.Value}% probability\u0026#34;); } } LINQ‑optimized search with predicate using GroupDocs.Signature; using GroupDocs.Signature.Options; using GroupDocs.Signature.Domain; using (Signature signature = new Signature(\u0026#34;document.pdf\u0026#34;)) { List\u0026lt;SearchOptions\u0026gt; searchOptions = new List\u0026lt;SearchOptions\u0026gt; { new TextSearchOptions() }; // Filter only text signatures containing \u0026#34;Approved\u0026#34; SearchResult result = signature.Search(searchOptions, sig =\u0026gt; sig is TextSignature txt \u0026amp;\u0026amp; txt.Text.Contains(\u0026#34;Approved\u0026#34;)); foreach (BaseSignature sig in result.Signatures) { Console.WriteLine($\u0026#34;Found: {((TextSignature)sig).Text}\u0026#34;); } } LINQ‑optimized verify with predicate using (Signature signature = new Signature(\u0026#34;signed_document.pdf\u0026#34;)) { TextVerifyOptions verifyOptions = new TextVerifyOptions(\u0026#34;John Smith\u0026#34;); // Verify only signatures on page 1 List\u0026lt;BaseSignature\u0026gt; result = signature.Verify(verifyOptions, sig =\u0026gt; sig.PageNumber == 1); Console.WriteLine($\u0026#34;Found {result.Count} verified signatures on page 1\u0026#34;); } How to get the update NuGet – Upgrade to the latest GroupDocs.Signature package: dotnet add package GroupDocs.Signature --version 25.12 Direct Download – Grab the compiled assemblies for .NET from the official release page:\nGroupDocs.Signature for .NET 25.12 DLLs Resources Full Release Notes – (link to the release notes page, if available) Documentation – https://docs.groupdocs.com/signature/net/ Support Forum – https://forum.groupdocs.com/c/signature/ ","permalink":"https://blog.groupdocs.com/signature/groupdocs-signature-for-net-25-12/","summary":"The 25.12 release adds steganography‑based image digital signatures, LINQ performance boosts, and critical fixes for Linux preview generation.","title":"GroupDocs.Signature for .NET 25.12 – December 2025 Release Highlights"},{"content":"We’re happy to announce the release of GroupDocs.Watermark for Python via .NET 25.12, available as of December 2025.\nThis release delivers a targeted improvement and a key bug fix to enhance product stability and formatting accuracy.\nFixes and enhancements [Enhancement] Technical improvements and internal optimization. (WATERMARKPYTHON-12) [Fix] Watermark appears corrupted when using TextAlignment.Center in image. (WATERMARKPYTHON-13) [Enhancement] Performance optimization for previewing large Word documents. (WATERMARKPYTHON-14) [Fix] High memory usage and long processing time with large TIFF files. (WATERMARKPYTHON-15) [Fix] Fixed incorrect watermark formatting when processing Word documents saved in ISO/IEC 29500 Strict (Open XML Strict) format. (WATERMARKPYTHON-16) [Feature] macOS ARM Support. (WATERMARKPYTHON-17) How to get the update You can get the latest version from Pypi or download it directly from the GroupDocs website.\nPypi GroupDocs.Watermark for Python via .NET 25.12\nDirect download Download assemblies for both .NET and .NET Framework from the GroupDocs.Watermark for Python via .NET 25.12 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/watermark/groupdocs-watermark-for-python-25-12/","summary":"GroupDocs.Watermark for Python via .NET 25.12 is here.","title":"GroupDocs.Watermark for Python via .NET 25.12 – December 2025 Release Highlights"},{"content":"We’re happy to announce GroupDocs.Assembly for .NET 25.12 – the Christmas release that’s available as of December 2025. This update adds full OOXML compliance handling, improves barcode generation on Linux, and resolves critical template‑processing issues.\nWhat’s new in this release Category Issue Summary Feature ASSEMBLYNET‑70 Implement explicit OOXML compliance specification for Word documents. Enhancement ASSEMBLYNET‑68 Add OOXML compliance support (Ecma, Transitional, Strict) for Word documents. Enhancement ASSEMBLYNET‑69 Preserve the original document’s compliance level automatically when possible. Enhancement ASSEMBLYNET‑75 Enforce a minimum X‑dimension for Codabar barcodes (more reliable generation). Enhancement ASSEMBLYNET‑76 Prevent transparent colors from being used during barcode generation on Linux. Fix ASSEMBLYNET‑73 Template expressions inside inline content controls (SdtRun) are now processed correctly. Fix ASSEMBLYNET‑60 Barcodes no longer render blank on Linux (.NET 8) assemblies. OOXML Compliance Support You can now choose the exact OOXML compliance level when saving a Word document (DOCX, DOCM, DOTX, etc.). The library also automatically preserves the source document’s compliance when the original is Transitional.\nNew public enumeration: OoxmlCompliance namespace GroupDocs.Assembly { /// \u0026lt;summary\u0026gt; /// Specifies the OOXML compliance level to use when saving Word documents to OOXML formats. /// \u0026lt;/summary\u0026gt; public enum OoxmlCompliance { /// \u0026lt;summary\u0026gt;ECMA‑376 compliance.\u0026lt;/summary\u0026gt; Ecma, /// \u0026lt;summary\u0026gt;ISO/IEC 29500:2008 Transitional compliance.\u0026lt;/summary\u0026gt; Transitional, /// \u0026lt;summary\u0026gt;ISO/IEC 29500:2008 Strict compliance.\u0026lt;/summary\u0026gt; Strict } } New property in LoadSaveOptions: OoxmlCompliance public class LoadSaveOptions { /// \u0026lt;summary\u0026gt; /// Gets or sets the OOXML compliance level to use when saving Word documents to OOXML formats. /// The default value is null, which means the compliance level will be determined automatically. /// \u0026lt;/summary\u0026gt; public OoxmlCompliance? OoxmlCompliance { get; set; } } How to specify an explicit OOXML compliance level var source = \u0026#34;template.docx\u0026#34;; var target = \u0026#34;output.docx\u0026#34;; var data = \u0026#34;data.json\u0026#34;; // Create LoadSaveOptions with explicit OOXML compliance var options = new LoadSaveOptions(FileFormat.Docx); options.OoxmlCompliance = OoxmlCompliance.Strict; // or Ecma, Transitional var dataSourceInfo = new DataSourceInfo(new JsonDataSource(data)); var assembler = new DocumentAssembler(); assembler.AssembleDocument(source, target, options, dataSourceInfo); How to preserve the original document’s compliance automatically var source = \u0026#34;template_transitional.docx\u0026#34;; // Document with Transitional compliance var target = \u0026#34;output.docx\u0026#34;; var data = \u0026#34;data.json\u0026#34;; // OoxmlCompliance is null by default – original compliance will be preserved var options = new LoadSaveOptions(FileFormat.Docx); // options.OoxmlCompliance remains null var dataSourceInfo = new DataSourceInfo(new JsonDataSource(data)); var assembler = new DocumentAssembler(); assembler.AssembleDocument(source, target, options, dataSourceInfo); // Output document keeps Transitional compliance Processing template expressions in inline content controls (SdtRun) var source = \u0026#34;template_with_sdtrun.docx\u0026#34;; var target = \u0026#34;output.docx\u0026#34;; var data = \u0026#34;data.json\u0026#34;; // Template document contains: // - SdtBlock: \u0026lt;\u0026lt;[field1]\u0026gt;\u0026gt; // - SdtRun (inline): \u0026lt;\u0026lt;[field2]\u0026gt;\u0026gt; // Now correctly processed // - Regular text: \u0026lt;\u0026lt;[field3]\u0026gt;\u0026gt; var options = new LoadSaveOptions(FileFormat.Docx); var dataSourceInfo = new DataSourceInfo(new JsonDataSource(data)); var assembler = new DocumentAssembler(); assembler.AssembleDocument(source, target, options, dataSourceInfo); // All template expressions, including those in SdtRun, are replaced. Fixes and enhancements [Enhancement] Codabar barcode generation now enforces a minimum X‑dimension (ASSEMBLYNET‑75). [Enhancement] Barcode rendering on Linux avoids transparent colors (ASSEMBLYNET‑76). [Fix] Template expressions inside SdtRun controls are processed (ASSEMBLYNET‑73). [Fix] Barcodes no longer appear blank on Linux (.NET 8) (ASSEMBLYNET‑60). How to get the update NuGet – Upgrade to the latest GroupDocs.Assembly package:\ndotnet add package GroupDocs.Assembly --version 25.12 (The same package works for .NET 6+, .NET 5, and .NET Framework 4.6.2.)\nDirect download – Download the compiled assemblies for .NET from the official release page:\nGroupDocs.Assembly for .NET 25.12 DLLs only\nResources Full Release Notes Documentation GroupDocs Assembly Free Support Forum ","permalink":"https://blog.groupdocs.com/assembly/groupdocs-assembly-for-net-25-12/","summary":"The December 2025 release of GroupDocs Assembly for .NET (v25.12) introduces explicit OOXML compliance selection, improved barcode handling on Linux, and critical fixes for template expressions, delivering more reliable document assembly.","title":"GroupDocs.Assembly for .NET 25.12 – December 2025 Release Highlights"},{"content":"What’s new in this release [Enhancement] Implement table extraction without a template from presentations (PARSERNET‑2776)\nThe parser can now extract all tables from a presentation file directly, without the need to supply a layout template.\n[Enhancement] Implement table extraction without a template from spreadsheets (PARSERNET‑2775)\nTable extraction works for Excel‑style spreadsheets, returning only ListObject tables. The pageIndex argument maps to the worksheet index.\nBoth enhancements keep the public API unchanged, so existing code continues to compile.\nUsage – Extract tables from a presentation using (Parser parser = new Parser(filePath)) { // Returns every table found in the whole presentation IEnumerable\u0026lt;PageTableArea\u0026gt; tables = parser.GetTables(); } Usage – Extract tables from a spreadsheet using (Parser parser = new Parser(filePath)) { int pageIndex = 0; // Worksheet index // Returns ListObject tables from the specified worksheet IEnumerable\u0026lt;PageTableArea\u0026gt; tables = parser.GetTables(pageIndex); } Fixes and enhancements Category Description Enhancement Table extraction without a template from presentations (PARSERNET‑2776) Enhancement Table extraction without a template from spreadsheets (PARSERNET‑2775) No public API or breaking changes were introduced in this release.\nHow to get the update NuGet – Upgrade to the latest GroupDocs.Parser package:\ndotnet add package GroupDocs.Parser --version 25.12.0 dotnet add package GroupDocs.Parser.NETFramework --version 25.12.0 Choose the appropriate target‑framework package (e.g., .NET 6, .NET Framework 4.6.2) from the NuGet gallery.\nDirect download – Assemblies for .NET and .NET Framework are available on the GroupDocs.Parser for .NET 25.12 release page.\nhttps://releases.groupdocs.com/parser/net/new-releases/groupdocs.parser-for-.net-25.12-dlls-only/\nhttps://releases.groupdocs.com/parser/net/new-releases/groupdocs.parser-for-.net-25.12/\nResources Full Release Notes API Documentation GroupDocs.Parser Free Support Forum ","permalink":"https://blog.groupdocs.com/parser/groupdocs-parser-for-net-25-12/","summary":"GroupDocs.Parser for .NET 25.12 adds template‑free table extraction for presentations and spreadsheets while keeping the API stable.","title":"GroupDocs.Parser for .NET 25.12 – December 2025 Release Highlights"},{"content":"We’re happy to announce the GroupDocs.Viewer for .NET 25.11 release, available as of November 2025. This major update introduces a new rendering option for PowerPoint presentations and resolves a large number of bugs across all supported formats.\nWhat’s new in this release [New feature] *Add option to render placeholders in headers and footers of slide * (VIEWERNET‑5551)\nThe GroupDocs.Viewer now has an option to include the placeholder text defined in header and footer of a slide when rendering an input Presentation document to any output format. The feature is exposed through a new Boolean property RenderHeaderFooterPlaceholders, defined in the PresentationOptions class:\n// Enable exposing of header/footer placeholders when rendering to PDF PdfViewOptions options = new PdfViewOptions(); options.PresentationOptions.RenderHeaderFooterPlaceholders = true; using (Viewer viewer = new Viewer(\u0026#34;sample.pptx)) { viewer.View(options); } This change does not affect existing rendering behaviour when the property is left at its default value (false).\nFixes and enhancements The following issues have been resolved. All bug IDs reference the internal tracker (e.g., VIEWERNET-xxxx).\nCategory Issue Summary Bug VIEWERNET-5550 Content added to PowerPoint footers was invisible when rendering to any format. Bug VIEWERNET-5530 Arabic fonts were rendered incorrectly when converting DOCX to PDF. Bug VIEWERNET-5408 PDF‑to‑HTML conversion suffered from slow rendering speed. Bug VIEWERNET-4964 Custom DefaultFontName caused malformed text in PDF-to-HTML output. Bug VIEWERNET-4941 Intermittent character rendering errors on Windows Server 2019. Bug VIEWERNET-5024 Text was not converted correctly during PDF‑to‑HTML conversion. Bug VIEWERNET-5514 Explicit page numbering for Spreadsheet formats was processed incorrectly on consecutive calls. Bug VIEWERNET-5513 In trial mode, WordProcessing documents generated with an out-of-range page number caused failures. Bug VIEWERNET-5480 PDF rendering could break completely under certain conditions. Bug VIEWERNET-5515 TIFF rendering threw exceptions on Linux when using the cross-platform viewer. Bug VIEWERNET-4540 PDF files displayed with swapped letters and shifted lines. Bug VIEWERNET-5516 Licensed mode WordProcessing-to-PDF conversion failed when the requested page number exceeded the document’s page count. No additional enhancements were introduced in this version.\nHow to get the update NuGet – Upgrade to the latest package via NuGet. Use the appropriate feed for your target platform:\nCross-platform .NET 6 – GroupDocs.Viewer.CrossPlatform\ndotnet add package GroupDocs.Viewer.CrossPlatform --version 25.11 Windows-only .NET Framework 4.6.2 / .NET 6 – GroupDocs.Viewer\nInstall-Package GroupDocs.Viewer -Version 25.11 Direct download – Assemblies for both .NET and .NET Framework can be downloaded from the GroupDocs.Viewer for .NET 25.11 release page.\nResources Full Release Notes – https://releases.groupdocs.com/viewer/net/release-notes/2025/groupdocs-viewer-for-net-25-11-release-notes/ Documentation – https://docs.groupdocs.com/viewer/net/ Free Support Forum – https://forum.groupdocs.com/c/viewer/9 Stay tuned for future updates, and thank you for using GroupDocs.Viewer!\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-net-25-11/","summary":"The November 2025 release (v25.11) of GroupDocs.Viewer for .NET adds a new option to render PowerPoint header/footer placeholders and fixes numerous issues across all supported document types.","title":"GroupDocs.Viewer for .NET 25.11 – November 2025 Release Highlights"},{"content":"What’s new in this release [Enhancement] Implement extraction of tables from DOCX documents without a template (PARSERNET-2755)\nThis enhancement adds the ability to pull table data straight from DOCX files, eliminating the need for a pre‑defined extraction template. The public API remains unchanged.\nUsage Extract tables from a specific page using (Parser parser = new Parser(filePath)) { int pageIndex = 0; IEnumerable\u0026lt;PageTableArea\u0026gt; tables = parser.GetTables(pageIndex); } Extract tables from the entire document using (Parser parser = new Parser(filePath)) { IEnumerable\u0026lt;PageTableArea\u0026gt; tables = parser.GetTables(); } Fixes and enhancements [Enhancement] Extraction of tables from DOCX documents without a template (PARSERNET-2755) No bug fixes are included in this release.\nHow to get the update NuGet – Upgrade to the latest GroupDocs.Parser package via NuGet. Choose the package that matches your target platform:\nCross‑platform .NET 6:\nNuGet\\Install-Package GroupDocs.Parser -Version 25.11.0 Windows‑only .NET Framework 4.6.2 and .NET 6:\nNuGet\\Install-Package GroupDocs.Parser.NETFramework -Version 25.11.0 Direct Download – Download the assemblies for .NET and .NET Framework from the GroupDocs.Parser for .NET 25.11 release page:\nhttps://releases.groupdocs.com/parser/net/new-releases/groupdocs.parser-for-.net-25.11-dlls-only/\nhttps://releases.groupdocs.com/parser/net/new-releases/groupdocs.parser-for-.net-25.11/\nResources Documentation – Explore the full API reference and usage guides on the official docs site: https://docs.groupdocs.com/parser/net/ Support Forum – Ask questions or report issues in the GroupDocs.Parser community forum: https://forum.groupdocs.com/c/parser/ ","permalink":"https://blog.groupdocs.com/parser/groupdocs-parser-for-net-25-11/","summary":"Version 25.11 adds native DOCX table extraction to GroupDocs.Parser for .NET, with updated NuGet packages and documentation.","title":"GroupDocs.Parser for .NET 25.11 – November 2025 Release Highlights"},{"content":"We’re happy to announce the GroupDocs.Conversion for .NET 25.11 release, available as of November 2025. This update adds two major features, introduces a new public API property, and resolves ten conversion‑related bugs.\nWhat’s new in this release New features ID Feature CONVERSIONNET‑8050 PSD/PSB support on .NET 6 – you can now convert Photoshop (.psd, .psb) files when targeting .NET 6. CONVERSIONNET‑8082 Advanced PDF page‑resize scaling modes – four new ResizeMode options (ScaleToFit, ScaleToWidth, ScaleToHeight, ScaleToFill) give fine‑grained control over how content is scaled when converting to PDF. Public API change (backward‑incompatible) The PdfConvertOptions class now exposes a ResizeMode property (type PageResizeMode). The default remains AlignTopLeft, which keeps the original layout unchanged. Switching to any of the new scaling strategies is as simple as setting the property before conversion.\nusing (Converter converter = new Converter(\u0026#34;sample.pdf\u0026#34;)) { PdfConvertOptions options = new PdfConvertOptions(); // Proportional scaling to fit the target page size options.ResizeMode = PageResizeMode.ScaleToFit; options.SizeSettings.PageSize = PageSize.A4; converter.Convert(\u0026#34;converted.pdf\u0026#34;, options); } For a complete reference, see the ResizeMode documentation.\nFixes and enhancements ID Category Description CONVERSIONNET‑8105 Bug Fixed conversion of AI, PSD and PSB files to MHTML/HTML. CONVERSIONNET‑8106 Bug Fixed conversion of AI, PSD and PSB files to FODS/SXC/XLT. CONVERSIONNET‑8081 Bug Corrected PDF page‑size changes that previously cropped content from the top instead of the bottom. CONVERSIONNET‑8079 Bug Resolved corrupted XPS output when converting MOBI files that contain specific or limited pages. CONVERSIONNET‑8051 Bug Fixed PSB conversion across all supported target frameworks. CONVERSIONNET‑6461 Bug Optimized DWG → PDF conversion to dramatically reduce CPU and memory consumption. CONVERSIONNET‑8083 Bug Email‑attachment processing is now reliable during conversion. CONVERSIONNET‑8103 Bug Fixed spreadsheet‑to‑HTML/MHTML conversion failures. How to get the update NuGet – Upgrade to the latest GroupDocs.Conversion package via NuGet. Choose the appropriate target‑framework package:\nCross‑platform .NET 6 → GroupDocs.Conversion.Net.Core\nWindows‑only .NET Framework 4.6.2 / .NET 6 → GroupDocs.Conversion.Net\nDirect download – Download the compiled assemblies (both .NET Framework and .NET Core) from the GroupDocs.Conversion for .NET 25.11 release page on the GroupDocs website.\nResources Full release notes – (see the release notes page for this version) Documentation – https://docs.groupdocs.com/conversion/net/ Free Support Forum – https://forum.groupdocs.com/c/conversion/7 Stay tuned for more updates, and thank you for using GroupDocs.Conversion!\n","permalink":"https://blog.groupdocs.com/conversion/groupdocs-conversion-for-net-25-11/","summary":"GroupDocs.Conversion for .NET 25.11 introduces Photoshop file support, new PDF resize options, and fixes ten conversion bugs.","title":"GroupDocs.Conversion for .NET 25.11 – November 2025 Release Highlights"},{"content":"We’re pleased to announce the GroupDocs.Conversion for Node.js via Java v25.11 release, available as of November 2025. This update brings a critical compatibility fix for the newest Node.js 20+ runtimes, upgrades the underlying Java library, and introduces a few public API changes.\nWhat’s new in this release Compatibility fix [Fix] CONVERSIONNODEJS-257 – GroupDocs.Conversion for Node.js via Java is now fully compatible with the latest Node.js 20+ versions.\nThis resolves runtime errors that occurred when the native Java bridge was loaded under newer Node.js binaries. Underlying library update [Enhancement] CONVERSIONNODEJS-258 – The Java dependency has been upgraded to GroupDocs.Conversion for Java v25.9.\nAll improvements and bug‑fixes that were part of the Java 25.4 – 25.9 releases are now included automatically. Package README updates The npm package README was refreshed to include:\nKey product features System requirements Installation instructions Quick-start code samples Usage scenarios Documentaiton updates Updated documentation topics:\nSystem Requirements: System Requirements Installation: Install GroupDocs.Conversion for Node.js via Java How to Run Examples: How to Run Examples Licensing: Licensing Added new documentation topic:\nRunning in Docker: Running in Docker Public API changes Converter class The Converter class constructor that accepts a stream has been removed and replaced with a stream supplier: const fs = require(\u0026#39;fs\u0026#39;); const java = require(\u0026#39;java\u0026#39;); const path = require(\u0026#39;path\u0026#39;); // Create read stream from file const readStream = fs.createReadStream(\u0026#34;source.docx\u0026#34;); // Convert to GroupDocs input stream const stream = await groupdocs.readDataFromStream(readStream); // Create Supplier\u0026lt;InputStream\u0026gt; that returns the stream (equivalent to Java lambda: () -\u0026gt; stream) const streamSupplier = java.newProxy(\u0026#39;java.util.function.Supplier\u0026#39;, { get: function() { return stream; } }); // Initialize converter with stream data const converter = new groupdocs.Converter(streamSupplier); PdfConvertOptions class Method setWidth renamed to setPageWidth Method setHeight renamed to setPageHeight // Configure PDF conversion options with advanced settings const convertOptions = new groupdocs.PdfConvertOptions(); convertOptions.setPageWidth(1024); // Set output width convertOptions.setPageHeight(768); // Set output height How to get the update npm – Upgrade the package to the latest version: npm install @groupdocs/groupdocs.conversion@25.11.0 Direct download – Grab the latest JARs and supporting files from the official release page Resources Product Home Release Notes Documentation System Requirements Installation Guide Support Pricing Stay tuned for upcoming releases that will bring further format support, performance optimisations, and API refinements. If you encounter any issues or have suggestions, please let us know via the support forum. Happy coding!\n","permalink":"https://blog.groupdocs.com/conversion/groupdocs-conversion-for-node-js-25-11/","summary":"GroupDocs.Conversion for Node.js 25.11 brings Node.js 20+ support, a Java library upgrade, and new API adjustments.","title":"GroupDocs.Conversion for Node.js 25.11 – November 2025 Release Highlights"},{"content":"We’re happy to announce the GroupDocs.Merger for .NET 25.11 release, available as of November 2025. This update brings a new capability for tagged‑PDF merging, a set of cross‑platform bug fixes, and several quality improvements.\nWhat’s new in this release New feature Preserve accessibility metadata when merging tagged PDFs – a new PreserveAccessibility option in the PdfJoinOptions class lets you keep the PDF/UA structure (tags) of source documents during a merge. When enabled, the resulting PDF contains auto‑generated accessibility tags, improving compliance with assistive‑technology requirements. Enhancement Improved handling of accessibility metadata – the underlying merger logic has been updated to retain the tagged‑PDF information rather than discarding it, which reduces the need for post‑merge accessibility remediation. Using the new API using GroupDocs.Merger; using GroupDocs.Merger.Options; // ... var pdfJoinOptions = new PdfJoinOptions { PreserveAccessibility = true // keep PDF/UA tags }; merger.Join(sourceFiles, pdfJoinOptions); Fixes and enhancements Category Issue ID Summary Bug MERGERNET-2050 Diagram document operations fail on macOS/Linux because of missing font paths. Bug MERGERNET-1007 Merging several Word files can create duplicate pages. Bug MERGERNET-1102 Exception “Rounding digits must be between 0 and 15, inclusive” when merging two DOCX files. Bug MERGERNET-987 Merged document size grows excessively. Bug MERGERNET-1174 Unable to change PDF page orientation during merge. Bug MERGERNET-2049 VSD format operations throw NullReferenceException. Bug MERGERNET-2070 Corrupted output when the new merged PDF is shorter than the existing file. Bug MERGERNET-2053 Merging PDF and SVG fails on macOS due to missing font configuration. Bug MERGERNET-2051 Note document operations fail on macOS/Linux because of missing font paths. Bug MERGERNET-799 SetVentureLicensed method in Slides venture licensing does not work correctly. Additional improvements The merger engine now performs more robust validation of input streams, which reduces the likelihood of unexpected NullReferenceExceptions on edge‑case files. Internal performance tweaks decrease the CPU load for large‑scale PDF joins when PreserveAccessibility is disabled. How to get the update NuGet – Upgrade to the latest GroupDocs.Merger package (v 25.11) via the NuGet Gallery:\ndotnet add package GroupDocs.Merger --version 25.11.0\nor use the Package Manager Console:\nInstall-Package GroupDocs.Merger -Version 25.11.0\nDirect download – Assemblies for .NET 6/.NET Framework are available on the GroupDocs release page (if you need a zip bundle, check the Downloads section of the release notes).\nResources Full Release Notes – GroupDocs.Merger for .NET 25.11 Release Notes Documentation – https://docs.groupdocs.com/merger/net/ Support Forum – https://forum.groupdocs.com/c/merger/9 If you have any questions or run into issues, feel free to drop a note in the forum or open a support ticket. Happy merging!\n","permalink":"https://blog.groupdocs.com/merger/groupdocs-merger-for-net-25-11/","summary":"The November 2025 release of GroupDocs.Merger for .NET 25.11 adds PreserveAccessibility for tagged‑PDF merging, numerous bug fixes, and performance tweaks.","title":"GroupDocs.Merger for .NET 25.11 – November 2025 Release Highlights"},{"content":"We’re happy to announce the release of GroupDocs.Watermark for .NET 25.11, available as of November 2025.\nThis release delivers a targeted improvement and a key bug fix to enhance product stability and formatting accuracy.\nFixes and enhancements [Fix] Fixed incorrect watermark formatting when processing Word documents saved in ISO/IEC 29500 Strict (Open XML Strict) format. (WATERMARKNET-2109) [Enhancement] Technical improvements and internal optimization. (WATERMARKNET-2103) How to get the update You can get the latest version from NuGet or download it directly from the GroupDocs website.\nNuGet GroupDocs.Watermark for .NET 25.11\nDirect download Download assemblies for both .NET and .NET Framework from the GroupDocs.Watermark for .NET 25.11 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/watermark/groupdocs-watermark-for-net-25-11/","summary":"GroupDocs.Watermark for .NET 25.11 is here.","title":"GroupDocs.Watermark for .NET 25.11 – November 2025 Release Highlights"},{"content":"What’s new in this release Category Identifier Description Fix COMPARISONNODEJS-19 Resolved compatibility issues with Node.js 20+. The library now installs and runs correctly on the latest LTS versions. Key Fix – Node.js 20+ Compatibility Before version 25.11, the package failed to install on Node.js 20.x and higher.\nThis release updates the underlying Java bridge, ensuring the @groupdocs/groupdocs.comparison package works seamlessly on the current Node.js LTS line.\nUpdated Package README The npm package README was refreshed to include:\nKey product features System requirements Installation instructions Quick-start code samples Usage scenarios Documentation Updates The following documentation topics were fully revised and improved:\nSystem Requirements\nhttps://docs.groupdocs.com/comparison/nodejs-java/system-requirements/\nExpanded to cover development, CI, and production environments in more depth.\nInstallation\nhttps://docs.groupdocs.com/comparison/nodejs-java/installation/\nUpdated with clearer installation steps for npm and GroupDocs.Releases.\nHow to Run Examples\nhttps://docs.groupdocs.com/comparison/nodejs-java/how-to-run-examples/\nRevised with improved guidance, simplified steps, and updated prerequisites.\nNewly added documentation:\nRunning in Docker\nhttps://docs.groupdocs.com/comparison/nodejs-java/running-in-docker/\nA complete, step-by-step guide for running the library inside Docker images. Additionally, all code samples across the documentation were reviewed and reworked to ensure they run without modification.\nHow to Get the Update npm – Install or upgrade to version 25.11: Package page: https://www.npmjs.com/package/@groupdocs/groupdocs.comparison\nDirect Download – Available from GroupDocs.Releases: Download page:\nhttps://releases.groupdocs.com/comparison/nodejs-java/new-releases/groupdocs.comparison-for-node.js-via-java-25.11/\nResources Release Notes Documentation Home Free Support Forum ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-for-node-js-25-11/","summary":"GroupDocs.Comparison for Node.js v25.11 introduces Node 20+ compatibility, an improved README with quick-start samples, new Docker deployment documentation, and multiple documentation refinements.","title":"GroupDocs.Comparison for Node.js 25.11 – November 2025 Release Highlights"},{"content":"We’re happy to announce the GroupDocs.Search for .NET 25.11 release, available as of November 2025. This update brings a small but useful enhancement for plain‑text files and a fix that makes text extraction with backup privileges reliable.\nWhat’s new in this release [Enhancement] Implement default text extractor for plain‑text file types (SEARCHNET‑3524) – the library now includes a built‑in extractor for .log files, so you can index those documents without writing a custom extractor. Fixes and enhancements [Fix] Error during text extraction with backup privileges resolved (SEARCHNET‑3522) – the Extractor now works correctly when ExtractionOptions.UseBackupPrivilege is set to true.\nPublic API change: a new TempFolder property was added to GroupDocs.Search.Common.ExtractorSettings to let you specify a temporary working directory. using GroupDocs.Search; using GroupDocs.Search.Common; // Configure a temporary folder for the extractor (required for the fix) Extractor extractor = new Extractor(); extractor.Settings.TempFolder = @\u0026#34;C:\\Temp\\SearchExtractor\u0026#34;; // Enable backup privilege when extracting ExtractionOptions options = new ExtractionOptions { UseBackupPrivilege = true }; // Load the protected document Document document = Document.CreateFromFile(@\u0026#34;C:\\Docs\\protected.docx\u0026#34;); // Perform extraction ExtractedData data = extractor.Extract(document, options); // ...process `data` as needed How to get the update NuGet – Upgrade to the latest package: # Package Manager NuGet\\Install-Package GroupDocs.Search -Version 25.11.0 # .NET CLI dotnet add package GroupDocs.Search --version 25.11.0 # Package Manager NuGet\\Install-Package GroupDocs.Search.NETFramework -Version 25.11.0 # .NET CLI dotnet add package GroupDocs.Search.NETFramework --version 25.11.0 Direct Download – Download the compiled assemblies for .NET from the official release page:\nhttps://releases.groupdocs.com/search/net/new-releases/groupdocs.search-for-.net-25.11-dlls-only/\nhttps://releases.groupdocs.com/search/net/new-releases/groupdocs.search-for-.net-25.11/ Resources Full Release Notes – https://releases.groupdocs.com/search/net/release-notes/2025/groupdocs-search-for-net-25-11-release-notes/ (or the page you are reading) Documentation – https://docs.groupdocs.com/search/net/ Free Support Forum – https://forum.groupdocs.com/c/search/ Feel free to upgrade and let us know if you encounter any issues. Happy searching!\n","permalink":"https://blog.groupdocs.com/search/groupdocs-search-for-net-25-11/","summary":"The November 2025 25.11 release introduces a default .log text extractor and fixes backup‑privilege extraction, improving indexing and reliability.","title":"GroupDocs.Search for .NET 25.11 – November 2025 Release Highlights"},{"content":"We’re happy to announce the GroupDocs.Viewer for .NET UI 8.1.2 release, available as of November 2025. This update focuses on stability and usability improvements for the web‑based viewer UI for ASP.NET Core.\nWhat’s new in 8.1.2 # Change Details 1️⃣ Printing in image mode fixed The print dialog now works correctly when the viewer is configured to render pages as images (PNG/JPEG). Page numbers are updated and the Print button triggers the expected browser print flow. 2️⃣ Optional page‑scroll animation UI navigation can now skip the smooth scroll animation. Set EnableScrollAnimation to false in the UI configuration to jump instantly to the target page. 3️⃣ Thumbnail generation optimized for image mode When rendering to PNG/JPEG the actual page image is reused as a thumbnail, eliminating the extra thumbnail‑creation step and speeding up image‑only rendering. 4️⃣ Local fonts only The viewer no longer loads web fonts; it uses only the fonts installed on the host machine. This resolves the font‑fallback issue reported in #75. Disable scroll animation (code example) builder.Services.AddGroupDocsViewerUI(config =\u0026gt; { // Turn off the animated page‑scroll effect config.EnableScrollAnimation = false; }); When EnableScrollAnimation is set to false, page navigation switches instantly, as shown in the before/after animations on the release page.\nFixes and enhancements Printing in image mode – Resolved two bugs reported on the Free Support Forum where the print dialog either did nothing or displayed stale page numbers. Performance boost for image rendering – Skipping thumbnail generation reduces CPU and memory usage when exporting to PNG/JPEG. Font handling – Switching to local fonts eliminates the missing‑font problem that could cause layout differences across machines. How to Get the Update If you already have the package installed, open your .csproj file and update the GroupDocs.Viewer.UI* package versions to 8.1.2.\nIf you want to install the package for the first time, check the README or browse the Examples for the most common use cases.\nResources Full release notes – https://github.com/groupdocs-viewer/GroupDocs.Viewer-for-.NET-UI/releases/tag/8.1.2 Examples - https://github.com/groupdocs-viewer/GroupDocs.Viewer-for-.NET-UI/tree/main/samples Documentation – https://github.com/groupdocs-viewer/GroupDocs.Viewer-for-.NET-UI Free Support Forum – https://forum.groupdocs.com/c/viewer/9 Thank you for using GroupDocs.Viewer for .NET UI! If you encounter any issues or have suggestions, please share your feedback on GitHub or in our Free Support Forum.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-net-ui-8-1-2/","summary":"GroupDocs.Viewer for .NET UI 8.1.2 adds printing fixes, performance boosts, and new UI options.","title":"GroupDocs.Viewer for .NET UI 8.1.2 – November 2025 Release Highlights"},{"content":"What’s new in this release Feature Category Summary EDITORNET-2969 New feature Add option to delete a worksheet from a spreadsheet. (Documentation) EDITORNET-2968 New feature Add option to delete slides from a presentation. (Documentation) EDITORNET-2940 Improvement Correct auto‑format detection during the Save operation. The two new features expand the public API, giving developers fine‑grained control over spreadsheet and presentation editing. The improvement fixes an edge case where the library could mis‑detect the source file format when saving, ensuring the output matches the intended format.\nFixes and enhancements No bug fix releases are included in this version. The focus of 25.11 is on the new deletion capabilities and the auto format detection improvement.\nHow to get the update NuGet – Upgrade to the latest GroupDocs.Editor package:\nhttps://www.nuget.org/packages/GroupDocs.Editor\n(Supports .NET 6.0 and .NET 4.6.2)\nDirect download – Grab the assemblies directly from the GroupDocs release page:\nhttps://releases.groupdocs.com/editor/net/#direct-download\nAdditional resources Product Overview System Requirements Technical Support Free Support Forum ","permalink":"https://blog.groupdocs.com/editor/groupdocs-editor-for-net-25-11/","summary":"Version 25.11 introduces worksheet and slide deletion capabilities and improves auto‑format detection for reliable saves.","title":"GroupDocs.Editor for .NET 25.11 – November 2025 Release Highlights"},{"content":"We’re happy to announce the GroupDocs.Parser for .NET 25.10 release, available as of October 2025. This update brings a new table‑extraction capability, several API refinements, and a critical fix for PDF pagination.\nWhat’s new in this release 📄 Extract tables from any page (PARSERNET‑2745) Added two overloads to GroupDocs.Parser.Parser that let you pull table structures directly from a document, without needing a template.\nIEnumerable\u0026lt;PageTableArea\u0026gt; GetTables() – extracts tables from the whole document. IEnumerable\u0026lt;PageTableArea\u0026gt; GetTables(int pageIndex) – extracts tables from a specific page. Note: PageTableArea represents a detected table region together with its cells, page reference and bounding rectangle.\nExample – Get tables from a single page using (Parser parser = new Parser(filePath)) { int pageIndex = 0; // first page (zero‑based) IEnumerable\u0026lt;PageTableArea\u0026gt; tables = parser.GetTables(pageIndex); // iterate over tables foreach (var table in tables) { // work with table.Cells, table.Page, etc. } } 🔧 API redesign – internal PageTableArea constructor (PARSERNET‑2743) The public constructor of GroupDocs.Parser.Data.PageTableArea has been removed and is now internal. Instances of this class are created exclusively by the Parser engine, preventing accidental misuse. This is a backward‑incompatible change for anyone who instantiated PageTableArea directly.\n🐞 Fix – PDF parsing limited to first 4 pages (PARSERNET‑1871) The parser now correctly processes all pages of a PDF document. Previously, only the first four pages were returned when calling the parsing API.\nHow to get the update NuGet – Upgrade to the latest package:\ndotnet add package GroupDocs.Parser --version 25.10.1 dotnet add package GroupDocs.Parser.NETFramework --version 25.10.1 Choose the appropriate target‑framework package if you are on .NET Framework or .NET 6+.\nDirect download – Grab the compiled assemblies from the official release page:\nhttps://releases.groupdocs.com/parser/net/new-releases/groupdocs.parser-for-.net-25.10-dlls-only/\nhttps://releases.groupdocs.com/parser/net/new-releases/groupdocs.parser-for-.net-25.10/\nResources Full release notes – the official “GroupDocs.Parser for .NET 25.10 Release Notes” page: https://releases.groupdocs.com/parser/net/release-notes/2025/groupdocs-parser-for-net-25-10-release-notes/ Documentation – detailed API reference and usage guides: https://docs.groupdocs.com/parser/net/ Support forum – ask questions or report issues: https://forum.groupdocs.com/c/parser/ ","permalink":"https://blog.groupdocs.com/parser/groupdocs-parser-for-net-25-10/","summary":"GroupDocs.Parser for .NET 25.10 adds table extraction, refines the API, and fixes PDF pagination.","title":"GroupDocs.Parser for .NET 25.10 – October 2025 Release Highlights"},{"content":"We’re happy to announce the GroupDocs.Total for .NET 25.9 release, available as of October 2025. This update removes the heavy Classification library from the Total bundle, upgrades a number of component libraries, and ships several defect fixes.\nImportant notice Starting with version 25.9, GroupDocs.Classification is no longer shipped as part of the GroupDocs.Total package.\nThe library ships large machine‑learning model files that considerably increase the total package size and can affect performance for projects that do not use classification features.\nIf you need classification capabilities, add the library separately from NuGet or download it from the official releases page.\nWhat’s new in this release Updated products Product Version change Release notes GroupDocs.Conversion for .NET 25.8 → 25.9 Release notes GroupDocs.Viewer for .NET 25.8 → 25.9 Release notes GroupDocs.Comparison for .NET 25.8 → 25.9 Release notes GroupDocs.Watermark for .NET 25.2 (no change) Release notes GroupDocs.Merger for .NET 25.7 → 25.9 Release notes GroupDocs.Metadata for .NET 25.8 (no change) Release notes GroupDocs.Search for .NET 25.5 → 25.9 Release notes GroupDocs.Assembly for .NET 25.6 (no change) Release notes GroupDocs.Signature for .NET 25.6 (no change) Release notes GroupDocs.Editor for .NET 25.7 (no change) Release notes GroupDocs.Parser for .NET 25.8 (no change) Release notes GroupDocs.Redaction for .NET 25.3 → 25.9 Release notes GroupDocs.Annotation for .NET 24.12 (no change) Release notes Fixes Issue Component Description TOTALNET‑278 Search Fixed situation where a search returned an empty fragments list. TOTALNET‑284 Parser Resolved “file type not supported” error when opening password‑protected documents. TOTALNET‑286 Conversion Fixed CommentDisplayMode option – now respects the selected display mode. TOTALNET‑301 Annotation Fixed FileNotSupportedException that was thrown for JTIF image files. No new public‑API features were introduced in this release.\nHow to get the update NuGet Upgrade the appropriate Total package:\nGroupDocs.Total – .NET 6.0+ https://www.nuget.org/packages/GroupDocs.Total\nGroupDocs.Total.NETFramework – .NET Framework 4.6.2+ https://www.nuget.org/packages/GroupDocs.Total.NETFramework\nDirect download Compiled binaries for both .NET 6 and .NET Framework are available via the direct download page:\nhttps://releases.groupdocs.com/total/net/#direct-download\nAdditional resources Product overview – https://docs.groupdocs.com/total/net/product-overview/ System requirements – https://docs.groupdocs.com/total/net/system-requirements/ Technical support – https://docs.groupdocs.com/total/net/technical-support/ Free Support Forum – https://forum.groupdocs.com/c/total/8 If you have any questions, encounter issues, or want to share feedback, please let us know through the support forum linked above. We’ll be glad to help!\n","permalink":"https://blog.groupdocs.com/total/groupdocs-total-for-net-25-9/","summary":"GroupDocs.Total for .NET 25.9, released October 2025, updates core components, drops the Classification library to reduce size, and includes important bug fixes.","title":"GroupDocs.Total for .NET 25.9 – October 2025 Release Highlights"},{"content":"We’re happy to announce the release of GroupDocs.Watermark for .NET 25.10, available as of October 2025.\nThis release introduces important updates, performance improvements, and issue resolutions for a more stable and efficient workflow.\nFixes and enhancements [Enhancement] Performance optimization for previewing large Word documents. (WATERMARKNET-2096) [Enhancement] Technical improvements and internal optimization. (WATERMARKNET-2099) [Fix] High memory usage and long processing time with large TIFF files. (WATERMARKNET-1918) How to get the update You can get the latest version from NuGet or download it directly from the GroupDocs website.\nNuGet GroupDocs.Watermark for .NET 25.10\nDirect download Download assemblies for both .NET and .NET Framework from the GroupDocs.Watermark for .NET 25.10 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/watermark/groupdocs-watermark-for-net-25-10/","summary":"GroupDocs.Watermark for .NET 25.10 is here.","title":"GroupDocs.Watermark for .NET 25.10 – October 2025 Release Highlights"},{"content":"We’re happy to announce the release of GroupDocs.Comparison for .NET 25.10, available as of October 2025.\nThis release includes key reliability and performance enhancements, along with significant improvements in PDF comparison functionality.\nFixes and enhancements [Fix] Incorrect text wrapping in PDF paragraph comparison results. (COMPARISONNET-4407) [Fix] Incorrect paragraph position calculation in the result PDF document. (COMPARISONNET-4406) [Fix] PDF comparison generates an abnormally large number of pages. (COMPARISONNET-4369) [Enhancement] Preserving vector graphics from the target PDF document. (COMPARISONNET-4566) [Enhancement] Retention of background color for text in PDF comparison output. (COMPARISONNET-4567) [Enhancement] Improved performance and accuracy in detecting identical pages in PDFs. (COMPARISONNET-4568) [Fix] Some text not displayed in Word comparison output. (COMPARISONNET-4565) [Fix] PDF comparison output is messed up. (COMPARISONNET-4343) [Enhancement] Enhanced speed of PDF comparison. (COMPARISONNET-4577) How to get the update You can get the latest version from NuGet or download it directly from the GroupDocs website.\nNuGet GroupDocs.Comparison for .NET 25.10\nDirect download Download assemblies for both .NET and .NET Framework from the GroupDocs.Comparison for .NET 25.10 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-for-net-25-10/","summary":"GroupDocs.Comparison for .NET 25.10 is here.","title":"GroupDocs.Comparison for .NET 25.10 – October 2025 Release Highlights"},{"content":"We’re happy to announce the release of GroupDocs.Comparison for .NET 25.11, available as of November 2025.\nIn version 25.11, GroupDocs.Comparison includes various enhancements and issue resolutions to ensure better reliability and performance.\nFixes and enhancements [Fix] Image preview ignores the width and height preview options. (COMPARISONNET-4606) [Fix] Support comparing Email documents in MHTML format. (COMPARISONNET-4604) [Fix] ShowOnlySummaryPage option does not affect PDF documents. (COMPARISONNET-4539) [Enhancement] Technical improvements. (COMPARISONNET-4603) How to get the update You can get the latest version from NuGet or download it directly from the GroupDocs website.\nNuGet GroupDocs.Comparison for .NET 25.11\nDirect download Download assemblies for both .NET and .NET Framework from the GroupDocs.Comparison for .NET 25.11 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-for-net-25-11/","summary":"GroupDocs.Comparison for .NET 25.11 is here.","title":"GroupDocs.Comparison for .NET 25.11 – November 2025 Release Highlights"},{"content":"We’re happy to announce GroupDocs.Conversion for .NET 25.10, available as of October 2025.\nThis minor release brings a set of page‑layout enhancements, new load‑option capabilities, and a handful of critical bug fixes. The most visible change is a public API refactor that groups margin and size settings into dedicated objects, improving consistency across all conversion options.\nWhat’s new in this release ID Feature CONVERSIONNET‑8032 Add support for setting page size, margins and orientation in EmailLoadOptions before conversion. CONVERSIONNET‑8013 Add support for setting page margins in SpreadsheetOptions before conversion. CONVERSIONNET‑8012 Add support for setting page size in SpreadsheetOptions before conversion. CONVERSIONNET‑8009 Add support for setting page size in TxtLoadOptions and WordProcessingLoadOptions before conversion. CONVERSIONNET‑8008 Add support for setting page margins in TxtLoadOptions and WordProcessingLoadOptions before conversion. These additions let you fine‑tune the layout of the source document before the conversion step, giving you tighter control over the appearance of the resulting files.\nAPI Refactoring – Page Layout Settings (Breaking Changes) ⚠️ BREAKING CHANGE (effective v26.1) – Twenty individual margin/size properties are deprecated and will be removed in the next major version.\nThe new model introduces two helper objects that replace the old scalar properties:\nAffected class Deprecated properties Replacement PdfConvertOptions (7) MarginTop, MarginBottom, MarginLeft, MarginRight → MarginSettingsPageSize, PageWidth, PageHeight → SizeSettings MarginSettings (PageMarginOptions), SizeSettings (PageSizeOptions) WordProcessingConvertOptions (7) Same as PDF Same as PDF EBookConvertOptions (3) PageSize, PageWidth, PageHeight → SizeSettings SizeSettings CadConvertOptions (3) PageSize, PageWidth, PageHeight → SizeSettings SizeSettings New helper classes public class PageMarginOptions { public float? Top { get; set; } public float? Bottom { get; set; } public float? Left { get; set; } public float? Right { get; set; } } public sealed class PageSizeOptions { public PageSize PageSize { get; set; } public float PageWidth { get; set; } // Setting this forces PageSize = PageSize.Custom public float PageHeight { get; set; } // Setting this forces PageSize = PageSize.Custom } Migration guide Migrating page margins Old approach (deprecated)\nvar options = new PdfConvertOptions { MarginTop = 10, MarginBottom = 10, MarginLeft = 20, MarginRight = 20 }; New approach (recommended)\nvar options = new PdfConvertOptions { MarginSettings = new PageMarginOptions { Top = 10, Bottom = 10, Left = 20, Right = 20 } }; Migrating page size settings Old approach (deprecated)\n// Predefined size var pdfOptions = new PdfConvertOptions { PageSize = PageSize.A4 }; // Custom dimensions var wpOptions = new WordProcessingConvertOptions { PageWidth = 612, // points (Letter width) PageHeight = 792 // points (Letter height) }; New approach (recommended)\n// Predefined size var pdfOptions = new PdfConvertOptions { SizeSettings = new PageSizeOptions { PageSize = PageSize.A4 } }; // Custom dimensions var wpOptions = new WordProcessingConvertOptions { SizeSettings = new PageSizeOptions { PageWidth = 612, // points PageHeight = 792 // points // PageSize automatically becomes PageSize.Custom } }; Adopting the new objects eliminates ambiguity (the previous API mixed points and pixels) and aligns all conversion options under a common, discoverable model.\nFixes and enhancements ID Issue type Description CONVERSIONNET‑8031 Bug PreserveOriginalDate set to false was previously ignored on .NET. CONVERSIONNET‑8023 Bug Fluent‑syntax conversions failed when no explicit convert options were supplied. CONVERSIONNET‑8020 Bug WordProcessing conversion threw an unhandled exception due to missing Microsoft.Extensions.DependencyInjection (v8.0.0.0). CONVERSIONNET‑8006 Bug WordProcessingConvertOptions treated PageWidth/PageHeight as pixels instead of points. CONVERSIONNET‑8005 Bug PdfConvertOptions.Margin* properties were not respected during PDF conversion. These fixes tighten reliability across the most common conversion scenarios and bring the library in line with expected .NET behavior.\nHow to get the update NuGet – Upgrade to the latest GroupDocs.Conversion package:\ndotnet add package GroupDocs.Conversion --version 25.10 (The same package works for .NET 6+, .NET Framework 4.6.2, and .NET Core.)\nDirect download – Assemblies for both .NET and .NET Framework are available on the release page:\nhttps://releases.groupdocs.com/conversion/net/25-10/\nResources Full release notes – (link to the official release notes page, if available) Documentation – https://docs.groupdocs.com/conversion/net/ Support forum – https://forum.groupdocs.com/c/conversion/12 ","permalink":"https://blog.groupdocs.com/conversion/groupdocs-conversion-for-net-25-10/","summary":"GroupDocs.Conversion for .NET 25.10 introduces page‑size and margin controls, a unified API for layout settings, and several bug fixes.","title":"GroupDocs.Conversion for .NET 25.10 – October 2025 Release Highlights"},{"content":"We’re happy to announce the GroupDocs.Metadata for .NET 25.10 release, available as of October 2025. This update focuses on strengthening the library’s internal security while keeping the public API unchanged.\nWhat’s new in this release [Improvement] Internal security hardening – the runtime now includes a set of protections that mitigate a number of previously‑unaddressed attack vectors. No functional changes are exposed through the public API, so existing code continues to work without modification. Note: The security enhancements are applied automatically when you upgrade the package; no additional configuration is required.\nFixes and enhancements There are no bug fixes or UI enhancements in this version. The release is a clean security‑focused update.\nHow to get the update NuGet – Upgrade to the latest GroupDocs.Metadata package: dotnet add package GroupDocs.Metadata --version 25.10.0 or, via the NuGet UI / Package Manager Console:\nInstall-Package GroupDocs.Metadata -Version 25.10.0 Direct Download – Download the compiled assemblies (both .NET 6 and .NET Framework) from the official release page:\nhttps://releases.groupdocs.com/metadata/net/new-releases/groupdocs.metadata-for-.net-25-10-dlls-only/\nResources Full Release Notes – the source of truth for this update. Documentation – API reference, usage guides, and sample code. GroupDocs.Metadata Support Forum – ask questions, report issues, and share feedback. ","permalink":"https://blog.groupdocs.com/metadata/groupdocs-metadata-for-net-25-10/","summary":"The GroupDocs.Metadata for .NET 25.10 release brings internal security hardening while keeping the public API unchanged, with a simple NuGet upgrade.","title":"GroupDocs.Metadata for .NET 25.10 – October 2025 Release Highlights"},{"content":"We’re pleased to announce the GroupDocs.Annotation for .NET 25.11 release, now available as of November 2025. This update focuses on internal library upgrades, third‑party dependency refreshes, and stability improvements for document processing.\nWhat’s new in 25.11 Key Category Summary ANNOTATIONNET-2634 Enhancement Upgrade product with the latest versions of internal libraries ANNOTATIONNET-2635 Enhancement Update external third‑party dependencies to latest versions ANNOTATIONNET-2607 Enhancement Improve product stability for document processing Upgrade product with the latest versions of internal libraries The release bundles the newest builds of GroupDocs internal components. The updated libraries bring:\nBetter compatibility across the GroupDocs ecosystem (Viewer, Compare, Converter, etc.). Enhanced document processing capabilities and broader format support. Cross‑product functionality improvements that translate into smoother annotation workflows. Update external third‑party dependencies to latest versions All external dependencies—.NET runtime libraries, image‑processing modules, and document‑parsing utilities—have been refreshed to their current stable releases. Benefits include:\nPerformance gains from upstream optimizations. Bug fixes and security patches supplied by third‑party maintainers. Improved compatibility with modern development environments and CI pipelines. Improve product stability for document processing Stability has been a primary focus for this version. The enhancements cover:\nRobust error handling to prevent crashes on malformed or edge‑case documents. Optimized memory management and more aggressive resource cleanup, reducing the memory footprint during long‑running annotation sessions. Consistent performance when processing multiple documents sequentially. These changes collectively make annotation operations more reliable, especially in high‑throughput or server‑side scenarios.\nHow to get the update NuGet – Upgrade to the latest GroupDocs.Annotation package:\nCross‑platform .NET 6+:\ndotnet add package GroupDocs.Annotation --version 25.11 .NET Framework 4.6.2 / .NET 6 (Windows‑only):\nInstall-Package GroupDocs.Annotation -Version 25.11 Direct Download – Grab the compiled assemblies for .NET and .NET Framework from the official release page:\nGroupDocs.Annotation for .NET 25.11 DLLs\n(If the direct‑download link is not yet published, the NuGet packages provide the same binaries.)\nResources Full Release Notes – Detailed change log: GroupDocs.Annotation for .NET 25.11 Release Notes Documentation – API reference and usage guides: https://docs.groupdocs.com/annotation/net/ Support Forum – Ask questions or report issues: https://forum.groupdocs.com/c/annotation/9 ","permalink":"https://blog.groupdocs.com/annotation/groupdocs-annotation-for-net-25-11/","summary":"GroupDocs.Annotation for .NET 25.11 delivers upgraded internal libraries, updated third‑party dependencies, and enhanced stability for annotation workflows.","title":"GroupDocs.Annotation for .NET 25.11 – November 2025 Release Highlights"},{"content":"We’re pleased to announce the GroupDocs.Total for Java 25.10 release, available as of October 2025. This update bundles the latest versions of all constituent libraries into a single JAR, reducing disk‑space requirements and simplifying dependency management.\nWhat’s new in this release The following libraries are embedded in the 25.10 JAR. Their versions have been bumped to the latest stable releases; detailed changelogs are linked for each component.\nEmbedded product Version Release notes GroupDocs.Annotation for Java 25.6 Release notes GroupDocs.Comparison for Java 25.5 Release notes GroupDocs.Conversion for Java 25.9 Release notes GroupDocs.Editor for Java 25.3 Release notes GroupDocs.Merger for Java 25.9 Release notes GroupDocs.Metadata for Java 24.12 Release notes GroupDocs.Parser for Java 25.5 Release notes GroupDocs.Redaction for Java 25.5 Release notes GroupDocs.Search for Java 25.4 Release notes GroupDocs.Signature for Java 24.7 Release notes GroupDocs.Viewer for Java 25.9 Release notes GroupDocs.Watermark for Java 25.9 Release notes GroupDocs.Assembly for Java 25.6 Release notes Future releases will continue to add any new GroupDocs products to the single‑JAR bundle.\nHow to obtain the update Direct download If you prefer to manage binaries manually, the compiled JAR can be downloaded from the official release page:\nGroupDocs.Total for Java 25.10 – Download JAR Resources Full release notes (this page) Individual product documentation: GroupDocs.Annotation for Java GroupDocs.Comparison for Java … (see the table above for links to each product’s release notes) Free Support Forum ","permalink":"https://blog.groupdocs.com/total/groupdocs-total-for-java-25-10/","summary":"GroupDocs.Total for Java 25.10 combines the latest versions of all GroupDocs Java components into a single JAR, simplifying dependency management and reducing package size.","title":"GroupDocs.Total for Java 25.10 – October 2025 Release Highlights"},{"content":"The Python Integration Challenge: Why Direct Import Doesn\u0026rsquo;t Work Attempting to directly import GroupDocs.Annotation for .NET into Python using pythonnet typically results in a frustrating ReflectionTypeLoadException. The library refuses to load, making it appear that this powerful document markup solution is incompatible with Python environments.\nThis comprehensive tutorial demonstrates two effective strategies to successfully bridge GroupDocs.Annotation for .NET with Python, addressing the fundamental obstacle of loading obfuscated assemblies containing embedded dependencies. Each approach provides varying degrees of control and sophistication, ranging from streamlined wrapper-based interfaces to comprehensive manual type resolution.\nKey learning outcomes:\nUnderstanding why GroupDocs.Annotation cannot load directly in Python environments Implementing two functional strategies for Python integration Complete code samples ready for immediate implementation in your projects Detailed setup instructions for Windows and cross-platform environments Guidance on selecting the appropriate approach for your specific markup requirements Access Complete Working Examples All code samples featured in this tutorial are hosted in our official GitHub repository. You can clone, download, or explore the complete functional examples to begin implementing document markup capabilities in your Python applications.\n🔗 Repository Link GroupDocs.Annotation Python Integration Examples\nUnderstanding the Integration Barrier: Assembly Loading Issues The Direct Import Problem GroupDocs.Annotation for .NET employs obfuscation and embedded dependencies to safeguard intellectual property. This presents a core challenge when attempting to utilize it directly with pythonnet:\n# ❌ This approach WILL NOT work import os import sys # Load coreclr first from pythonnet import load load(\u0026#34;coreclr\u0026#34;) import clr # Add folder with the library and dependencies to the system path dll_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), \u0026#34;dlls\u0026#34;)) sys.path.append(dll_dir) # Add reference to the library clr.AddReference(\u0026#34;GroupDocs.Annotation\u0026#34;) # Import the license class from GroupDocs.Annotation import License lic = License() lic.SetLicense(\u0026#34;license.lic\u0026#34;) Technical Analysis The Core Issue: GroupDocs.Annotation incorporates referenced assemblies (such as Aspose.* libraries) directly into the primary DLL with obfuscation. When pythonnet attempts to load the assembly:\nType Discovery Phase: pythonnet endeavors to enumerate all public types to construct Python module proxies Dependency Resolution: During enumeration, the CLR attempts to resolve embedded dependencies Failure Point: The standard .NET assembly resolver cannot extract obfuscated, embedded DLLs from resources Outcome: ReflectionTypeLoadException is thrown, preventing pythonnet from creating the Python module Root Cause:\nMost obfuscators depend on a bootstrap/resolver that executes in your entry assembly Since Python serves as the host (rather than a .NET executable), the bootstrap never runs The embedded dependencies remain inaccessible to the standard .NET assembly resolver Strategy 1: Wrapper-Based Integration (Streamlined Approach) Complexity Level: Low | Control Level: High-Level API | Best for: Rapid prototyping and straightforward markup workflows\nThe wrapper-based strategy employs a custom C# wrapper library that encapsulates standard markup operations and delivers simplified static methods. This technique manages dependency resolution internally, making it perfect for uncomplicated markup tasks with minimal Python/.NET interoperability complexity.\nMechanism: The wrapper library serves as a conduit between Python and GroupDocs.Annotation, managing all intricate dependency resolution while presenting clean, straightforward APIs for Python consumption.\n// C# Wrapper Implementation (SimpleWrapper.cs) using GroupDocs.Annotation.Models; using GroupDocs.Annotation.Options; using GroupDocs.Annotation.Models.AnnotationModels; namespace GroupDocs.Annotation.Wrapper; public static class SimpleWrapper { public static void AddAnnotation(string inputPath, string outputPath) { Console.WriteLine(\u0026#34;Start adding area annotation...\u0026#34;); using (var annotator = new Annotator(inputPath)) { var areaAnnotation = new AreaAnnotation { Box = new Rectangle(100, 100, 200, 50), BackgroundColor = 65535, CreatedOn = DateTime.Now, Message = \u0026#34;Sample annotation\u0026#34; }; annotator.Add(areaAnnotation); annotator.Save(outputPath); } Console.WriteLine(\u0026#34;Annotation added successfully!\u0026#34;); } } # Python Usage (add_annotation_wrapper.py) import os import sys import clr # Add the dlls directory to the path dll_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), \u0026#34;dlls\u0026#34;)) sys.path.append(dll_dir) # Load coreclr from pythonnet import load load(\u0026#34;coreclr\u0026#34;) # Add reference to the wrapper clr.AddReference(\u0026#34;GroupDocs.Annotation.Wrapper\u0026#34;) # Import the wrapper class from GroupDocs.Annotation.Wrapper import SimpleWrapper # Use the simplified API SimpleWrapper.AddAnnotation(\u0026#34;files/resume.docx\u0026#34;, \u0026#34;files/annotated.docx\u0026#34;) Why This Strategy Succeeds The wrapper library operates in a .NET environment where the obfuscation bootstrap can execute correctly. It manages all intricate dependency resolution internally, then presents simple static methods that Python can invoke without concerning itself with the underlying complexity.\nSee the wrapper strategy in action:\nWhen to use this strategy: Rapid prototyping, straightforward markup workflows, and users who favor high-level APIs without requiring granular control over markup properties.\nStrategy 2: Manual Type Resolution (Comprehensive Control) Complexity Level: Medium | Control Level: Complete | Best for: Sophisticated markup scenarios and advanced customization\nThe manual type resolution strategy utilizes the wrapper solely as a dependency resolver for embedded assemblies, then provides direct access to GroupDocs.Annotation types and methods. This grants you complete control over markup creation and customization.\nMechanism: The wrapper manages dependency resolution, but then you employ reflection to directly access GroupDocs.Annotation types, circumventing the import issues while preserving full API access.\n# Manual Type Resolution (add_annotation_manual.py) import os import sys import clr # Add the dlls directory to the path dll_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), \u0026#34;dlls\u0026#34;)) sys.path.append(dll_dir) # Load coreclr from pythonnet import load load(\u0026#34;coreclr\u0026#34;) # Add reference to the wrapper (for dependency resolution) clr.AddReference(\u0026#34;GroupDocs.Annotation.Wrapper\u0026#34;) # Now add reference to the main library clr.AddReference(\u0026#34;GroupDocs.Annotation\u0026#34;) # Import System for reflection import System from System import Type, Activator, Array # Get the Annotator type using reflection annotator_type = Type.GetType(\u0026#34;GroupDocs.Annotation.Annotator, GroupDocs.Annotation\u0026#34;) # Create annotator instance input_path = \u0026#34;files/resume.docx\u0026#34; annotator_instance = Activator.CreateInstance(annotator_type, input_path) # Get annotation types area_annotation_type = Type.GetType(\u0026#34;GroupDocs.Annotation.Models.AnnotationModels.AreaAnnotation, GroupDocs.Annotation\u0026#34;) rectangle_type = Type.GetType(\u0026#34;GroupDocs.Annotation.Models.Rectangle, GroupDocs.Annotation\u0026#34;) # Create rectangle for annotation rectangle_instance = Activator.CreateInstance(rectangle_type, 100, 100, 200, 50) # Create area annotation area_annotation = Activator.CreateInstance(area_annotation_type) area_annotation.Box = rectangle_instance area_annotation.BackgroundColor = 65535 area_annotation.CreatedOn = System.DateTime.Now area_annotation.Message = \u0026#34;Manual annotation\u0026#34; # Add annotation add_method = annotator_type.GetMethod(\u0026#34;Add\u0026#34;) add_method.Invoke(annotator_instance, [area_annotation]) # Save annotated document save_method = annotator_type.GetMethod(\u0026#34;Save\u0026#34;) save_method.Invoke(annotator_instance, [\u0026#34;files/annotated_manual.docx\u0026#34;]) print(\u0026#34;Manual annotation added successfully!\u0026#34;) Advanced Markup Customization With manual type resolution, you can access all GroupDocs.Annotation capabilities:\n# Advanced annotation with custom styling def advanced_annotation_example(): # Get TextAnnotation type text_annotation_type = Type.GetType(\u0026#34;GroupDocs.Annotation.Models.AnnotationModels.TextAnnotation, GroupDocs.Annotation\u0026#34;) text_annotation = Activator.CreateInstance(text_annotation_type) # Configure text annotation properties text_annotation.Box = rectangle_instance text_annotation.Text = \u0026#34;Important note\u0026#34; text_annotation.FontColor = 16711680 # Red color text_annotation.FontSize = 14 text_annotation.FontFamily = \u0026#34;Arial\u0026#34; text_annotation.CreatedOn = System.DateTime.Now text_annotation.Message = \u0026#34;Custom styled annotation\u0026#34; # Add multiple annotation types add_method.Invoke(annotator_instance, [text_annotation]) # Create arrow annotation arrow_annotation_type = Type.GetType(\u0026#34;GroupDocs.Annotation.Models.AnnotationModels.ArrowAnnotation, GroupDocs.Annotation\u0026#34;) arrow_annotation = Activator.CreateInstance(arrow_annotation_type) arrow_annotation.StartPoint = System.Drawing.Point(50, 50) arrow_annotation.EndPoint = System.Drawing.Point(150, 100) arrow_annotation.StrokeColor = 65280 # Green color arrow_annotation.StrokeWidth = 2 add_method.Invoke(annotator_instance, [arrow_annotation]) return annotator_instance See the manual strategy with comprehensive control:\nWhen to use this strategy: Sophisticated markup scenarios, advanced customization, and developers who require granular control over all GroupDocs.Annotation features.\nComprehensive Installation Guide Prerequisites System Requirements:\nOperating System: Windows 10/11 (x64), Linux, or macOS Python: 3.8+ (recommended: 3.11 or 3.12) .NET Runtime: .NET 6.0 or later Memory: Minimum 4GB RAM (8GB+ recommended for large documents) Disk Space: 500MB+ for dependencies and temporary files Python ↔ pythonnet ↔ .NET Compatibility Matrix Python Version pythonnet Version .NET Runtime Supported Target Frameworks Notes 3.7 – 3.10 2.5.x .NET Framework 4.6.2 – 4.8 net40, net45, net462, net48 ✅ Best for legacy .NET Framework DLLsRequires 64-bit Python + .NET Framework runtime 3.8 – 3.12 3.x (≥3.0.0) .NET 6 / .NET 7 / .NET 8 net6.0, net7.0, net8.0, netstandard2.0/2.1 ✅ Best for modern .NET buildsRequires .NET Desktop Runtime 6+ 3.13+ 3.x (≥3.0.3) .NET 6 / .NET 7 / .NET 8 Same as above ✅ SupportedRecommended for latest Python versions Detailed Installation Process Step 1: Python Environment Configuration\n# Create Python 3.11 virtual environment py -3.11 -m venv venv311 # Activate virtual environment (Windows) venv311\\Scripts\\activate # Verify Python version python --version Step 2: Install Required Packages\n# Upgrade pip and essential tools python -m ensurepip --upgrade python -m pip install --upgrade pip setuptools wheel # Install pythonnet 3.0.5 python -m pip install pythonnet==3.0.5 # Install project requirements pip install -r requirements.txt Step 3: Compile the Wrapper Library\n# Navigate to wrapper directory cd wrapper # Build and publish the wrapper dotnet publish -c Release -r win-x64 --self-contained false -o ./../dlls # Return to root directory cd .. Step 4: Execute the Examples\n# Activate virtual environment (if not already active) .venv\\Scripts\\activate # Run wrapper-based approach python add_annotation_wrapper.py # Run manual type resolution approach python add_annotation_manual.py Practical Implementation Scenarios Enterprise Applications Document Review \u0026amp; Collaborative Editing\nLegal firms: Mark up contracts, agreements, and legal documents for review processes Healthcare: Add medical notes and markup to patient records Education: Create interactive learning materials with markup and feedback Real Estate: Mark property details and comments on floor plans and documents Quality Assurance \u0026amp; Regulatory Compliance\nManufacturing: Mark up technical drawings and specifications for quality control Financial Services: Add compliance notes and audit trails to financial documents Government: Mark up policy documents and regulatory compliance materials Insurance: Mark up claim documents and policy reviews Content Management \u0026amp; Publishing Workflows\nPublishing houses: Collaborative editing and review of manuscripts Marketing agencies: Mark up design mockups and campaign materials Technical writing: Add comments and suggestions to technical documentation Translation services: Mark up documents for translation review Technical Implementation Scenarios Automated Document Processing\nBatch markup: Process hundreds of documents with consistent markup API integration: Add markup as part of document processing workflows Cloud services: Integrate markup capabilities into cloud-based applications Microservices: Deploy markup services as part of larger document processing systems Custom Markup Workflows\nForm processing: Add validation markup to form submissions Report generation: Automatically mark up reports with analysis results Document comparison: Highlight differences between document versions Template processing: Apply standard markup to document templates Begin Your GroupDocs.Annotation Journey Ready to implement powerful document markup functionality in your Python applications? Here\u0026rsquo;s your quick-start roadmap:\nStep 1: Obtain a Free Trial Download and install GroupDocs.Annotation for .NET from the official release page. No credit card required.\nFor testing all features without restrictions, grab a temporary license that gives you full access to the API.\nStep 2: Select Your Strategy Begin with Wrapper: Use the wrapper strategy for rapid prototyping and straightforward markup tasks Advance to Manual: Progress to manual type resolution when you need complete control over markup customization Test Comprehensively: Validate with your specific document types and markup requirements Monitor Performance: Evaluate performance with large documents and complex markup workflows Step 3: Discover Additional Resources Maximize your GroupDocs.Annotation experience with these comprehensive resources:\nComplete .NET Code Examples - Ready-to-use C# implementations Java Implementation Guide - Cross-platform solutions Node.js Examples - JavaScript/TypeScript integration Download Free Trial - Start marking up documents immediately API Documentation - Full technical reference Community Support Forum - Get help from experts and developers Frequently Asked Questions Q: Does GroupDocs.Annotation work with all document formats? A: Yes, it supports 50+ document formats including PDF, Word, Excel, PowerPoint, images, and more.\nQ: Can I use this in production environments? A: Yes, but we recommend comprehensive testing with your specific use cases before production deployment.\nQ: Do I need Microsoft Office installed? A: No. GroupDocs.Annotation is a standalone .NET library that works independently of Microsoft Office.\nQ: What\u0026rsquo;s the performance impact of the wrapper strategy? A: Minimal overhead. The wrapper adds a thin layer that doesn\u0026rsquo;t significantly impact markup performance.\nQ: Can I extend the wrapper with custom markup methods? A: Absolutely. The wrapper is open source and can be customized for your specific markup needs.\nQ: How many markup types are supported? A: GroupDocs.Annotation supports 10+ markup types including text, area, arrow, point, polyline, watermark, and more.\nConclusion: Selecting the Optimal Integration Strategy GroupDocs.Annotation for .NET delivers powerful document markup capabilities, but integrating it with Python requires overcoming dependency resolution challenges. As we\u0026rsquo;ve demonstrated, there are two proven strategies to address this:\nWrapper-Based Strategy - Perfect for rapid prototyping and straightforward markup workflows Manual Type Resolution - Ideal for sophisticated scenarios requiring complete API control The key is aligning the strategy with your project\u0026rsquo;s complexity and requirements. Both methods successfully resolve the core challenge of loading obfuscated assemblies with embedded dependencies, enabling you to harness GroupDocs.Annotation\u0026rsquo;s full power from Python applications.\nWhether you\u0026rsquo;re building document review systems, collaborative editing platforms, or automated content processing workflows, these integration strategies provide the foundation for robust, scalable document markup functionality in Python.\n","permalink":"https://blog.groupdocs.com/annotation/python-integration/","summary":"Discover how to seamlessly integrate GroupDocs.Annotation for .NET with Python applications using pythonnet. Explore two effective strategies to resolve dependency loading issues and enable comprehensive document markup capabilities.","title":"Annotating documents with Python: Two Proven Methods for Document Markup"},{"content":"Why Direct .NET Library Import Fails in Python If you\u0026rsquo;ve ever tried importing GroupDocs.Search for .NET directly into Python using pythonnet, you\u0026rsquo;ve likely encountered a frustrating ReflectionTypeLoadException. The library simply won\u0026rsquo;t load, leaving you wondering why such a powerful document search solution seems incompatible with Python.\nIn this comprehensive guide, you\u0026rsquo;ll learn two proven approaches to successfully integrate GroupDocs.Search for .NET with Python, overcoming the core challenge of loading obfuscated assemblies with embedded dependencies. Each method offers different levels of control and complexity, from simplified wrapper-based APIs to full manual type resolution.\nWhat you\u0026rsquo;ll learn:\nWhy GroupDocs.Search fails to load directly in Python environments How to implement 2 working approaches for Python integration Complete code examples you can use immediately in your projects Step-by-step setup instructions for both Windows and cross-platform environments When to use each approach for your specific use cases Download Complete Code Examples All the code samples demonstrated in this article are available in our official GitHub repository. You can clone, download, or browse the complete working examples to start implementing document search in your Python projects.\n🔗 Repository Link GroupDocs.Search Python Integration Examples\nThe Core Challenge: Dependency Resolution in Python Why Direct Import Fails GroupDocs.Search for .NET uses obfuscation and embedded dependencies to protect intellectual property. This creates a fundamental challenge when trying to use it directly with pythonnet:\n# ❌ This approach WILL NOT work import os import sys # Load coreclr first from pythonnet import load load(\u0026#34;coreclr\u0026#34;) import clr # Add folder with the library and dependencies to the system path dll_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), \u0026#34;dlls\u0026#34;)) sys.path.append(dll_dir) # Add reference to the library clr.AddReference(\u0026#34;GroupDocs.Search\u0026#34;) # Import the Index class from GroupDocs.Search import Index index = Index(\u0026#34;search_index\u0026#34;) index.Add(\u0026#34;documents_folder\u0026#34;) Root Cause Analysis The Problem: GroupDocs.Search embeds referenced assemblies (like Aspose.* libraries) directly into the main DLL with obfuscation. When pythonnet tries to load the assembly:\nType Enumeration Phase: pythonnet attempts to enumerate all public types to build Python module proxies Dependency Resolution: During enumeration, the CLR tries to resolve embedded dependencies Failure Point: The default .NET assembly resolver cannot extract obfuscated, embedded DLLs from resources Result: ReflectionTypeLoadException is thrown, causing pythonnet to fail creating the Python module Why This Happens:\nMost obfuscators rely on a bootstrap/resolver that runs in your entry assembly Since Python is the host (not a .NET executable), the bootstrap never executes The embedded dependencies remain inaccessible to the standard .NET assembly resolver Method 1: Wrapper-Based Approach (Simplified Integration) Complexity Level: Low | Control Level: High-Level API | Best for: Quick prototyping and simple search workflows\nThe wrapper-based approach uses a custom C# wrapper library that encapsulates common search operations and provides simplified static methods. This method handles dependency resolution internally, making it ideal for straightforward search tasks with minimal Python/.NET interop complexity.\nHow it works: The wrapper library acts as a bridge between Python and GroupDocs.Search, handling all the complex dependency resolution while exposing clean, simple APIs for Python consumption.\n// C# Wrapper Implementation (SearchWrapper.cs) using GroupDocs.Search; using System; using System.IO; public static class SearchWrapper { public static void BuildIndex(string indexPath, string documentsPath) { using (var index = new Index(indexPath)) { index.Add(documentsPath); } } public static string[] SearchDocuments(string indexPath, string query) { using (var index = new Index(indexPath)) { var searchResult = index.Search(query); var results = new string[searchResult.Count]; for (int i = 0; i \u0026lt; searchResult.Count; i++) { results[i] = searchResult[i].DocumentInfo.FileName; } return results; } } } # Python Usage (run_search_wrapper.py) import os import sys import clr # Add the dlls directory to the path dll_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), \u0026#34;dlls\u0026#34;)) sys.path.append(dll_dir) # Load coreclr from pythonnet import load load(\u0026#34;coreclr\u0026#34;) # Add reference to the wrapper clr.AddReference(\u0026#34;GroupDocs.Search.Wrapper\u0026#34;) # Import the wrapper class from GroupDocs.Search.Wrapper import SearchWrapper # Use the simplified API SearchWrapper.BuildIndex(\u0026#34;index\u0026#34;, \u0026#34;files\u0026#34;) results = SearchWrapper.SearchDocuments(\u0026#34;index\u0026#34;, \u0026#34;invoice\u0026#34;) print(f\u0026#34;Found {len(results)} documents: {results}\u0026#34;) Why This Approach Works The wrapper library runs in a .NET context where the obfuscation bootstrap can execute properly. It handles all the complex dependency resolution internally, then exposes simple static methods that Python can call without worrying about the underlying complexity.\nSee the wrapper approach in action:\nWhen to use this method: Quick prototyping, simple search workflows, and users who prefer high-level APIs without needing fine-grained control over search parameters.\nMethod 2: Manual Type Resolution Approach (Full Control) Complexity Level: Medium | Control Level: Complete | Best for: Complex search scenarios and advanced customization\nThe manual type resolution approach uses the wrapper only as a dependency resolver for embedded assemblies, then provides direct access to GroupDocs.Search types and methods. This gives you full control over index creation and search customization.\nHow it works: The wrapper handles dependency resolution, but then you use reflection to directly access GroupDocs.Search types, bypassing the import issues while maintaining full API access.\n# Manual Type Resolution (run_search_manual.py) import os import sys import clr # Add the dlls directory to the path dll_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), \u0026#34;dlls\u0026#34;)) sys.path.append(dll_dir) # Load coreclr from pythonnet import load load(\u0026#34;coreclr\u0026#34;) # Add reference to the wrapper (for dependency resolution) clr.AddReference(\u0026#34;GroupDocs.Search.Wrapper\u0026#34;) # Now add reference to the main library clr.AddReference(\u0026#34;GroupDocs.Search\u0026#34;) # Import System for reflection import System from System import Type, Activator, Array # Get the Index type using reflection index_type = Type.GetType(\u0026#34;GroupDocs.Search.Index, GroupDocs.Search\u0026#34;) # Create index instance index_path = \u0026#34;index\u0026#34; index_instance = Activator.CreateInstance(index_type, index_path) # Get the Add method add_method = index_type.GetMethod(\u0026#34;Add\u0026#34;, [System.String]) add_method.Invoke(index_instance, [\u0026#34;files\u0026#34;]) # Get the Search method search_method = index_type.GetMethod(\u0026#34;Search\u0026#34;, [System.String]) search_result = search_method.Invoke(index_instance, [\u0026#34;invoice\u0026#34;]) # Process search results result_count = search_result.Count print(f\u0026#34;Found {result_count} documents\u0026#34;) for i in range(result_count): document_info = search_result[i] file_name = document_info.DocumentInfo.FileName print(f\u0026#34;Document: {file_name}\u0026#34;) Advanced Search Customization With manual type resolution, you can access all GroupDocs.Search features:\n# Advanced search with custom options def advanced_search_example(): # Get SearchOptions type search_options_type = Type.GetType(\u0026#34;GroupDocs.Search.Options.SearchOptions, GroupDocs.Search\u0026#34;) search_options = Activator.CreateInstance(search_options_type) # Configure search options fuzzy_search_type = Type.GetType(\u0026#34;GroupDocs.Search.Options.FuzzySearch, GroupDocs.Search\u0026#34;) fuzzy_search = Activator.CreateInstance(fuzzy_search_type) fuzzy_search.Enabled = True fuzzy_search.SimilarityLevel = 0.8 # Set fuzzy search in options set_fuzzy_method = search_options_type.GetMethod(\u0026#34;set_FuzzySearch\u0026#34;) set_fuzzy_method.Invoke(search_options, [fuzzy_search]) # Perform advanced search search_method = index_type.GetMethod(\u0026#34;Search\u0026#34;, [System.String, search_options_type]) results = search_method.Invoke(index_instance, [\u0026#34;confidential\u0026#34;, search_options]) return results See the manual approach with full control:\nWhen to use this method: Complex search scenarios, advanced customization, and developers who need fine-grained control over all GroupDocs.Search features.\nComplete Setup Guide Prerequisites System Requirements:\nOperating System: Windows 10/11 (x64), Linux, or macOS Python: 3.8+ (recommended: 3.11 or 3.12) .NET Runtime: .NET 6.0 or later Memory: Minimum 4GB RAM (8GB+ recommended for large documents) Disk Space: 500MB+ for dependencies and temporary files Python ↔ pythonnet ↔ .NET Compatibility Matrix Python Version pythonnet Version .NET Runtime Supported Target Frameworks Notes 3.7 – 3.10 2.5.x .NET Framework 4.6.2 – 4.8 net40, net45, net462, net48 ✅ Best for legacy .NET Framework DLLsRequires 64-bit Python + .NET Framework runtime 3.8 – 3.12 3.x (≥3.0.0) .NET 6 / .NET 7 / .NET 8 net6.0, net7.0, net8.0, netstandard2.0/2.1 ✅ Best for modern .NET buildsRequires .NET Desktop Runtime 6+ 3.13+ 3.x (≥3.0.3) .NET 6 / .NET 7 / .NET 8 Same as above ✅ SupportedRecommended for latest Python versions Step-by-Step Installation Step 1: Python Environment Setup\n# Create Python 3.11 virtual environment py -3.11 -m venv venv311 # Activate virtual environment (Windows) venv311\\Scripts\\activate # Verify Python version python --version Step 2: Install Dependencies\n# Upgrade pip and essential tools python -m ensurepip --upgrade python -m pip install --upgrade pip setuptools wheel # Install pythonnet 3.0.5 python -m pip install pythonnet==3.0.5 # Install project requirements pip install -r requirements.txt Step 3: Build the Wrapper Library\n# Navigate to wrapper directory cd wrapper # Build and publish the wrapper dotnet publish -c Release -r win-x64 --self-contained false -o ./../dlls # Return to root directory cd .. Step 4: Run the Examples\n# Activate virtual environment (if not already active) .venv\\Scripts\\activate # Run wrapper-based approach python run_search_wrapper.py # Run manual type resolution approach python run_search_manual.py Real-World Use Cases Business Applications Document Discovery \u0026amp; Knowledge Management\nLegal firms: Search through contracts, agreements, and legal documents for specific clauses Healthcare: Find patient records and medical documents using keywords and terms Education: Search through course materials, research papers, and educational content Real Estate: Locate property documents, contracts, and specifications using search terms Enterprise Content Search\nManufacturing: Search technical documentation, specifications, and quality control documents Financial Services: Find compliance documents, audit reports, and financial records Government: Search policy documents, regulations, and administrative materials Insurance: Locate claim documents, policy information, and risk assessments Technical Use Cases Automated Document Processing\nBatch indexing: Process hundreds of documents and create searchable indexes API integration: Add search capabilities as part of document processing workflows Cloud services: Integrate search functionality into cloud-based applications Microservices: Deploy search services as part of larger document processing systems Custom Search Workflows\nForm processing: Search through form submissions and responses Report analysis: Find specific data and patterns in generated reports Document comparison: Search for differences between document versions Template matching: Find documents matching specific criteria or templates Get Started with GroupDocs.Search Today Ready to implement powerful document search functionality in your Python applications? Here\u0026rsquo;s your quick-start roadmap:\nStep 1: Get a Free Trial Download and install GroupDocs.Search for .NET from the official release page. No credit card required.\nFor testing all features without restrictions, grab a temporary license that gives you full access to the API.\nStep 2: Choose Your Approach Start with Wrapper: Use the wrapper approach for quick prototyping and simple search tasks Scale to Manual: Move to manual type resolution when you need full control over search customization Test Thoroughly: Validate with your specific document types and search requirements Monitor Performance: Evaluate performance with large document collections and complex queries Step 3: Explore More Resources Get the most from GroupDocs.Search with these comprehensive resources:\nComplete .NET Code Examples - Ready-to-use C# implementations Java Implementation Guide - Cross-platform solutions Node.js Examples - JavaScript/TypeScript integration Download Free Trial - Start searching documents immediately API Documentation - Full technical reference Community Support Forum - Get help from experts and developers Frequently Asked Questions Q: Does GroupDocs.Search work with all document formats? A: Yes, it supports 50+ document formats including PDF, Word, Excel, PowerPoint, images, and more.\nQ: Can I use this in production environments? A: Yes, but we recommend comprehensive testing with your specific use cases before production deployment.\nQ: Do I need Microsoft Office installed? A: No. GroupDocs.Search is a standalone .NET library that works independently of Microsoft Office.\nQ: What\u0026rsquo;s the performance impact of the wrapper approach? A: Minimal overhead. The wrapper adds a thin layer that doesn\u0026rsquo;t significantly impact search performance.\nQ: Can I extend the wrapper with custom methods? A: Absolutely. The wrapper is open source and can be customized for your specific needs.\nConclusion: Choosing the Right Integration Approach GroupDocs.Search for .NET offers powerful document search capabilities, but integrating it with Python requires overcoming dependency resolution challenges. As we\u0026rsquo;ve demonstrated, there are two proven approaches to solve this:\nWrapper-Based Approach - Perfect for quick prototyping and simple search workflows Manual Type Resolution - Ideal for complex scenarios requiring full API control The key is matching the approach to your project\u0026rsquo;s complexity and requirements. Both methods successfully solve the core challenge of loading obfuscated assemblies with embedded dependencies, enabling you to leverage GroupDocs.Search\u0026rsquo;s full power from Python applications.\nWhether you\u0026rsquo;re building document discovery systems, enterprise search solutions, or automated content processing workflows, these integration approaches provide the foundation for robust, scalable document search functionality in Python.\n","permalink":"https://blog.groupdocs.com/search/python-integration/","summary":"Learn how to integrate GroupDocs.Search for .NET with Python using pythonnet. Discover two proven approaches to overcome dependency resolution challenges and implement powerful document search functionality.","title":"How to search document content in Python: Complete Guide with 2 Implementation Approaches"},{"content":"Why Word\u0026rsquo;s Built-in Watermarks Aren\u0026rsquo;t Secure Enough If you\u0026rsquo;ve ever tried protecting a Word document with Microsoft Word\u0026rsquo;s built-in watermark feature, you probably discovered a frustrating truth: anyone can remove them in seconds. Simply double-click the header, select the watermark, and press delete. Gone.\nIn this comprehensive guide, you\u0026rsquo;ll learn five professional methods to add secure watermarks to Word documents using GroupDocs.Watermark for .NET. Each approach offers different levels of protection, from basic header watermarks to advanced locked sections that resist removal attempts.\nWhat you\u0026rsquo;ll learn:\nWhy standard Word watermarks fail to protect sensitive documents How to implement 5 increasingly secure watermarking techniques Code examples you can use immediately in your C# projects Visual comparisons showing exactly how each method works When to use each protection level for your specific needs Download Complete Code Examples All the code samples demonstrated in this article are available in our official GitHub repository. You can clone, download, or browse the complete working examples to start implementing watermark protection in your own projects.\n🔗 Repository Link GroupDocs.Watermark Word Protection Examples\nMethod 1: Simple Header Watermark (Basic Protection) Protection Level: Low | Difficulty: Easy | Best for: Internal documents\nLet\u0026rsquo;s start with the most straightforward approach: adding a watermark to your document\u0026rsquo;s header section. While this method is easy to implement, it\u0026rsquo;s also the easiest to remove - making it suitable only for low-security scenarios.\nHow it works: The watermark is inserted as a shape object in the document header. It appears on every page automatically, but offers minimal protection against removal.\nprivate static void AddSimpleHeaderWatermark() { Console.WriteLine(\u0026#34;Adding simple header watermark...\u0026#34;); var loadOptions = new WordProcessingLoadOptions(); using (var watermarker = new Watermarker(InputFile, loadOptions)) { var watermark = new TextWatermark(\u0026#34;Confidential\u0026#34;, new Font(\u0026#34;Arial\u0026#34;, 19)) { VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, RotateAngle = 25, ForegroundColor = Color.Red, Opacity = 0.8 }; watermarker.Add(watermark); watermarker.Save(Path.Combine(OutputDir, \u0026#34;header_watermark.docx\u0026#34;)); } Console.WriteLine(\u0026#34;Header watermark added.\u0026#34;); } The Security Weakness Exposed Here\u0026rsquo;s the problem: if you open the document in Microsoft Word, double-click the header area, and activate header editing mode - the watermark appears as a simple shape that can be deleted with one click.\nWatch how easily it\u0026rsquo;s removed:\nWhen to use this method: Quick internal documents, draft versions, or situations where you need visible branding but don\u0026rsquo;t require strong security.\nMethod 2: Tiled Watermarks (Medium Protection) Protection Level: Medium | Difficulty: Easy | Best for: Multi-page documents requiring moderate security\nTiled watermarks significantly improve protection by creating multiple watermark instances across each page. Instead of one shape in the header, you get dozens of overlapping watermarks that make manual removal tedious and time-consuming.\nHow it works: The watermarking engine automatically duplicates your watermark text across the entire page surface with customizable spacing. Removing all instances becomes impractical for documents longer than a few pages.\nprivate static void AddTiledWatermark() { Console.WriteLine(\u0026#34;Adding tiled watermark...\u0026#34;); var loadOptions = new WordProcessingLoadOptions(); using (var watermarker = new Watermarker(InputFile, loadOptions)) { var watermark = new TextWatermark(\u0026#34;Protected Document\u0026#34;, new Font(\u0026#34;Arial\u0026#34;, 19)) { VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, RotateAngle = 25, ForegroundColor = Color.Red, Opacity = 0.9, TileOptions = new TileOptions { LineSpacing = new MeasureValue { MeasureType = TileMeasureType.Percent, Value = 12 }, WatermarkSpacing = new MeasureValue { MeasureType = TileMeasureType.Percent, Value = 12 } } }; var options = new WordProcessingWatermarkSectionOptions { Name = \u0026#34;TiledShape\u0026#34;, AlternativeText = \u0026#34;Repeated watermark\u0026#34; }; watermarker.Add(watermark, options); watermarker.Save(Path.Combine(OutputDir, \u0026#34;tiled_watermark.docx\u0026#34;)); } Console.WriteLine(\u0026#34;Tiled watermark added.\u0026#34;); } Why This Works Better Imagine trying to remove watermarks from a 20-page report where each page contains 15-20 overlapping instances. Even on a single page, the repetitive deletion process becomes frustrating enough to deter casual removal attempts.\nSee the tiled protection in action:\nWhen to use this method: Contracts, proposals, client-facing documents, or any multi-page content where you need visual deterrence against unauthorized use.\nMethod 3: Image Tiled Watermarks (Medium Protection) Protection Level: Medium-High | Difficulty: Easy | Best for: Brand protection, copyright claims, and professional documents\nImage watermarks take protection to the next level by using your company logo, signature, or custom graphics instead of plain text. When tiled across the document, they create a professional security layer that\u0026rsquo;s harder to replicate or forge than simple text watermarks.\nHow it works: The watermarking engine loads your image (PNG, JPG, or other formats) and automatically tiles it across every page with customizable spacing, rotation, and transparency. This creates a distinctive visual signature that\u0026rsquo;s uniquely yours.\nprivate static void AddImageWatermark() { using (Watermarker watermarker = new Watermarker(InputFile)) { // Create the image watermark object var watermark = new ImageWatermark(\u0026#34;logo.png\u0026#34;); // Configure tile options watermark.TileOptions = new TileOptions() { LineSpacing = new MeasureValue() { MeasureType = TileMeasureType.Percent, Value = 10 }, WatermarkSpacing = new MeasureValue() { MeasureType = TileMeasureType.Percent, Value = 8 }, }; // Set watermark properties watermark.Opacity = 0.7; watermark.RotateAngle = -30; // Add watermark watermarker.Add(watermark); watermarker.Save(Path.Combine(OutputDir, \u0026#34;image_watermark_word.docx\u0026#34;)); } } Why Image Watermarks Provide Better Security Unlike text watermarks that anyone can recreate by typing the same words, image watermarks contain unique visual elements that are much harder to reproduce:\nBrand logos with specific colors, gradients, and design elements Company seals or official stamps that establish authenticity Digital signatures that can be verified visually QR codes that link back to verification systems Complex graphics that would take significant effort to recreate The tiled pattern makes it nearly impossible to remove every instance without leaving visible artifacts. Even if someone removes 95% of the watermarks, the remaining 5% still proves the document\u0026rsquo;s origin.\nSee the professional image watermark in action:\nMethod 4: Password-Protected Hidden Section (High Protection) Protection Level: High | Difficulty: Medium | Best for: Confidential documents requiring strong security\nThis advanced technique inserts your watermark into a hidden, password-protected section that\u0026rsquo;s locked in \u0026ldquo;form fields only\u0026rdquo; mode. Even if someone discovers the watermark, they can\u0026rsquo;t edit or remove it without the password.\nHow it works: The watermark resides in a separate document section that\u0026rsquo;s configured as non-editable. Users can still read the document normally, but the watermark section requires password authentication to modify.\nprivate static void AddLockedWatermark_AllowOnlyFormFields() { Console.WriteLine(\u0026#34;Adding locked watermark (allow form fields)...\u0026#34;); using (var watermarker = new Watermarker(InputFile)) { var watermark = new TextWatermark(\u0026#34;Do Not Edit\u0026#34;, new Font(\u0026#34;Arial\u0026#34;, 36, FontStyle.Bold | FontStyle.Italic)) { HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center, Opacity = 0.4, RotateAngle = 45, ForegroundColor = Color.Red }; var options = new WordProcessingWatermarkPagesOptions { IsLocked = true, Password = \u0026#34;012345\u0026#34;, LockType = WordProcessingLockType.AllowOnlyFormFields }; watermarker.Add(watermark, options); watermarker.Save(Path.Combine(OutputDir, \u0026#34;locked_allow_form_fields.docx\u0026#34;)); } Console.WriteLine(\u0026#34;Locked watermark added (AllowOnlyFormFields).\u0026#34;); } See the password protection working:\nThe Weakness of the manual Microsoft Word approach While this method offers excellent security, there\u0026rsquo;s an important limitation to understand. If you try to recreate this protection manually in Microsoft Word (using the built-in \u0026ldquo;Restrict Editing\u0026rdquo; feature), the hidden section still occupies space in the document structure. This can cause layout issues - for example, an extra blank page may appear if your original content completely fills the available space.\nSee the manual Word approach and its limitations:\nWhen to use this method: Legal documents, financial reports, intellectual property, or any content where unauthorized editing must be prevented.\nMethod 5: Locked Header with Editable Content Ranges (Maximum Protection) Protection Level: Very High | Difficulty: Medium | Best for: Documents requiring both security and user interaction\nThis sophisticated approach combines locked headers with Microsoft Word\u0026rsquo;s editable ranges feature. The watermark sits in a password-protected header that\u0026rsquo;s completely locked, while specific document areas remain editable for legitimate users.\nHow it works: The entire header section (containing your watermark) is locked with read-only protection. The document body is then marked with editable ranges, creating a security model where users can only modify pre-approved sections.\nprivate static void AddLockedHeaderWatermark() { Console.WriteLine(\u0026#34;Adding locked header watermark...\u0026#34;); var loadOptions = new WordProcessingLoadOptions(); using (var watermarker = new Watermarker(InputFile, loadOptions)) { var watermark = new TextWatermark(\u0026#34;Company Confidential\u0026#34;, new Font(\u0026#34;Arial\u0026#34;, 19)) { VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, RotateAngle = 25, ForegroundColor = Color.Red, Opacity = 0.8 }; var options = new WordProcessingWatermarkSectionOptions { SectionIndex = 0, IsLocked = true, Password = \u0026#34;012345\u0026#34;, LockType = WordProcessingLockType.ReadOnly }; watermarker.Add(watermark, options); watermarker.Save(Path.Combine(OutputDir, \u0026#34;locked_header_watermark.docx\u0026#34;)); } Console.WriteLine(\u0026#34;Locked header watermark added.\u0026#34;); } Watch the locked header protection:\nThe Visual Trade-off in Microsoft Word When you open documents with editable ranges in Microsoft Word, the editable sections appear highlighted in yellow. This visual indicator helps users identify where they can type, but it may affect the document\u0026rsquo;s professional appearance.\nSee the yellow highlighting in action:\nWhen to use this method: Template documents, forms requiring user input, collaborative documents with fixed branding, or scenarios where you need granular control over editing permissions.\nGet Started with GroupDocs.Watermark Today Ready to implement professional watermark protection in your documents? Here\u0026rsquo;s your quick-start roadmap:\nStep 1: Get a Free Trial Download and install GroupDocs.Watermark for .NET from the official release page. No credit card required.\nFor testing all features without restrictions, grab a temporary license that gives you full access to the API.\nStep 2: Scale Your Solution Start Small: Begin with one document type and test each protection method Monitor Performance: Track watermarking speed and file size impact Gather Feedback: Work with your team to refine watermark designs Expand Integration: Connect with your document management systems Step 3: Explore More Resources Get the most from GroupDocs.Watermark with these comprehensive resources:\nComplete .NET Code Examples - Ready-to-use C# implementations Java Implementation Guide - Cross-platform solutions Node.js Examples - JavaScript/TypeScript integration Download Free Trial - Start protecting documents immediately API Documentation - Full technical reference Community Support Forum - Get help from experts and developers Frequently Asked Questions Q: Does adding watermarks increase file size? A: Yes, but minimally. Tiled watermarks add more than simple headers due to multiple shape objects.\nQ: Can I watermark PDFs and other formats? A: Absolutely. GroupDocs.Watermark supports 40+ file formats including PDF, Excel, PowerPoint, and images.\nQ: Do I need Microsoft Word installed? A: No. GroupDocs.Watermark is a standalone .NET library that works independently of Microsoft Office.\nQ: Can users still print watermarked documents? A: Yes, watermarks remain visible in printed copies unless you specifically configure them otherwise.\nConclusion: Choosing the Right Protection Level for Your Documents Microsoft Word\u0026rsquo;s built-in watermark feature is convenient, but it fails the moment security matters. As we\u0026rsquo;ve demonstrated, a simple double-click can remove standard Word watermarks in seconds. GroupDocs.Watermark for .NET changes the game by offering five progressively secure protection methods:\nSimple Header Watermarks - Perfect for internal drafts and low-risk documents Tiled Watermarks - Excellent deterrent for multi-page contracts and proposals Password-Protected Sections - Strong security for confidential business documents Locked Headers with Editable Ranges - Ideal for templates and collaborative documents Enterprise Legal Protection - Maximum security for compliance and legal requirements The key is matching the protection level to your document\u0026rsquo;s sensitivity. Not every file needs military-grade security, but critical documents deserve more than Word\u0026rsquo;s easily-removable watermarks.\n","permalink":"https://blog.groupdocs.com/watermark/secure-word-documents-groupdocs-watermark-methods/","summary":"Discover why Microsoft Word\u0026rsquo;s built-in watermarks aren\u0026rsquo;t secure and learn 5 powerful methods to protect your documents using GroupDocs.Watermark for .NET with code examples.","title":"5 Secure Methods to Add Watermarks to Word Documents"},{"content":"Overview We’re pleased to announce the GroupDocs.Total for Python 25.10 release, available as of October 2025. This update delivers the latest versions of all underlying .NET‑based components that make up the Total suite for Python, as well as a packaging bump for the Redaction library (from 25.5 to 25.10).\nNote – The Total metapackage does not include any new public‑API features or breaking changes. It simply aligns the Python wrapper with the most recent stable releases of the individual libraries.\nProducts included in this release Product Updated version Release notes GroupDocs.Conversion for Python via .NET 24.12 Release notes GroupDocs.Viewer for Python via .NET 24.9 Release notes GroupDocs.Comparison for Python via .NET 25.5 Release notes GroupDocs.Watermark for Python via .NET 25.2 Release notes GroupDocs.Metadata for Python via .NET 25.3 Release notes GroupDocs.Merger for Python via .NET 25.2 Release notes GroupDocs.Assembly for Python via .NET 25.5 Release notes GroupDocs.Redaction for Python via .NET 25.5 → 25.10 Release notes GroupDocs.Signature for Python via .NET 25.4 Release notes All libraries are now synchronized with their respective upstream .NET releases, ensuring you benefit from the latest bug fixes, performance improvements, and format support added upstream.\nHow to get the update pip (recommended) pip install --upgrade groupdocs-total-net The command pulls the latest metapackage from PyPI, which bundles the updated .NET‑based libraries.\nDirect download If you prefer a manual installation, the compiled binaries are available for download from the GroupDocs Total for Python via .NET 25.10 download page.\nResources Release Notes – https://releases.groupdocs.com/total/python-net/release-notes/2025/groupdocs-total-for-python-via-net-25-10-release-notes/ Free Support Forum – https://forum.groupdocs.com/c/total/8 ","permalink":"https://blog.groupdocs.com/total/groupdocs-total-for-python-25-10/","summary":"The October 2025 GroupDocs.Total for Python 25.10 release aligns all bundled Python via .NET components to their latest versions.","title":"GroupDocs.Total for Python 25.10 – October 2025 Release Highlights"},{"content":"Overview Spreadsheet documents are documents that contain data in the table form — inside of rows and columns. They are also known as the workbooks. There are many formats of spreadsheet documents — Office Open XML (like XLSX, XLSM, etc.), Microsoft Excel Binary File Format (XLS, XLT), OpenDocument Spreadsheet format (ODS, FODS, OTS), text-based separator-delimited formats (CSV, TSV etc.) and so on. All of them form a so-called Spreadsheet formats family. GroupDocs.Viewer supports almost all spreadsheet formats on import and allows to render (convert) them to HTML, PDF, PNG, and JPEG. This article explains how to do that and which options are available and when and why they should be used.\nBasic usage First of all we need to talk about options. There is a separate class in a public API: SpreadsheetOptions in the GroupDocs.Viewer.Options. This class is designed especially for adjusting the rendering of the Spreadsheet formats family. It is accessible for all four view options through the SpreadsheetOptions property:\nHtmlViewOptions.SpreadsheetOptions when rendering a Spreadsheet document to HTML, PdfViewOptions.SpreadsheetOptions when rendering a Spreadsheet document to PDF, PngViewOptions.SpreadsheetOptions when rendering a Spreadsheet document to PNG, JpgViewOptions.SpreadsheetOptions when rendering a Spreadsheet document to JPEG. When not specified explicitly, the SpreadsheetOptions property has a default implicit value of the SpreadsheetOptions class instance, which will be explained later in this article.\nAt a glance, rendering a Spreadsheet document with GroupDocs.Viewer is super-easy and similar to all other formats — create a ViewOptions instance, create a Viewer instance with specified input Spreadsheet document, and call the Viewer.View(viewOptions) method. The following code sample demonstrates rendering of the single input Spreadsheet file to all 4 output formats: HTML, PDF, PNG, and JPEG. Please note that except for creating the instances of options classes there is no spreadsheet-related tuning, so all spreadsheet options are set to default values.\nusing GroupDocs.Viewer; using GroupDocs.Viewer.Options; // ... HtmlViewOptions htmlOptions = HtmlViewOptions.ForEmbeddedResources(\u0026#34;worksheet_{0}.html\u0026#34;); PdfViewOptions pdfOptions = new PdfViewOptions(\u0026#34;Output_spreadsheet.pdf\u0026#34;); PngViewOptions pngOptions = new PngViewOptions(\u0026#34;worksheet_{0}.png\u0026#34;); JpgViewOptions jpegOptions = new JpgViewOptions(\u0026#34;worksheet_{0}.jpeg\u0026#34;); using (Viewer viewer = new Viewer(\u0026#34;spreadsheet.xlsx\u0026#34;)) { viewer.View(htmlOptions); viewer.View(pdfOptions); viewer.View(pngOptions); viewer.View(jpegOptions); } Now let’s talk about the worksheets. Every spreadsheet has at least one worksheet. In most table processing software like Microsoft Excel the worksheets are represented as tabs. Some spreadsheet formats may have only a single worksheet; this includes, for example, all text-based separator-delimited formats (CSV, TSV etc.).\nBy default the GroupDocs.Viewer renders all worksheets inside the given spreadsheet. But this can be changed. The Viewer.View() method has an overload, which obtains a set of page numbers as a 2nd parameter — Int32[] pageNumbers. When this parameter is used, only those pages will be rendered. This parameter is universal and is applied to all supported formats, which have pages, but in the context of the Spreadsheet formats family it describes exactly worksheet numbers to view.\nPlease note that page numbering in general and worksheet numbering in particular is 1-based, not 0-based, so it starts from the “1”, not from “0”.\nExample below shows how to render 1st and 3rd worksheet to PNG in a spreadsheet that has 3 worksheets.\nusing GroupDocs.Viewer; using GroupDocs.Viewer.Options; // ... PngViewOptions pngOptions = new PngViewOptions(\u0026#34;worksheet_{0}.png\u0026#34;); using (Viewer viewer = new Viewer(\u0026#34;spreadsheet.xlsx\u0026#34;)) { viewer.View(pngOptions, 1, 3); } Splitting worksheets into pages GroupDocs.Viewer renders documents to the pages, where under a page we understand some rectangular area of relatively small size, comparable to the area of display, or A4 paper. On the other hand, the worksheets may be very big. In particular, the now obsolete XLS format supports max 256 columns and 65536 rows, while the newer XLSX (Office Open XML Workbook) format and the Microsoft Excel both support up to 16384 columns and 1048576 rows. “Fitting” worksheets into pages is a crucial part of the rendering spreadsheets with GroupDocs.Viewer. In order to fit the worksheet into page(s), the GroupDocs.Viewer performs a worksheet splitting — worksheet is divided into multiple rectangular chunks, and each of them is placed on a separate page. There are 5 different methods, they are listed and described below.\nWhat is important — all these splitting methods are specified using the same way — using a specific static method (factory method) that creates an instance of the SpreadsheetOptions class.\nRender whole worksheet on one page SpreadsheetOptions.ForOnePagePerSheet()\nThe easiest and simplest way — turn off a splitting and adjust the page size to fit all content of the whole worksheet. This is a good choice when it is already known that the worksheet has a small size. However, if a worksheet is really big, this approach may lead to awful results. In particular, when rendering to the HTML format, the resultant HTML document may be huge, tens or even hundreds of MiB, which may cause troubles while viewing such big files in the web-browsers. When rendering to the JPEG format, things may be even worse if the width or height will overcome the max limit of 65535 pixels. So use this mode deliberately.\nSplit worksheet by page breaks SpreadsheetOptions.ForRenderingByPageBreaks()\nMicrosoft Excel itself adds automatic page breaks based on paper size and page settings, such as orientation and margins. If you switch to the “View” tab and enter the “Page Break Preview” mode, you can see blue lines that divide the whole worksheet area on rectangular chunks, each of them is labeled as “Page 1”, “Page 2”, and so on. This is how Microsoft Excel “suggests” to split a worksheet onto pages.\nWith this method the GroupDocs.Viewer follows the Microsoft Excel and splits the worksheets according to the page breaks, like Microsoft Excel does.\nNeed to mention that this option — to split a worksheet by page break — is a default option of the BaseViewOptions.SpreadsheetOptions property, so when you create an instance of view options class, the “ForRenderingByPageBreaks()” option is selected by default.\nRender only print area SpreadsheetOptions.ForRenderingPrintArea()\nAlong with the page breaks, the Microsoft Excel has a “Print Area” concept. Print Area is actually one or more cell ranges in a worksheet, which are designated for printing, while any content outside of the Print Area will not be printed at all. For adding some cell range to the Print Area, go to the “Page Layout\u0026quot; tab, click on the “Print Area” button and then click on “Set Print Area” item (see screenshot below). In order to add another cell range to the Print Area, select this new range, click on the “Print Area” button and then click on “Add to Print Area” item at this time. In the “Page Break Preview” mode you can see all cell ranges in the Print Area.\nRender print area and split by page breaks SpreadsheetOptions.ForRenderingPrintAreaAndPageBreaks()\nGroupDocs.Viewer has a unique feature — combining the Print Area and page breaks in the single mode. In this case GroupDocs.Viewer takes into account all cell ranges of print area and page breaks in the worksheet and applies them simultaneously to split a worksheet onto pages.\nIn the following screenshot the red line shows the print area, and the blue line shows page breaks.\nSplit worksheet into pages manually by rows and columns SpreadsheetOptions.ForSplitSheetIntoPages(int countRowsPerPage) SpreadsheetOptions.ForSplitSheetIntoPages(int countRowsPerPage, int countColumnsPerPage)\nSometimes none of the splitting methods, described above, is acceptable, or the spreadsheet has a format that does not support page breaks and Print Areas, for example, the text-based CSV. For such cases GroupDocs.Viewer allows to manually specify the number of rows and/or number of columns that should be present on every page. In short, the difference between splitting by rows only vs. splitting by rows and columns is illustrated on the screenshot below. If the 1st overload of the ForSplitSheetIntoPages method is used, with one parameter, then the splitting by rows only is enabled. If the 2nd overload is used, where two parameters are specified, then the splitting by rows and columns is enabled.\nAdjusting additional options All described above is essential and enough for rendering spreadsheets using GroupDocs.Viewer. However, there are plenty of additional options, which are not mandatory, but allow users to adjust the rendering result even more.\nSome of these options are represented as the properties of the SpreadsheetOptions class, which itself is accessible as a SpreadsheetOptions property of the view options class. Others however are located in the ViewOptions abstract class, common for all 4 rendering modes.\nRender row and column headings When MS Excel or a similar table processing program opens a spreadsheet document, it displays the column and row heading, columns are lettered (A, B, C, AA, AB, …) and rows are numbered (1, 2, 3, …, 1048576). When rendering, GroupDocs.Viewer by default does not display these heading, because they are a part of the interface of the table processor, but not the document itself. But this can be changed with the RenderHeadings property of a boolean type. By default it is disabled and has a false value, but when enabled (true), the rows and columns headings will be present in the output document, as can be seen on a screenshot below.\nRender worksheet gridlines The concept of this option is very similar to the previous one. By default the GroupDocs.Viewer does not display the gridlines between cells, because they are not the part of the spreadsheet, but rather a way of representing a table content of a particular table processor. However, using a RenderGridLines property of a boolean type it is possible to mimic the MS Excel behavior. Assign a true value to the SpreadsheetOptions.RenderGridLines property, and the gridlines will be present in the output document, as shown on a screenshot below.\nControl cell text overflow It is a quite common scenario, when some text contains a text, and this text does not fit into the boundaries of this cell. How to display this text properly? GroupDocs.Viewer provides a special property SpreadsheetOptions.TextOverflowMode for solving such a problem. The TextOverflowMode property has a value of the type with the same name, TextOverflowMode, and it is an enum type with 4 possible items, explained below.\nOverlayIfNextIsEmpty By default the SpreadsheetOptions.TextOverflowMode property has a OverlayIfNextIsEmpty value, which mimics the default Microsoft Excel behavior. In short, this value allows text to overflow into adjacent cells, but only if these adjacent cells have no data. If adjacent cells are not empty, the overflowing text is truncated.\nThe screenshot above shows the HTML file, rendered from input XLSX with OverlayIfNextIsEmpty value. Take a note on the cell “B2” — it has a long text, and it is truncated, because the “C2” cell is not empty. The “C3” cell, however, also has a long text that does not fit, but it overflows over the “D2” and “E2” cells, because they are empty.\nOverlay The TextOverflowMode.Overlay value is slightly similar to the previous, but may be considered as more aggressive: long text, that does not fit into the original cell’s boundaries, always overflows, regardless of the adjacent cells. If adjacent cells also have some text or other data, it will be erased.\nScreenshot above demonstrates how this works. Long text from the cell “B2” overflows into the adjacent cells “C2”, “D2”, “E2”, “F2”. As a result, the original text from the cells “C2” and “F2” is erased.\nHideText The TextOverflowMode.HideText mode works as an opposite to the previously described Overlay mode — instead of overflow it ultimately truncates the text, the does not fit into the boundaries of its own cell, regardless whether there is a free space in adjacent cell(s) or not.\nOn the screenshot above this can be seen for the cell “C3” — despite there is a free space in adjacent “D3” and so on, the text is unconditionally truncated.\nAutoFitColumn The TextOverflowMode.AutoFitColumn value solves the problem using another approach — it increases the column width to fit the text of any cell. So regardless of how long the text inside the particular cell is — the width of the columns, where this cell is located, will be increased to fit the whole string.\nScreenshot above shows how it works. Of course, this approach may not be suitable in some cases, especially when the text in cell(s) is extra long — this will make the page to be extremely wide with annoying horizontal scrolling.\nRender hidden rows and columns Microsoft Excel and other table processors allow hiding particular rows and columns. By default GroupDocs.Viewer does not render such rows and columns, but this behavior may be changed. The ViewOptions.SpreadsheetOptions.RenderHiddenRows and ViewOptions.SpreadsheetOptions.RenderHiddenColumns properties, when set them to true, allow to display hidden rows and columns in the output file when rendering spreadsheet in HTML, PDF, PNG, or JPEG format.\nRender hidden worksheets Like hidden rows and columns, explained above, the spreadsheet file may contain one or more hidden worksheet(s). And as in the previous case, by default the GroupDocs.Viewer does not render the hidden worksheets. But this may be changed using the RenderHiddenPages property by setting its value to true. Need to mention that unlike the previously described properties, the RenderHiddenPages is located not in the SpreadsheetOptions, but in the BaseViewOptions abstract class that is common for all view options.\nSkip empty rows and columns Some spreadsheets are “sparse” — they contain a lot of empty spaces, which may occupy too much space. GroupDocs.Viewer has a feature to skip empty rows and columns from the rendering. If this feature is enabled, empty rows and/or columns are excluded from the resultant HTML, PDF, PNG and JPEG. The boolean properties SpreadsheetOptions.SkipEmptyRows and SpreadsheetOptions.SkipEmptyColumns are responsible for this feature.\nScreenshot above demonstrates both SkipEmptyRows and SkipEmptyColumns are enabled.\nRender or hide cell comments Cells within a spreadsheet document may have comments, and by default the GroupDocs.Viewer renders them all. But this can be disabled using the BaseViewOptions.RemoveComments property — if set its value to true, no comments will be rendered. Make a note that this property is located in the BaseViewOptions class, not in the SpreadsheetOptions.\nScreenshot above demonstrates rendering XLSX file with cell comments to PNG format with default options — comment for the “E2” cell is present in the resultant PNG file.\nSet worksheet margins in the output PDF pages When rendering worksheets to the PDF format, it is possible to control the page margins — the distance in centimeters from the border of the page to the content. There are 4 properties to control the top, right, bottom, and left margins:\nSpreadsheetOptions.TopMargin SpreadsheetOptions.RightMargin SpreadsheetOptions.BottomMargin SpreadsheetOptions.LeftMargin By default all these 4 properties have negative values, which means that the default margins are applied by the GroupDocs.Viewer. However, it is possible to set these values explicitly. Need to emphasize that page margins are applied only when the target format is PDF.\nThe following piece of source code demonstrates creating the PdfViewOptions, setting all 4 margins and rendering a document:\nusing GroupDocs.Viewer; using GroupDocs.Viewer.Options; // ... PdfViewOptions pdfViewOptions = new PdfViewOptions(\u0026#34;Output.pdf\u0026#34;); pdfViewOptions.SpreadsheetOptions = SpreadsheetOptions.ForOnePagePerSheet(); pdfViewOptions.SpreadsheetOptions.TopMargin = 2; pdfViewOptions.SpreadsheetOptions.BottomMargin = 4; pdfViewOptions.SpreadsheetOptions.LeftMargin = 8; pdfViewOptions.SpreadsheetOptions.RightMargin = 0; using (var viewer = new Viewer(\u0026#34;spreadsheet.xlsx\u0026#34;)) { viewer.View(pdfViewOptions); } The following image demonstrates the result:\nConclusion Spreadsheet formats are quite complex, and documents may have very different content of variable type and length. In a lot of cases it is impossible to render the complex spreadsheet document to some format with default options, and that’s why GroupDocs.Viewer provides such a comprehensive set of properties; with them every user will be able to adjust the rendering to meet his own needs.\nSee Also Render Excel and Apple Numbers spreadsheets as HTML, PDF, and image files Split a worksheet into pages Specify spreadsheet rendering options Get a free trial You can download a free trial version of GroupDocs.Viewer for .NET from releases.groupdocs.com. You can also acquire a temporary license to try all features and functionalities without restrictions from here.\n","permalink":"https://blog.groupdocs.com/viewer/working-with-spreadsheets/","summary":"This article covers all topics and features, related to the rendering Spreadsheet documents in GroupDocs.Viewer for .NET.","title":"Working with Spreadsheets in GroupDocs.Viewer for .NET"},{"content":"Introduction \u0026amp; Motivation When implementing digital signatures in enterprise-grade systems, security is non-negotiable.\nStoring a certificate in a local PFX or P12 file is convenient but exposes the private key to extraction or compromise. In contrast, PKCS#11 hardware tokens (such as USB dongles, smart cards, and HSMs) keep keys inside a tamper-resistant boundary, ensuring they never leave the device.\nThis post demonstrates how to use GroupDocs.Signature for .NET together with Pkcs11Interop to sign PDF documents with hardware tokens. The approach combines convenience and compliance: GroupDocs handles all PDF-level packaging (signature fields, digest calculation, embedding), while the token performs the actual cryptographic signing.\n⚠️ Early Implementation Notice\nThis solution is currently provided as an early implementation for using PKCS#11 digital signature dongles with GroupDocs.Signature.\nWhile it enables document signing with hardware tokens, we strongly recommend performing additional testing in your own environment to ensure it meets your compliance and security requirements.\nWe would greatly appreciate your feedback, test results, and suggestions for improvements.\nThe Challenge: Bridging PKCS#11 with PDF Signing Integrating PKCS#11 tokens into document signing workflows has several non-trivial challenges:\nLow-Level Complexity \u0026ndash; The PKCS#11 API (Cryptoki) requires management of slots, sessions, handles, and attributes to find the correct private key. PDF-Level Packaging \u0026ndash; Signing a PDF is more than just signing bytes: the library must compute correct digests over selected byte ranges, wrap signatures in CMS/PKCS#7 containers, include timestamps, and embed validation information. Vendor Variations \u0026ndash; Different tokens/vendor modules may require custom attribute mapping or additional middleware. Compliance \u0026amp; Auditability \u0026ndash; Production systems need robust PIN handling, session lifecycle control, error recovery, and logging. This sample project addresses these by combining ICustomSignHash interface in GroupDocs.Signature with Pkcs11Interop to offload signing to the token, while letting GroupDocs deal with the PDF structure.\nWhat the Sample Project Does Demonstrates signing PDF documents using PKCS#11 tokens (dongle, smart card, HSM). Supports Windows certificate store fallback: if a certificate is installed on Windows, the code can use it instead. Implements custom hash signing: GroupDocs computes the digest; the token only signs the hash. Keeps the private key on the hardware at all times \u0026mdash; never exported. Encapsulates token logic (session, key lookup, signing) in Pkcs11DigitalSigner.cs Provides helper logic in Helpers.cs (for example, certificate lookup in Windows store). Configuration centralized in Settings.cs. Acts as a reference implementation you can adapt to your environment. Setup \u0026amp; Prerequisites Prerequisites .NET 6.0 or above (or .NET Framework 4.6.2) A valid PKCS#11 library (DLL) from your token vendor A hardware token (USB dongle, smart card, or HSM) with a valid certificate GroupDocs.Signature for .NET (trial or licensed) The Pkcs11Interop library Installation git clone https://github.com/groupdocs-signature/esign-documents-with-pkcs11-using-groupdocs-signature-dotnet.git cd esign-documents-with-pkcs11-using-groupdocs-signature-dotnet dotnet restore Open solution in Visual Studio or your preferred IDE, ensure dependencies are resolved.\nRepository Structure Deep Dive GroupDocs.Signature-for-.NET-PKCS11-Sample/ ├── GroupDocs.Signature-for-.NET-PKCS11-Sample.csproj # Project file ├── Program.cs # Entry point and usage flow ├── Settings.cs # PKCS#11 / token configuration ├── Helpers.cs # Utility functions (Windows store, certificate filtering) ├── Pkcs11DigitalSigner.cs # Implements ICustomSignHash via PKCS#11 └── README.md # Explanation \u0026amp; usage instructions Program.cs \u0026ndash; orchestrates signing; demonstrates both token-based and Windows cert flow. Settings.cs \u0026ndash; contains constants/placeholders for Pkcs11LibraryPath, TokenPin, and CertificateSubject. Helpers.cs \u0026ndash; contains code to find certificates in Windows store by subject name (used for fallback flow). Pkcs11DigitalSigner.cs \u0026ndash; core logic: load the PKCS#11 module, open sessions, locate the private key object, sign a digest, and return an X509Certificate2 or a signature callback implementation. README.md \u0026ndash; provides overview, challenges, and usage instructions (which this blog complements). Code Explanation \u0026amp; Walkthrough Settings.cs public static class Settings { public const string Pkcs11LibraryPath = \u0026#34;\u0026lt;PKCS11_LIBRARY_PATH\u0026gt;\u0026#34;; public const string TokenPin = \u0026#34;\u0026lt;TOKEN_PIN\u0026gt;\u0026#34;; public const string CertificateSubject = \u0026#34;\u0026lt;CERT_SUBJECT\u0026gt;\u0026#34;; } This isolates configuration details so they can be easily replaced in your deployment environment.\nPkcs11DigitalSigner.cs \u0026mdash; High-Level Flow public class Pkcs11DigitalSigner : ICustomSignHash { public byte[] SignHash(byte[] hash) { // This method is invoked by GroupDocs.Signature when it needs the token to sign a hash using (var pkcs11 = new Pkcs11(Settings.Pkcs11LibraryPath, AppType.SingleThreaded)) { // Load module, open session, login with PIN, find key and perform signing } } public X509Certificate2 GetCertificateFromPkcs11() { // Retrieves the public certificate from the token so the signing options can be configured } } SignHash is the central method: it receives the digest computed by GroupDocs, then uses PKCS#11 APIs to sign it. GetCertificateFromPkcs11 fetches the certificate (with public key) stored in the token so that signature metadata is correct. Program.cs \u0026mdash; Usage Flow class Program { static void Main() { string inputFile = \u0026#34;sample.pdf\u0026#34;; string outputFile = \u0026#34;signed.pdf\u0026#34;; // (1) PKCS#11 signing var tokenSigner = new Pkcs11DigitalSigner(); var cert = tokenSigner.GetCertificateFromPkcs11(); using (var signature = new Signature(inputFile)) { var options = new DigitalSignOptions(cert) { Comments = \u0026#34;Signed with PKCS#11 token\u0026#34;, SignTime = DateTime.Now, CustomSignHash = tokenSigner // link token-based signing }; signature.Sign(outputFile, options); } // (2) Windows certificate store fallback (optional) // var storeCert = Helpers.GetCertificateFromWindowsStore(Settings.CertificateSubject); // using (var signature2 = new Signature(inputFile)) // { // var options2 = new DigitalSignOptions(storeCert) { ... }; // signature2.Sign(\u0026#34;signed_store.pdf\u0026#34;, options2); // } } } Key points:\nCustomSignHash property of DigitalSignOptions is set to tokenSigner, enabling GroupDocs to delegate actual hash signing to the token. The fallback flow (commented out) shows how to switch to Windows store cert when hardware token is unavailable. Use Cases \u0026amp; Real-World Scenarios India \u0026amp; CA-Issued USB Signature Dongles\nIn India, many legally binding eSignatures require certificates stored in USB dongles issued by certified authorities. This sample enables apps (e.g. document gateways, portals) to integrate directly with such dongles. Enterprise Document Workflows\nFor internal systems like contract management or approval flows, hardware signing ensures that unauthorized users cannot forge document signatures. Legal / Compliance-Driven Signing\nGovernments and regulated industries often require that signatures come from hardware-controlled keys. This integration helps meet strict audit and compliance demands. Common Pitfalls \u0026amp; Troubleshooting Incorrect library path → The PKCS#11 DLL path must match your token vendor\u0026rsquo;s module (e.g. softhsm2.dll, cryptoki.dll). PIN lock or failure → Repeated wrong PIN entries may lock the token; check vendor\u0026rsquo;s policy. Key not found → Ensure the correct certificate subject is given; the token must contain the certificate with matching subject. Driver or middleware missing → Some tokens require having vendor drivers installed before Pkcs11Interop can communicate. Threading issues → PKCS#11 operations may not be thread-safe; use single-threaded context unless vendor supports multiple. Timeouts or session resets → Long operations may cause sessions to close or time out; ensure proper session handling and cleanup. Security \u0026amp; Best Practices Never hardcode production secrets (PINs, library paths); use secure config or secrets management. Use strong PINs and rotate them where policy allows. Log operations and errors (without logging sensitive PINs). Limit token sessions and logout immediately after signing. Validate the signature after signing (chain checks, timestamping). Test across environments and token types (dongle/smart card/HSM). Next Steps \u0026amp; Resources Ready to try it yourself? Clone the repo, update the placeholders, and run the sample. Topics you may want to explore next:\nCustom Hash Signing (delegating digest + signing to token) Timestamping \u0026amp; LTV / DSS embedding Iterative signing (multiple signatures in one document) Integration with remote HSM services or cloud-based token stores External Links PKCS#11 Standard (OASIS) Pkcs11Interop Library GroupDocs.Signature for .NET Documentation Custom Hash Signing in GroupDocs Iterative Digital Signing ","permalink":"https://blog.groupdocs.com/signature/sign-documents-with-pkcs11-dotnet/","summary":"An in-depth guide on integrating PKCS#11 hardware tokens (USB dongles, smart cards, HSMs) with GroupDocs.Signature for .NET to sign PDF documents securely and compliantly.","title":"How to Sign Documents in .NET with PKCS#11 USB Dongles, Smart Cards \u0026 HSMs"},{"content":"We’re happy to announce the GroupDocs.Total for .NET 25.8 release, available as of September 2025. This update brings a few critical bug fixes, an important packaging change, and the usual version upgrades of the individual libraries that compose the Total suite.\nImportant notice Starting with version 25.9, GroupDocs.Classification will no longer be included in the GroupDocs.Total package. The library contains large machine-learning model files, which significantly increase the overall package size and may affect performance for users who do not need classification features.\nIf your project requires classification, you can add the library separately from NuGet or GroupDocs Releases.\nWhat’s new in this release The following products were updated in this version:\nGroupDocs.Conversion for .NET (25.7 → 25.8) GroupDocs.Viewer for .NET (25.7 → 25.8) GroupDocs.Comparison for .NET (25.7 → 25.8) GroupDocs.Metadata for .NET (25.7 → 25.8) GroupDocs.Parser for .NET (25.7 → 25.8) Fixes Issue Product Description TOTALNET‑204 Conversion Fixed incorrect table formatting when converting HTML → PDF. TOTALNET‑287 Annotation Resolved missing localized string error: “CONSTRUCTOR.WITH.PARAMETERS.STARTED” key does not exist. TOTALNET‑298 Viewer Fixed a null‑reference exception that occurred on diagram rendering. No new public‑API features or enhancements were introduced in this release.\nHow to get the update NuGet Upgrade the GroupDocs.Total package (or the .NET Framework‑specific package) to the latest version:\n.NET 6 .NET Framework 4.6.2+ Direct download Grab the compiled assemblies for both .NET 6 and .NET Framework from the GroupDocs.Total for .NET 25.8 download page.\nLearn more Full release notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/total/groupdocs-total-for-net-25-8/","summary":"The 25.8 release of GroupDocs.Total for .NET features an announcement on GroupDocs.Classification, fixes for reported issues, and updates across products.","title":"GroupDocs.Total for .NET 25.8 – September 2025 Release Highlights"},{"content":"We’re excited to share GroupDocs.Conversion for .NET 25.9 — a focused upgrade that gives you finer control over fonts, a smoother path from large PDFs to Markdown, and quality‑of‑life options for spreadsheets and plain text conversions. It also rolls up several stability fixes you’ve asked for.\nWhat’s new in this release Smarter font control. You can now declare explicit font transformations during conversion for WordProcessing and PDF inputs. That means cleaner brand alignment (e.g., mapping \u0026ldquo;Times New Roman\u0026rdquo; → \u0026ldquo;Tahoma\u0026rdquo;), better handling of mixed documents, and more predictable output across platforms.\nLean spreadsheets. Converting data tables that carry header/footer rows? You can now skip headers and/or skip footers during spreadsheet conversion — keeping only the content that matters in the result.\nMarkdown at scale. Converting large PDFs to Markdown is now more reliable thanks to chunked processing under the hood, reducing memory pressure and making long‑running jobs easier.\nConsistent text rendering. Plain‑text conversions can adopt a default font you choose, so TXT → PDF/WordProcessing outputs look consistent on every machine.\nFixes and enhancements Filename preservation when intermediate conversions occur. More robust MSG → PDF processing. PDF → PDF/A font substitution behavior refined for archival outputs. Evaluation mode respects trial page limits for diagram → web conversions. Additional tweaks across format compatibility and stability. Documentation API reference and guides for the new options (font transformations, skip header/footer, default font) are available in the release notes. How to Update NuGet – Upgrade to the latest GroupDocs.Conversion for .NET package via NuGet. Choose the package for your target platform: .NET 6 Package or .NET Framework 4.6.2 Package Direct Download – Download assemblies for both .NET and .NET Framework from the GroupDocs.Converison for .NET 25.9 page Learn More Explore the API documentation for product overview and examples. Visit the Developer Guide for tutorials and how-to articles. Browse the API Reference for detailed class and method-level information. Check the full release notes for a detailed breakdown of each fix and feature. Need assistance? Visit our free support forum—we’re here to help! Thanks for following along! Be sure to check back each month for the latest updates, developer tips, and insights into GroupDocs.Conversion for .NET.\n","permalink":"https://blog.groupdocs.com/conversion/groupdocs-conversion-for-net-25-9/","summary":"GroupDocs.Conversion for .NET 25.9 brings font transformation capabilities, more flexible spreadsheet/text load options, chunked PDF→Markdown conversion, and fixes around filename retention, font substitution, format conversions, and more.","title":"GroupDocs.Conversion for .NET 25.9 - September 2025 Release Highlights"},{"content":"We’re happy to announce the major release of GroupDocs.Viewer for .NET 25.9, available as of September 2025. This major release delivers two new features with public API changes, one enhancement and 4 fixed bug.\nNew features [New feature] Introduce distinct font type for each formats family (VIEWERNET-5486) [New feature] List substituted fonts when getting all fonts for the WordProcessing family formats (VIEWERNET-5484) Both these features continue to improve the mechanism of extracting and listing used fonts of the loaded document. In short, with VIEWERNET-5484 the GroupDocs.Viewer is now possible to list and return the substitutuion fonts, which are not present in original document, but are used to replace those original fonts, which are missing and thus unavailable on a target machine (where the GroupDocs.Viewer is running). The VIEWERNET-5486 feature improves the public API \u000f— instead of a single UsedFontInfo type now there is a IFontInfo interfave and a plenty of its inheritors — one per each formats family. Visit the article \u0026ldquo;Getting all used fonts in the loaded document \u0026rdquo; in public documentation for the further details.\nFixes and enhancements [Enhancement] Embed fonts when converting Spreadsheet documents to embedded HTML. (VIEWERNET-5490) [Fix] PDF attachment in base PDF in rendered to HTML format with issues. (VIEWERNET-5374) [Fix] Gradient on background is not correct when rendering PDF to HTML. (VIEWERNET-5345) [Fix] Failed to load specific PSD. (VIEWERNET-3780) [Fix] [UI] Groupdocs Viewer 8.0.7 - Wrong page no displayed initially during server delays to return pages. (VIEWERNET-5485) How to get the update NuGet – Upgrade to the latest GroupDocs.Viewer for .NET package via NuGet. Choose the package for your target platform: Cross-platform .NET 6 Package or Windows-only .NET Framework 4.6.2 and .NET 6 Package Direct Download – Download assemblies for both .NET and .NET Framework from the GroupDocs.Viewer for .NET 25.9 page Learn more Full Release Notes Documentation GroupDocs.Viewer Free Support Forum ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-net-25-9/","summary":"GroupDocs.Viewer for .NET 25.9 is here.","title":"GroupDocs.Viewer for .NET 25.9 – September 2025 Release Highlights"},{"content":"🚀 GroupDocs.Viewer for Java 25.9: New Features and Improvements We are excited to announce the release of GroupDocs.Viewer for Java 25.9, bringing a range of new features, improvements, and bug fixes. This update enhances document rendering capabilities and provides developers with more tools for handling different file formats.\n🆕 Key New Features 1. Multipage AI (Adobe Illustrator) Rendering You can now render multipage AI files, expanding support for vector graphics and design files.\n2. LHA Archive Format Support Native support for .lha / .lzh archives has been added, including auto-detection of LHA files.\n3. Full Email Address Display Email rendering now displays full sender and recipient addresses without truncation or obfuscation.\n4. Disable Updating Fields When Saving WordProcessing Documents A new isUpdateFields option allows disabling field updates when saving WordProcessing documents (DOC, DOCX, DOCM, etc.) to HTML, PDF, or images.\n5. Text Highlighting in Rendered Documents You can highlight text, such as search results, in the output formats for improved document interaction.\n🔧 Other Improvements Remove JavaScript from Output HTML: A public option was added to remove JavaScript from generated HTML. Get All Used Fonts: The Viewer class now includes a getAllFonts() method to retrieve all fonts used in a document. CAB and WIM Archive Format Support: Added support for CAB and WIM formats with auto-detection. Optionally Disable JavaScript When Converting to HTML: You can disable JavaScript preservation in HTML outputs for relevant formats. 🛠️ Public API Changes New boolean property isRemoveJavaScript in HtmlViewOptions to control JavaScript inclusion in HTML output. New boolean property isUpdateFields in WordProcessingOptions to control field updates when saving documents. New class UsedFontInfo in com.groupdocs.viewer.fonts for font information. New getAllFonts() method in Viewer class. New SearchHighlightOptions class in com.groupdocs.viewer.options. New search(SearchHighlightOptions) method in Viewer class. New classes FontStyles and FontFormat in com.groupdocs.viewer.fonts. ✅ Bug Fixes Version 25.9 includes over 20 bug fixes, including:\nDWG file rendering issues. Exceptions when rendering old XLS files. Comment rendering in Presentation files. HTML rendering issues with archives. View info width and height issues for archive files. XML document rendering improvements. DOCX to HTML conversion fixes. EPS file rendering errors. DXF, DWF, PS, and TEX rendering issues. XLS rendering in HTML/PDF problems. PDF quality improvements. 📥 How to Update To update to GroupDocs.Viewer for Java 25.9 via Maven:\n\u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-viewer\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;25.9\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Release notes and detailed documentation for version 25.9 can be found on the official GroupDocs website.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-java-25-9/","summary":"GroupDocs.Viewer for Java 25.9 is here.","title":"GroupDocs.Viewer for Java 25.9 – September 2025 Release Highlights"},{"content":"We’re happy to announce the release of GroupDocs.Comparison for .NET 25.9, available as of September 2025.\nThis release introduces several fixes and enhancements to improve overall reliability and performance.\nFixes and enhancements [Fix] Word detected as removal instead of insertion in comparison results. (COMPARISONNET-4542) [Fix] License issue with Email document comparison output. (COMPARISONNET-4512) [Enhancement] Improved accuracy of email document comparison results. (COMPARISONNET-4513) [Fix] Wrong shape shown as removed in slides comparison. (COMPARISONNET-4550) [Enhancement] Normalize order of deleted and inserted components in Word comparison diff output. (COMPARISONNET-4545) [Enhancement] Technical improvements and internal optimization. (COMPARISONNET-4549) How to get the update You can get the latest version from NuGet or download it directly from the GroupDocs website.\nNuGet GroupDocs.Comparison for .NET 25.9\nDirect download Download assemblies for both .NET and .NET Framework from the GroupDocs.Comparison for .NET 25.9 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-for-net-25-9/","summary":"GroupDocs.Comparison for .NET 25.9 is here.","title":"GroupDocs.Comparison for .NET 25.9 – September 2025 Release Highlights"},{"content":"We’re excited to announce the release of GroupDocs.Viewer for .NET UI 8.1.1 – the latest update to our open-source ASP.NET Core document viewer built for GroupDocs.Viewer for .NET.\nThis release introduces performance improvements with Angular 19, enhanced documentation via NuGet READMEs, and key bug fixes that make the viewer more stable and reliable. The update is now available on NuGet and GitHub.\n🚀 What’s new in 8.1.1 1️⃣ Updated Angular UI The Client App has been upgraded from Angular 16 to Angular 19, resulting in faster loading and rendering. This ensures a consistent experience across the UI and the Free Online Viewer.\n2️⃣ Disabled Hot Reload in Samples Sample applications often use local folders for caching. Previously, hot reload could mistakenly detect cache updates and refresh the app unexpectedly. To fix this, hot reload has been disabled in the launch settings of sample projects.\n3️⃣ NuGet Package READMEs Each NuGet package now includes a README file that appears directly on its NuGet.org page, making it easier to understand usage without leaving the site.\nExamples:\nGroupDocs.Viewer.UI.Api GroupDocs.Viewer.UI.Api.AwsS3.Storage GroupDocs.Viewer.UI.Api.AzureBlob.Storage GroupDocs.Viewer.UI.Core 4️⃣ Updated GroupDocs.Viewer This release bundles GroupDocs.Viewer for .NET 25.8.\nRead more: GroupDocs.Viewer for .NET 25.8 – August 2025 Highlights.\n5️⃣ Fixed custom.css Reference The issue with custom.css not being handled properly when no custom styles were defined has been resolved.\n6️⃣ Enhanced Config Class The Config.cs class has been extended with more details and options for fine-tuning UI behavior.\n7️⃣ Correct Page Number Display Resolved an issue reported in the Support Forum where the wrong page number could appear if the server response was delayed.\n📦 How to get the update NuGet – Upgrade GroupDocs.Viewer.UI* packages to version 8.1.1. GitHub – Build from source in the GitHub repository. 📚 Learn more Release Notes GitHub Repository Free Support Forum ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-net-ui-8-1-1/","summary":"The latest version of the ASP.NET Core UI for GroupDocs.Viewer for .NET (v8.1.1) is now available with performance upgrades, better documentation, and fixes.","title":"GroupDocs.Viewer for .NET UI 8.1.1 – September 2025 Release Highlights"},{"content":"Make your corporate documents AI-ready — reliably, on-premise, and semantically.\nIt is quite common case when organizations keep their documentation in PDF, DOCX, XLSX and ePub formats. While LLMs (large language models) work well with HTML or plain text, these native document formats need conversion before they can be used effectively in LLM + RAG pipelines where we want to chat with a document or a set of documents.\nLLM (Large Language Model) — a pre-trained AI model that generates text and answers based on large text corpora.\nRAG (Retrieval-Augmented Generation) — an approach that combines an LLM with an external knowledge base (for example, corporate documents) so the model can retrieve and reason over domain content.\nThe following sequence diagram illustrates the typical steps involved in generating an answer to a question:\nThe quality of answers you get from a System (LLM + RAG) depends both on the System itself and on how well the source documents preserve their structure and meaning when fed into the retrieval pipeline.\nThe problem Document formatting is not only visual — it carries semantics. Headings, lists, tables, bold/italic emphasis, captions, and inline images all convey meaning that helps an LLM understand context. Naïvely converting documents (for example, using OCR that treats every page as a flat image) often loses those semantics. As a result, RAG retrieval and downstream LLM answers can become inaccurate or noisy.\nOCR can help for scanned documents but frequently removes structure (lists split across pages, table borders misinterpreted, lost annotations). It also adds cost and infrastructure overhead when processing large archives.\nThe solution An alternative approach is to parse documents with structural awareness and export that structure to a semantic, LLM-friendly format — Markdown. Markdown is lightweight, widely supported, and preserves headings, lists, tables, code blocks, emphasis, captions, and image references — exactly the features that improve retrieval quality.\nGroupDocs.Markdown for .NET converts popular document formats (PDF, DOCX, XLSX, ePub, and more) into clean, semantic Markdown suitable for ingestion into RAG systems. It’s an on-premise .NET library, so all processing happens inside your environment — no external services, no data leakage, and no dependency on remote GPUs.\nHow to get started GroupDocs.Markdown for .NET is available as a NuGet package, and also as MSI and ZIP downloads.\nInstall the NuGet package with the .NET CLI:\ndotnet add package GroupDocs.Markdown Or download installers and assemblies from the official downloads page: https://releases.groupdocs.com/markdown/net/\nExample usage (add to Program.cs):\n// Import the namespace using GroupDocs.Markdown; // Set the license (optional for evaluation) License.Set(\u0026#34;GroupDocs.Markdown.lic\u0026#34;); // Instantiate the converter for a source document var converter = new MarkdownConverter(\u0026#34;rich-text-formatting.docx\u0026#34;); // Convert and save output to file converter.Convert(\u0026#34;rich-text-formatting.md\u0026#34;); The converted rich-text-formatting.md file will be saved in the same folder as your application.\nThe following screenshot shows input DOCX file and output Markdown.\nIf you run without a license, the evaluation mode will process a limited number of pages (for example, the first three pages). To try the full product, request a temporary license.\nTo request a temporary license, open the Purchase Wizard, provide contact details, and click Get a temporary license on the Contact Details step. The temporary license will be emailed to you.\nLearn more about temporary licenses: https://purchase.groupdocs.com/temporary-license/.\nSupported file formats GroupDocs.Markdown for .NET supports a broad set of common enterprise and ebook formats. The full list of supported extensions:\nPDF pdf Spreadsheets .xls, .xlsx, .xlsb, .xlsm, .xlt, .xltx, .xltm, .xlam, .csv, .tsv, .ods, .ots, .fods, .numbers, .sxc Word / Rich Text .doc, .docx, .dot, .dotm, .dotx, .docm, .rtf, .odt, .ott Ebooks .azw3, .mobi, .epub Text / Markup / Help .chm, .xml, .txt How it works (internals — high level) When a document is processed, two main phases occur:\nDocument model extraction\nThe document is parsed into an in-memory object model that represents structural elements (paragraphs, headings, lists, tables, images, footnotes, annotations, etc.). The parser strives to preserve semantics (for example, list nesting, table cells, and image captions).\nMarkdown generation\nThe object model is walked and converted to Markdown according to configurable conversion options (how to handle images, table formatting, heading levels, special annotations, etc.). The result is a readable, semantically meaningful Markdown file ready for indexing by your RAG pipeline.\nExport Example The code example above shows how to export DOCX to Markdown. Lets take this code example and take a look at the source and output files as a demonstration.\nSource DOCX\nThe source file rich-text-formatting.docx contains various content blocks and is heavily formatted to highlight the main semantic elements.\nPreview powered by GroupDocs.Viewer for .NET UI. Output Markdown\nThe output content of rich-text-formatting.md is provided below, showing how different formatting elements are represented in the generated Markdown file.\nThis document contains a variety of formatted elements that are used to test document rendering quality during file conversion # \u0026lt;a name=\u0026#34;_toc76372684\u0026#34;\u0026gt;\u0026lt;/a\u0026gt;**Font Formatting** Source Sans Pro Light, 14 pt. Simple text in Times New Roman 12 followed by an empty paragraph\u0026lt;sub\u0026gt;subscript\u0026lt;/sub\u0026gt; and\u0026lt;sup\u0026gt;superscript\u0026lt;/sup\u0026gt;. Various characters: ‘ “ \u0026amp; \u0026lt; \u0026gt; £ ¥ § ¨ © ª « ® » ¼ Paragraph with multiple segments of text formatted in different fonts, sizes and colors. Very different sizes and colors including **bold**, *italic*, underline and 1 2 3 4 5 ~~strikethrough~~. Make sure that the lines wrapped in the same way in Word and in Pdf. This text has shading and highlighting and borders, and it is supported. # \u0026lt;a name=\u0026#34;_toc76372685\u0026#34;\u0026gt;\u0026lt;/a\u0026gt;**Paragraph Formatting** Paragraph shading should not form empty gaps even with spacing 12 after. Centered paragraph with a line break had a problem.\\ Centered paragraph with a line break had a problem. Right aligned paragraphs must be right aligned properly. Right aligned paragraph with line break works well.\\ Right aligned paragraph with line break works well. This paragraph has a border. Right aligned condensed text had a problem. Right aligned expanded text had a problem. Spacing after and before do not add up, just the greater is used. This paragraph has 12 after. Also, when indents are different, the shading does not join. This paragraph has 12 before, but in total there is only 12 above. Also note that shading belongs to the paragraph at the top and shading of this paragraph does not go down unless next paragraph has shading too. There are 24 points below. There are 24 points above, but the gap between this and previous paragraph is only 24. This paragraph is a test for double line spacing. This paragraph is a test for double line spacing. It also have 0.5” for the first line. This is a test for 1.5 line spacing. This is a test for 1.5 line spacing. Also has -0.5” indent for the first line. This paragraph has a page break and centered. It actually creates two paragraphs. This is a test for Exactly 20 points of spacing. This is a test for Exactly 20 points of spacing. TTTTTT (20, 22, 24, 26, 28, 30). There is a continuous section break after this line. This line is in the new section. Next here is an empty section. This line is in the fourth section. # \u0026lt;a name=\u0026#34;_toc76372686\u0026#34;\u0026gt;\u0026lt;/a\u0026gt;**Paragraph Justify** This is a justified paragraph with a single segment. 111111111111111111111111111111111111111111. Also a justified **paragraph** reset to left because of multiple segments. 111111111111111111111111111111111111111111. # **Non-English Characters** Wingdings: (x, Symbol: WÄ Russian: Теперь немного по русски. # \u0026lt;a name=\u0026#34;_toc76372687\u0026#34;\u0026gt;\u0026lt;/a\u0026gt;**Tables** |Cell 1.1 Left|Cell 1.2 Right||| | :- | -: | :- | :- | |Cell 2.1 Centered vertically|Cell 2.2 with background|Cell 2.3 with line break\u0026lt;br\u0026gt;and coloured border.|| |Cell 3.1 Bottom vertically|\u0026lt;p\u0026gt;Cell 3.2\u0026lt;/p\u0026gt;\u0026lt;p\u0026gt;Centered\u0026lt;/p\u0026gt;\u0026lt;p\u0026gt;Horizontally\u0026lt;/p\u0026gt;|Cell 3.3 No border|| |Left red, blue top, green right and yellow bottom.| | :- | |Table with left indent and merged cells.|||| | :- | :- | :- | :- | ||||| ||||| **Cell padding etc.** |\u0026lt;p\u0026gt;Cell padding.\u0026lt;/p\u0026gt;\u0026lt;p\u0026gt;Top: 0.1, bottom 0.2\u0026lt;/p\u0026gt;\u0026lt;p\u0026gt;Left: 0.5, Right 0.4\u0026lt;/p\u0026gt;|Zero padding on all sides, right aligned.| | :- | -: | |Outer 1.1|Outer 1.2. There is a nested table here|| | :- | :-: | -: | |**Nested 1.1**|**Nested 1.2**| | :- | :- | |||Outer 1.3| | :- | :-: | -: | # # \u0026lt;a name=\u0026#34;_toc76372688\u0026#34;\u0026gt;\u0026lt;/a\u0026gt;**Lists** **Numbered list:** 1. Item 1 1. Item 2 1. Item 2.1 1. Item 2.2 1. Item 3 **Bulleted list:** - Item 1 - Item 2 - Item 2.1 - Item 2.2 - Item 3 # # \u0026lt;a name=\u0026#34;_toc76372689\u0026#34;\u0026gt;\u0026lt;/a\u0026gt;**Images** This section starts from a new page. **Ellipse text** ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJEAAABhCAYAAADWSkM6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAABkxJREFUeJztnU9IHFccx39betRgL2UtRW0whcLqZdLLKqELS8ihiBHU9BCIF5uLxMaUUPZWkFCMqeIl3R4MBBo1YKzkILKwNKg97UX3FjEqKe6tgtLr9rD72z6nM7OzO3/evJnvBwR3d+b33u77zO+9N7szL0bRoexzeTGfy5NG2N6ooSi/FMoZvytCRPStFps2eSlUn7vqb+aCNLJkaRQDuZRuB9Uqr6Q09VBdKhUqWxMnLNLUQydV4NsoqBWMnDhmqCBU0CpVJoI4ZghCBardglAZZJ0GCVp2klkBZB0XCEJ2klEw5PEAmTL5WSDk8QEZMvlVUBny+EtVJl/a1+tCkH0k4ldW8io45AkQXsvkRVAIFEC8FMnNgJBHAbyQya1AEEgh3BbJjSCYeSmKWzM4pwEgkOK4IVKzO6P7ChFOu7dmdoJAIcSJSI3uAIFCTLMiNbIxBIoAzYhkd0MIFCEaFekDG9tAoIjRaFvbkQgCRZBqm9u64LNeusJ5oIhj5zyS1YsQCBBRfZHMujO/r1sHCmM6JkIWAky98ZFRikI3Bgwx69Zszc4AsEJvFbIQsMQoGyETAceIRiELAVvosxEyEXAMS4TzQqBpapkIXRmwi/68Eboz4BhIBBwTI8zKQJPwLO1DGYWPm9/fmYiIDtLDudxPK3lx243HrxaOU4Ml/WOjbbytvT3SD0dSRET8PlSJ3QzozjxgYKx/6HLuZVq12M0iJRMxbmWOLLpjqUiVyC2surwbD25O8HbFW/dWd76fKxjty+xMzj4r3r7/Vnwu/XAkJR79RtswA2P9Q/HdbY2I6HLuZXpci6XFg8UsVkd+Lc515ecSz59cSc5N3SEiWlnee3Rt+u51q9iyCHV3JgpERJRYmh9Kzkxq/Pibrz8b1++TnJu605Ffi/NjfaPzNmIcu1jFOk4Nlg7Swzkiop7lhRS/RlSR/7Q7cd5oeX4hVaIbD25OjGuxaf2f2IhOOGvvOsoWyplsoZwp9fYViIg6//hdIyJq2y+2tJ4cdhJVjvJsoZzhRvx847cveBtudI6zsrz3iKgipFGZ64tbq1zWQXo4ly2UM8epwZKdWDxQbj057OQMedbedcTZ0yy2G5+VE0LRnZmxPfXzOv//JvN0c2S0R2s9Oexs2y+2iEf2yGjPD0S1sVVtxvPpn5vt/L/RjLIjvxa324h2Y+1Mzj7jDKR/D0ElFANrJ+WLXR43Lo+dLpWOL7lVlt1Yxdv33ybnpoiokoWCkGnqEepMdOn9QSsRmTbCcWqwxDM7cWCbWJofEgfgpd6+wvri1qobdaoXi88BEVW6teTMpKafDASNUA+seYBKRHT11x+/JKoc3afdifPE8ydXeAxGVBFq4/GrBd6+bb/Y8v7qV38REcV3tzUep+n3M+Kfjz/5W/+cnVgd+bU4j5t4fJZYmh9q2y+2WMWWjdRMpJ89MWftXUcvXr/LOo0vDlCZvdGJPFGl2+hZXjgy2qbU21c47U6cn3Ynzku9fYX47ramr2vx1r26mUk/Da8Xq2/2uwGi/87YD4z1fxTf3dauTd+9rs9emOL7hJhZiP5/fufF63dZnu0w+u5mfXFrlbOCGMeqi9F/HVHtVi1jJWcmNZ4t8v5vMk83iSrZi08pmMWWSSi/gA3id2lhhL+ADXUmAv4AiYBj+Bf7oevSgLeIV3wgEwHHQCLgmJpEBmuzA2CI2cWL0hejBeqC7gw4BncFAQ2Bu4IAT8Cd0oBtcKc04BlmszJkI3ABq9sQ4z7WoC7N3scaANtgWQZgidNlGRiIFFHsrg9re70ziBQtGllg2PaYCF/QRodG2xrLd4ILeLl8JwORQowfCwkzECmE+LmkOQORQkQjg2gjnP4YDbM2xXEqEDnduQpEUhQ3BCI3AlRB96YQTsY/Rrj522qIpABuC+RqIAHIFEC8kIfx6ioPiBQgvBTIs6ACkEkiXsvD+HW9GWZwPuPWzMsOfl60iKzkA35lHxEZV75CJg+QIQ8j8/JpyOQCMuVhgnANfm0ZSAhlD93vfaS3ofQK6EB2siAIWceIQFVGANmpStCyjhGBrJSOyAmlgjgiga+gjrL4ICxSGfymWal2UaqyBigplerS6FG68gaUjZ6UJZfFVROh+txD9WYsMJTLB6Ly+QLgjH8BZR5iDVcU0CUAAAAASUVORK5CYII=)![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIcAAACHCAYAAAA850oKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAIABJREFUeJzsnXeUXdV5t5/Tz61zp/cZjXqXEEgUAQIMAkxvtjHGsQ1uIY5bHNuJe+w0HPuLKybBxhhjeu9dAnWhjnqZ3svtp+/z/XFHAiHJcZziOJnfWnfNWrPuvXPO3s9597vfskcKwzBkQhM6juQ/9AVM6H+uJuCY0Ak1AceETqgJOCZ0Qk3AMaETagKOCZ1QE3BM6ISagGNCJ9QEHBM6oSbgmNAJNQHHhE6oCTgmdEJNwDGhE2oCjgmdUBNwTOiEmoBjQifUBBwTOqEm4JjQCTUBx4ROqAk4JnRCTcAxoRNqAo4JnVATcEzohJqAY0In1AQcEzqhJuD4A0gI8Ye+hN9J6h/6Av7YJYTA9YoEbojneriejecGOLZF0fUIglK3qe87AFhFh9GREYaGR9m/5yBTZk1GCQXl5SnKyuKUVdQxZXIDsgKyZOD7DgU7JG5qaJqKphuo6n/PtEkTvbLHlxACx7awCgXsYhbhudiFPGnLJ/RtRtIFhBBEE3GipkF+tMBQehTbCpBiGoZcmkBFEngiIKIZNLU0UZmqQFEUAIbTaYaGRpBCCT8MSXf244kC67d0k85niUYDVr/wEnNOnsPMmREIIkybtYSGxkkEVDB9WjVNjXX/ZbBMwAH4vk8xl8dxC3iOg20XsfIOKDKypKGbBoqmoekqqqqhKTKSLCNLMm7gIwANUJRjJykQAs9zUVUVWZYJx5cUWZGRFQVJkglDgQgCdu7aTMEpEpFVwhC2bCli6wbSwHb+5VcrCYM+4gmobaxg3vyTWblyPdOmLeTkxVO48NxziUTj1DXWY0Yi/ynj8n8WjmK+wHDvITKZDJIAs7wMWTUxNANkCU1WULVjJ9vxPAA0tfRT+Pox75EUGcf1EZ4P8tE+hjYOiRCCSMRE1TUAsmOjHOrYjyMCAFRCRjuHGfYasHM9NI108ti6HXzgy1/kU5/4MlahnWIuTVvbDOYunMbkGbOYN2syhaKPa+W54pqrKU+l/kNj9H8KjmIhx9CmLXTv30M6kFGbajCMMqrr4jTVT0KSpeN+TgQBnufje35pcpWSH3/46f/P0NhoP/19vbieD6FHx4Eco3aCKy+Zzc5HX2SSNQgiYMuQzD88u49U3RhnnbUYTSsndMfYsnUrr61ez9XXXYZiFynmXa750A1cdsm7f+9r+j8Bx+ie3ex//iG6u/MwexaVU9pImDqqJiOPb9h8AdVV1UQiEUQgCADHthFCIJCIRQ2kt20yFFUFRcZxPVQFwiDEMPR/NyyKotI3OMojj73OvlGJtqhKeYXBgiVtVEp5vA3bUfIWAJ6hEiQimLEovSLOS1u20nPwTUazWWJKjEM93YyMjVDXMAnhtzBtegN33vmN33vc/lfvVvZsWEfuu99jU6SctvffwPRzYvhOHs/xQIBry4S+g6QaSKpJX/8AjXW1FItFJFXGNKOocmnZkJGRNZkA6B/MkB4d5OfPFthvq1w7x+PSpW3olRXw72BDBAGrN3fz0BN7mB4rcuXsFFNm1+O5Pvn+PYwCOj5qRELuOYS0r5uyQpZ8VCOpVGJXnc/MObXU1MZIRuMY8SgRQ+Hgzr1sfGMTt3z+qv/Q+P2vtBzbt23lH7/7AJs3tePYGYKgm6bGKI3NDcycNpfZ8+fT2lxFLJIEBJZVJBEzQQrRDJ1YvJyyVCWO5WC7HrZlkcmn8WyL3gGXPb2CPZbBq4fynFmpcuvH5hDIErqqomslHyII/ONemwgCRCDwAsFzK/dQ3LOHhdNMtPoKFE0n1jWMv2cL4Za9JLyATCKGMW8qQXUjxYY6tJoaAj8kCEL8UCGUFITwUCUZyYggS4IwlNBVmeJIHy2VDTQsnP97jeP/Kjh6e3v5wffuZM12Hdts4rLlKfraRyivS7F5s0MxO8z+nl1U6j307GmnvKpIc1MNra2N7DvQwZ7tB4jEItQ1VzNn9jTmzj2ZefPmUl6eACGhqBq6rhPYeQpWEUWSARnLFciqhKmrIAIipk5ZeTWRWBxFKe1QVF0jDD1sX8IPfNpfW4XZ1Y1Wk0Qf7MFes5lYbz9OSwvmKXPYX9XMvrSgvCJORAUfBVVViegmyrhrJEsBw+kRYsky8B0CSSMeNYkYUaKJGKaq41ljVNe10NDa+u8ez/81cDxw34O88uzTnHL6ycxqbaJjVGXnriKHOm16hkMqGkyCgoschYaGCsriMtv3uCSUgEP7t9F3qIfA7ifwBpBFFyL0Kbouti/4q69+gZs/8lGGh4dIZ7MgXAw5pBBIKJKKIsmokofEuFMi64So+EFAEAoimspDa7J0jcks13dzujtEsXMX8b09iL17EFOn4V5+PunpcymaJsMZl717DzCpuYFoMs7ePQc48+wlSL5AkWXMWAmAXbsPMGXqJCKaRtFzKBYKDAxmyedzdB3ah2rGiEbgouVnEI/V0tg6+d81pn/0cHR1dfFP3/seKSPGaWcuIBaNISmA85ZZV+NR8AN6elW27s5zqC/LgQ5BqiJGWdykodLjrFNirNspSFapPPJwHi/dy2BuL+HYbrK5LVRUmFzznss5/YxzmNzSQjKuI/yAXCFLKEJARsInHHfjJNVEwWUoq/A3T4yyaHQdH7F2kDqwl+L+Q5gC5NNOZeiyi+ltmsHg2BBW0aZ7ME1UTTB9Zj2xeJRUIsELKzZw1umzaWyeDKGEIMRUIXDzGNEEhmxgewUAFMVE0zXMiInwA1avX8+qV1dyxtKTWHzK6dQ3T0KWf7esyR81HA8/9CAvPfEIpyxZytSZzfiST0RWsTwf3y/dVsRUiMgqQomgGSqSVNqhSKpBJuPQ2efy0OO76c7EqWtOMr9Vp5gvsHBhGWtW53Alg5GMxMG+EXJDG+np7CJu7aCmQWLhSYtYcsYZLD55EVXlKRAhBcshJMRUA37zhsuah97g63tuo9FNE/QMESlLolRU0nPDtexsm8FY1mK4b4i5i+bwxtZhkmqcq65dgBCl6zd0jddXraa8LMnUGbPxglIcJKareJ6DP26sktE4kiyQxfjEyxKyrpZ2ULLMzjd3YjsWTQ0VTJtxErph/Jvj+0cJRy6X41vf+jvioc/CRYuoaIhhC5cK1cQSPpZ4y2okFB1V1gllDUmPIckqyXgcFIWhwV5efmEFLzzyawKjkuqGJiy7GUmvo79QzqTJKSZXJznUazFlskpbq8xrmwKMxjJ2vD6M6R1g896tqMPtRI2DLF4ynyWnLWPevJO5/bkcy1/9Oe/reIVisbQV1eZPJlhwMq/PPJUePUF+NM3M2VOZO6cNEYR85rOPcNMnT2X2jAYISxDIskLvgS5GrRyzp88gmkwghQG+V8QJdRKGhBlN4LkBiiqX9uSEoB5tHTRVpa+vl1wxi47ByUsWY0Z/eyT1jw6OLVu38fdf+Rbnnb+UaTPawAjxQ4EqyURClRwuQMmCCB8kjbhqUJasJJBgz9521qxbT/+urYSOR1VlkqraRoqGRs++IUb8AM0Ez4ayRJQg1MjaU7AtnRG5jvq6OB05n2sXqPiKQu9wQHmNycCox4Fdh9g7uA11/2bUzFZuUVU+5NqIMES++F0oySRPzzuLYVmlqjLCKQvno6gqvgjY92aOb3z9Ue59+CYC4b7jrhXeWL+WSW1tNDY3I6HiuTa+FGLKgphp4ocSIQoyUgmSdwT0NF1jpL+b515cS1lVJYoC77vuGmKx6AnH+o8Kjp/8+CfsXLOaU89ayuQpDRTlkoVQJZmkopMNXPxQHPldWSyJXbTp6O7nzfV7KaRHMCNRWjUJ2ynQ7TvUxeP4DRUAFPIuw0NZxmyB8GSCUEeW3jK/muoiKRqO30RRUXC8JsqiEaiQKZehoTrkrtddrCoTacO9uAceY42dJ3baHCJtM3lx9km0Y1JbG2Pu3NnYtoOsaiQjcXbu6GLb1n3c8CcXYjnFo+47YpisWruBZNzk5PmzyFg+sqwQ+A5mJIapKqhoyIaK8AMQIeilgIssy4QEdLR3k86MkUpVUJUqZ3BkjGJ/lvOuOO+EFuSPIgg2lk7z1c99hhkz5zH7tFOpa6wmVOHw5iCp6HihQJVUIlGdfMbj0O6DdHR0kiu6lEciVJcnqSsrQeBTuvEGkYeKKJJbSqfH4xrxeIzqvEvfqEWukCfw3oLD83V8y0EEm0nGqsmObkFyDSKFOENaM/s6EsTsMuRei6G9T/Ou0CU+ZRJhWZI9ZfXsFRFqaxOcNHcuI8Vc6UtdF1OxuOueX1LfWIYfnIUcehh6HFlV8L0irmdTW5kinU0zmLEwdA0hAhRZJprPkDOjlMcMPKeAkHQkAlQUNFVldHiYzp4uoqpOXWUNQpEYyYyhazL18+t46ZVXueSSi4877v/j4Vi/cQPf+9a3uOG91zDoCHQpwIwbWOOmN2UmkSQYG07TebCDwX0HkIihJ2NUR6upPmw1BQRyiFBCJEnGN6Cqsgld13A9gWXZ5PM5wlAQT2i06irDIyqjRYFVKJlo33MIvGEktZaokeKz33wvU6c1kU3b3PfQGla88jpNFdDesY9RyeKHqozUFEeqn8mqqmZSsZBFc6djOTkMOSSkFCfR9QibNm7jL5bdTDZv4/geStFBkWQUSUZWFcorq+kf6Gd4eIiZ06bheiG2nafTKhJXVLLFMSK6iSZJyLpJLl+kr7cdq+BiROLEEjGKroOqhghHEI0rSEqEHVs6aWrexIL5i44Z+//RcPzoRz9h65pVfOSm95O1fPLZNCfPbUNWZWKY9PSMcqBzN9n+EWTTIJWsYc70mXTlSuAEgK1JyIqKqkilVDsyMoKormIaaskCazK6FiUei2DZNpbtoWomjRETdTBL0fTo7x/Bsl16DrZz88cu5IN/cgUbNr7B3/3tP1NfW8Mtn/g4VeUajz+7jd1vPsTnRIAxvQEl2cDjZhQRgTmzpyGKGTRVQkUuOcl4DHbvZHK5x6w5c9AJ0dWSWQzCgCD0wdeJxSI4vmBsZIRCQx2CUtlAKlWBrimIIMAKJAwlpLejnZGhQTQ9QlVlFaEikS8WURQfXQGjPE46W6Cr/6ts3NzF9Jnf/OOBw7Ys/uKzX2BmYyVXXncVebvAyFiOyooEg6M2Hft34WUczLIk0WQZqRnVAJi+R28gUJImAIqiEHlbIYzrOIRI2IFERdRAvMPbUhSJeCxCPBY5Yk1ik+IcOthNbU0Zum4yuaWMDeue57v/+A1sz6K8rIJCIceTjz7FrT+4lc2bX0fNZ/lwxMCvqmKsvpV95a1Mr4xQHlcIPZcwlEHRkBBEonE2PP8kp5zcyvSpzQwNDxOEIY447FBKgIcmNKRQRlFkbNdF10v3GAiwnFIx0Ug6w3DvIQLJIBVNIesKlusQhgG6FKBKMn4oM9BzN8Xio6x9JcGq12tZcurAcefhfxwcB/Yf4Kuf/ixXX3sVWjKG47pYtktudIxgLE1Gj1JZVYeoU3F9wdurMYuqhq6CrsoEIiR4x+wf3tvHCNBVCT8QiPD4aXpdk0mlqvjXO36NLnl0tvcyNDRGOp9FllUmT25lrC+NyAeoqsnOPR1c/96byKX7+KCmY9SVo9RP4slIkoqkQdvkFoq+ikqIKr11XWZEIb1+FRcsv5RcwULVoiiKgl/ME7xtr1CwLGorK7B9l/6BIRqrawFQo1GECHlzzy5CAYZZTpmhIYkQPEHaEbQ2GYyNWvT3PUDf0BZkb4hXV0/i/R/+BrWTd3PWsqXHHYP/UXDc9ctf8eTD9/OnH7+RvFCx7Rwi8PF8QUNL41HvdT1BRFdQFAlZkpHVtxXdBBYg4foCx+MIJIWihR+ENNcmcP2Q0lN5rIKgBNaODdt4Y9UG6lvr0fUoltfLl770JVqmtPGvt9/OcO8YMiA5LgnVxB4bwXF9/lyV8OdMZyBWwVBFFXUJBUKVwPGQAEGIFgFVVdm8bRtD/b3E5p2M8CxyaRfZUDGiEYp2KT6iSBK6rFJelWTnzn34gaC5pQ1ZuHR3dlDIjSFQiScqMBWFgivQZShPRhHBGA/f+yJlNc+RTBVJRVxu+00djZNmYRVyRLUElRXH387+weHwfZ8N69bwlW/+DdWxOJ+4+YPkrCIFN0SEAllSiEa0oz8kq8SiKsHhB0uSS6/AhVCApEPooyoQNUCI8d2dGit9XAIIT2g1FEUiGomwfcc2RgujfOLSP+MHP/4+zY313PKpP6W2vp7qaAoR+mhKClUpmfiiV+SmwMOYUYdc1ciaWJKgqDF1SRuhHSIrEijjBceui4fBfd//CRWLLiKZTKEoKmGkVEtyGAyAIAyxAo9YPEkQOEihy2BfF8NDQ0TjKaKJGmSptHV1Bei6iuQLfvijdaxdv5VZbf186FNF9u+T+OXDLfT1Fbn8itMY6uthyRnn8PrKzUybOuWYcfiDwZHPZRh66XkGNm5go4Bsbz+f+c7XSVsOhKBrCihRFEVFkcBQjj+RRT98CxJFL8ERuJT2uTKEPrJc6sFIRiXc42fSj1GuUOSKyy7j/PPO5JmnXiRuRKmsrOHyyy/n4gvfzfrV61D0KGJ8ifA9HxHCJxXwW+sZUWMMJGpoaUogBaVYA4AfCMIwIGZorFj9FAucIS644f0UC1mSyVTJiVDeim7qsoJnuygRHc/3CRQTX0j0D4wgV85Dj3lI49tiSRYocpQH79nCc89tB8Dzy4hUdrN5XTOaeQkntfXy9W9fSnVlOUEAH//Y5znnvDOAa48Zg/92OEb37mP/c/eTX7Me3y/S23gqcxa0MWvyXu779f1c897r0RWHEA1TUZEkhTAMjgxu0fUIQkgY43UT7wzhhQJkFQIPwmNJ0FWwvaNBO9w+oIwD6HoC1xfkc2lyWYtNm7agqxG6OofQojFG0+0kU7VYuRHksHQdllWyGvHZ01BSk1mllyNEkbaWOQgvIAwDPO9wSNzD8XT2PfMUUy66HjPiI9mC0YHceF1a6X2hLCElNBzHZqivH9suMNXQaM7nqRodJTjnLPbsGaC/GEEyNbbuHeGx7z101L2VV42iGRH2HKrmQzctoeHyMkLDRBUuw0OjuPYAkUjFcefqv6WpyQ5COtZv5KVvf4mNX/lTejduZWvjUvYt/QCz33MBFfNm87lvfZWqmmo+++nPsH7jDhpbWlBiKo4IcURIziu9AkkFWcUXIb4IUcKQ0C2CXxi/I3X8dWzhrxAcYzlcr+TSvhMMgCAI2LDxDWRJ5dN/8WkSlQaOn6eYKeBLPsnaJhqmtkBEwRclX8ObPoODikGHUUlbaxOeLxMEFkK4KErpe30k1r2+kvZChMXnLiOd8/EDFd14C9pUZRzLLbDipdUc7BuhvJhhXqbAzGKemGfjGBpyspwFC1tYtriO7t39PLs2R+ry81CnNqJrZehaGW6hnpUvNmAVAk5fPItAVQgCma6uYRobKpneOo3WluP7HP+lcAgh2LFzF49982vs+e6Xkdc/T3+sjZXTrmX+8vmcdmorkgjwbAuvkOGTf/an3P/wvWRzGW688SZWrd5OpCyJLx27pKiyhBUAUoiqqgQY6DIlyyF8judsOn6I7YZHgDgMguUG5C3/yO8BAt8nGi2js6OHSDLO6pXrcAsB+aFh7NwIXjaD59vkrTyZzCg3BR763DlIrstmPYWGwA9LlV+SpCAkDceXsAOfQtFjIDPIeVdegCZryKGM60o4HoSaStfAII88tZZf3/cys0OLc9v3Mm10mHIvh5xLE+nqResfQA583KyF44Zce+VUfvSJcqLtPWiL5mOeexJIoMg6oeRw5lnn0d0zwFDvMBvXd+J5Ab3d/Xzy85/l3t88eNwuvP+y3Mr+rn5WPvEMZS//nDIh8Ah5reE9NM+bxPlnTad/ZAhVClAlQFbIFjyeefoFrn3PVSQiMoqicc99j/Dwo4+y/F0XcOHFF4EUUMiX8g4JTcIXIa4A1w1QZYibKk5Q+l1phh0Q404qAiFKScvDjmgQhIRIjKVHSSaSpHMWsWiEfHaMTVv3M9jdzq79nbiWT3l1OQB+sVB6SYLzLljG/q4hejdvZqXkIl96CW4o8dOmBchCor4xxsnzp2FZzpHlz3MLuL5N3+YdnH7lhQS2i6yq2D7sO9jL4EgaL2uxRBe0quPLkOshux7aeKGx3HMIrW+YwoOP46RHcUSI8F2QFEzZ4dbbNvLGWBKpLklh1VouO02lbdJCVLOAkzFJValU10gc3Gexa88G9u7exqc//wmuuOKKo+bwP93nyGQyPPH0KkZff4EFh55BqFF2GVPZ3nI1H7yqlea2Jnq6unG9EEd2iKrJ0vbOs7niigvRcCnmS7b/6ssv4sYPvJdVa1bzj7feiqxoXH3V5cydNRO/mKFo+wQhKJpCCEeDAaAYpddhUEKXMPTwfYEXQL5oE/oWX/3atznjlCW0Tmlm044DuFaRUJIwtBBdldF1GSF8ZFlF0Qy0FMTLKoglqti74xU+5VsYs9rwXZc98RRKaGGkTEaGR7ECgRu4mIpKxFB59tWNzFw4m7oFC8nnPISQeGPzPgb7ClST45SIQlNUPgKFmi9iOB4aMNbdzbPt/ezunoz97hl8zbOxghA860iK3wa++IlFPP/kPn6x1yE1vRWluZG075HImKi6gReE/OK2HbQPZ7CzDVTGK9i+tYt3sPGfZzlcx2Hv3je554mdLNjxCI3DG1FsuLvpBiaffirXXDSDQI+wfs1qtm/dTjyicd7yi/E8jyD0iSnHXsZ4vQ6qBGXlVWQLDk88+RRr166jtamRpWcupbmtHjsfYjuF0nb2OBK+iwic8eUGvCAkEAr9g6M8/dQzHGxvR1ElqpJVIGI4YRqEhHBtRrJjACTjVUiaihA+brZA05Rmers6CdMFVoRFlPPPBtngx/VTEEYUTwRossIF5y0i73joMmzcthsrPcy8k06iY8d2wlQ1CJ0qr8gct0CbbZFLRJFdD8PxMFyPYcXg6b0Gz/bYHBzyUIwYdlU5X7hlJuedOgPH9SEM0LS3fCxNlpDCgO2bDvLjp0bwG+opj6oUhEfYPcrI2q3YwRbsYgbNOAk1eTJ1UYsVa275z4cjlxtj8xtbefqVA5y29aeUu3nGhgwemfQhbvzoGcya1UA2n+P5F16iv6eTZWedTXl9Pfl8HkMOj0pCSZQm0BHSkRCyIoUYsoQigaSoJFMVZNIZnn/2edZtfINQVli6dCmLT5qDqihksnkCIcadVJnSkiJwvIBMwedQRx/79mxjsHeEkcxoKQQ9mieeiKAnylg4bwr11TVEzSiBIpFJZxjNjDE2mGa4d4j+0QxNLS0c2LONW1ybj81oxp88g62xOC9WNKO/rS1y0clTKYvFkSVBWZlJ1vbYsuUQth9Q6zicOthDQ8SgN5SpG2+27pMNDkWreJkm1nTLOA1VyJOqMWbVIidK6fUf6EOooYeiKKiyDGGIAuTfvn1z8+hywLrVHazcK+hRk+QVGeng6zg7HqemtQ0pcHCMk1DsJp597mNH9d3+h+Ho6u1i55vbWfn4fpYf+AmRYZs+u5m1132Gj1w3ByMSYd++A6xY8Sotjc2cctoppSLdcUWVcQhCHwhwLQcjlgBJwQ9cglBCl0sBHlOVjnSlhSLEEYKKVCVIErt27WLjxq0U8mO0NLXQ0FRBsqwMu+CSK1jk8zbbNm1if3s/uDZoGk7gkc+MkrcsJC/gvddfTXNjPaNjNp5nU8jbFB2LrOVSZuh4IqR1Uhtz5kxn66ZN/OgHt7ExyKMsvwCAx8pr6U41IcJS4k8Ih8lT2pgzq42RdIY9ezoYG5OZUe6zsK8PrayG17UkO4JaJkVCpo610zF3PlpbG09LSfraRxAHR/HTg/g9g7jdWTTHJorHk498hELOQxAeqV4F8ESI57kgAggDZFkhFIJcPsOKl3ezui/Kql99immz5qPIKtnhNImqJNNmXsev77rlqPrS3xsOIQQrX3mODVv6GOm0uXT7D+mT4qwKFlN5wTmce3Y1KBHy6SwdB/dy6tLT8QPIFEoBG0WSUCQZ17bp6+lgf8cAYZDDjFczpa2eVDSOkGRSiXJkVSmlsSUZ3dCR3lEgK/zx/lJdJxqNkM4U6OrqITfQTn/aoWhn2bpuIzlbYKgmBc/CB7TQJ5cvYufy3HTzDWSyPgN9vfT0HKS/f4DWya0sXLiYWFQnUV7OnOlTiZpxUhUpLn33pVzQO8iXZ7XhT2oD4NH6yXQZpSisqpUgNk0DTdewHJ+5RY8FepEuJc766BTyiXpq5jYgm1GUgUEKo0VeXd3BrgMOip5Bmx0DkUBTYsjRGOa4L3JutcfHz5mC5bgIShFUEZZiPiLkKB/k7dJMg/dcfT2qEueWT32YSy69iNGRDDe//2ZOufBabvv+F456/+8Fh+s4PPLAvazc3o/kJvmTFT+k16/k72bfyNUnR1iypIFgvPXL1HUSsQRj2TR+8NYFq8jks2k2vLEJ1/OJyFB0ApIpk5F0DhOJxinTaaipQFFVVM2goixV6m5Xf3tbWSgECiGdXT1IsklLSyPDQwMc2LePN7ZupX1POwOZHELyMVTBeeeei67GGBwaQNVM7ILFh256D7lckbHhYSoqU+w/1ElNTTmLTj6Dn/zkR/zyX+/iQVxmXnghAIqus66mmY3RBLquICkqbhCg6VGW2BbNIkdnbBJbGuZAIoWTL+Kli0TtfoJoik1Ggm39CupYDpVhwpxFsTePVFQoEyHxRIiejOGkyvjGjU00pZJvG8sSiF4Y4ochQRAgPOuoMYlETP719ju599f3c+nVV3Hj+64glMAPYGxwlDvueoqnn/n5fwyOYiHH3XfdzcoVe2HyYj797Lfp9Sv5evPN/NnVSWbOqsLx3oLAUDX8wD8qwxg4Dtu3bKej/RCVNVX4nks0WkYuN4yqmJgRnYaGBjo6uink0iSSldQ11tHaXI9tB1RWV2Hox1qQt8MR1TUuuOhK6hum8sMffB1NN5FkmUgkgipHpQVKAAAgAElEQVTLFDI5Otr3svdAF4FrcbB7gCsvu5RURZKKVIKhwVEisQiKroGAA/v2Y5oR7n3gfh5/9EnOlGR+1daEtXgxkuPgJ+IEsQS36wkkXyI3OMxN1VGEFGXntPkM1s5A5C3sTIGBUYvpC2qITKpn+7oent4yijTUznffV0NLSzXRSBRZliAEz3PI5lxyOZdDvR7bN+3lE588v+RrICFTssJBGCKAfCAQ7rGWQ1F0zj/7XJLlddx514/YvWs3ixbPxy4G1FRX8tGPfoYVrz3/+8ORyxf56U9/zKoVq9BrzuBjK2/DiSb568Yv8JfXm5SldIrFIpX1tSf8DkWSOLh/N77jYrk++XSawcExoskYkahOc1MLvZ39pHM5ylMJ0mOjJBJl2FYB3w+YPWchjpdj0aJTTgjHYUDSmZJvU1dTjUAqrcWA3d9B2aZdBPNm4JRFqWyeTjQis/nNbv7+wW206hLzDz5DhS+xfryKu6urh4N7dwKgKhp/Q8ApcY3wyisJzSRqGBIJYauUpCwZkhEJts84haCsFrlQQA49clqMzb1FpgqPsc4h8sMeDfUSUydHqGs0aW2txTRKuw5nPCwvS6UxK92Uje/5JMxkCZwwxB935R0R4glKeaXg6ALlWCzOP936fZ585kluuP5DNDVU0DqpgTmzZ9M3lKW+oZK/+uI/8OBDdx71ud85zpHL5fjpD35IIAV0HlT5yu478eyQL7fezN98rIa1a15gsGeESy6/6Ld+TxCGTJk+GzyfgcF+0maMmrombNdF01Te2LiNqspyIqaKIEQyYggCZMOguqqS6qo4qeoZvxUMTdNRVY1YvIxiMYcXCBRFwdAMDNUl2joFq6aBsjKN4pjMbQ8f4qVDLsV9w/ys/U4mHdqCLoEcwqXH+wO+i9rchFh+Ie7oCHYMdpkVZCJVDE+ahFUxCTMZpzCaxrVckp5LuebQqAa8++wkiiJQjUpkZILQxw8UVDlAk1VCAiQpSvJt1eOHrYImR8EoOZ1QSv2XfoJCUOppCd5ZuQ6e63DvPfcQT1ZzxTWXIqwCduCh6DE8rxffj1JZXXnM534nOLKZDK+/tgJX8lm3egcfd9qZ1NvLx075In/9oUZS8ZALLrqIWETD9sRRS8hxxzYIQJaorKunsaWVYj5HT0cnectj4cKZDI3k6OruRFc0krE4YQgnLZhPZVk58fITH0hiGAaRSIREPI4vBGNjw0QiMRRVwS4UyNhFKlIRHA9e22rz+OYR9vT51JkjXHFwHUs7X6E620OR0gQcz7MxIiYsW0pv20m8qVXQt+QatHg5UlU5mi7j5zOIIYf+zjTnzBTMn1+FoAbbCUqBm8PJNz1ENUwOdRygqbqRMJDwRQEJUN+RLlAk6ci1eGGIE4q3rMm4XHd8h/IOqarKr351H2YkQmV1FQ115ShSLblcnmIxjxQqyJKMOM6z9m/CkcvleOzRx6iqq+XBB55nseyypGs7fzXjS3zmppnUN5Xhjz/FBfeti1OksBQaH9dbZW9Hy3ZdZN1g0vTpqIpEemQYgU993amkR/swowma6huorm1A1Y5vLYxIhIhhUFYW52B7L9/59ndZtXoNXR0H8XyL6666ks9/+bPkbYU7fjnA0/sC5qSGWb57BT/Z/TSp9DBeGOK97Ts9SYIwJBoxUWyHjJGg48JrOHTOhQymJuGpGppfIKqquFae6IhDaEho8RTa1CriusFocRjPk/H88WyfDEYqxuDgEPf+/H4ee/xx5s+fzf/7wf8jk8mhm0m6ezporIsjH5NuLkkQHgHj8C7F8wNKPaBvNUKlx0ZJlVcQjca45zd3Y0QSLDppFgcO7GberJN5bsNGlp4yl3g8hq4nML1jM9i/FQ7f93nyiSeIxHS+87VbicWSvLd9E7dO+QDLP3UqrdMieP47KQ9xrZBRS8ZxwRMKsuIQ0XV0RaKuWsHzPYKA8S51cEVAEIYEfkiqvJzy6jpcO0trSyWxWBxdjxG8Iy8UCoEZiRCJRIhFo2SzWT7/6b/k4UceQQifxoZGvvTlz3PVNdfwyhsen/x+N0Ewwns6VvK5oZVUH2jHC0Ns4HCXiAZokkRWltkfL2cF8wnKUrhnngRnLkeJaUiFItHRLEpNJSJahiL5gII1WkBWQ0TnfpJIBCFsGrKZd8McErEEsqSwas0qbr/9X9myZTeVFUkiMZMwlNm79wCbNr3JoQPbWXrmMlrrWo4sGYd1eGmRkZDwsYVc8jHG4xkR0wShMDQ8TDqd5eXnXuBjn/woK1dswMraJCI6M+fMZWQwx171IF/766/wD//wd5xz9lnIskKq/ti0/W+FY+WKV+kbHOC5p1dy1XsuYe8v/oVDxTZab7maxXNi46V2b8lxNTbus3lph03GCihKCrrrs3SWQWNKJp0NaKpRiEgwvc3EMEMcz8eQw1JnuhAokociXHQziayX8iJvByMUAs9zMA2TZCKB67r88Mc/4/vf/ycUGS697AJu+sjHSdVO5WdPdnPN13dz2egqbu1cw8z2jUcsxGEgEpKEF4bs1HTW1S9jzaLTOVC5ECMVg1iEc1okFkh5miYrSJJERSJO0kxgmBoqJka8dC6YJAf4QkZBwnY9LKtILB5naKCXO39+Fw/c/zD5dI5EVS2V1TXoGihhfPwpdFh6+nzOOnMx5akkwj/6SfDGl2kvDMcthwKBQ0IVyAoMZx3Wvr4aLRrFyWaIJJMsOu10VFXm3gfuRtc0HGFRX9eAEVXYv3MfnudRVV7B8OAAkixoaDi6DPO3wvHcs8/R2dnFC4+v5KwzTmPHrgMs7s/wyOVf4yvL4lje0WBENIkd+13W7HDpTPssmaYy3CX48kdr2bE7R8ewx2nzUty/Mo+pCoq4mLrKstkmuaKFggyyjKzKSKp5QmBDEaIbEQQwNDxMKARtLQ3cd/+9nL7kJFbuKvD3Dx1E73uOmw8+wTd3r0QU7aOA0GQZhZANFdNYN28pL9cvYbi6DT0MiBoQM02qalNcPi+F78lkikWWT4sSSOp4MB5CwANK1jgEIYPrgiiVEGzbsYvbb/spm9ZvJRqPoOoa8eoUiiKVwMAkCAJ03WTvwXYa62vwPejo7GLRgnlHfBMoWbMgDJEkUJDwfAdTU7HyFtv37qers5N3X3oR99zzAPU11bQ1NdLR10cuU2TVitdoSNWRtbLUVpURjRvMmj6fV199EYWQsUyGA+29LFl8yu8GR29PF3ff9yjZ0UEc36NjqBfWreK52uv44s31x4AB4PoCO+tx9sIYM/pNLjw1wYtbMrzZXsAVMnU1Mh/92TB//u4YTeU6t70wxntOq+DBF4pceUEM1xGlmMK/oXcGwCRZ5oLl57LmjQxXfnYd0zOb+c6ep2k8uJViGFIMQ4QkUQYICbbVLODRSWfw0uTzSEdi6GFAc1Qwq9xDz+WpkQymVSo0pkbo3NRHWczEUGDnFp25J7XhUVp+Anir8l0I8H0O9zrE43HuuP1n7NpxkGT124JViommqvi2Qk1zBTfeeB0XLD+P7976Y+qqq1AUhSnTp5YiU2+TF4ZHAlyek+XxR1/g3HPO4LGnX2bWjEkcONDB66+t5Zxlp1NbXY0ZiZBIRHnxlVfQNZOcH6DqMSorU8TjcSJREx2T9OgoZfEob27bwfXXHXtE1DFwuI7Dk089jZUdJRKLc0tFgXv3b2HA07juK5eNn6N5rHMZhBLLFhs8tdLBMCW+ed8Ap0xSmNNaxpY9NqfNNHjkL8v47iMj3NHpM3d6lF+9YfGJs5M8vqLI1eclsF3xW7eo75RpKnR35/jCT3rZMyY4c3Q9f7nqe4QiOGIlTFlmf0UdP258N8/MuYiCGWdqosC760MWTdJpqQ5pqqskVlUGQChkLFsgRMgSSmv8kfXfD4iqKh4hEVXDFwGO6x4zma7nkipPocXeth31Q8LAZumi0/jAR/+EBQvnU8zlKeQLXHftJZhGhKefX0V71yHefeElBK5PYbwARwp8YrEIPb39HDqwH08ErF27CT9vM21SK4amc+FF57N183ZefGUte/cfws2O0jvQgalHCCnteFIVdRi6wo4dW5g5YxaaqhGLmhiqctwjGY6BY8O6Nbi2SypZhrXlNdIVDvusJqpnX82MyepxrcZhFYKQi8/ReXWtzfvOTPLkhhwf/+dhzphr4CCY3RLwkWVRQl3hmTUFRuQi338+4DMXlBP48oky7jiux9DAAJPaJuH7Pqap4DohP/5NN4+94bJYP8R3ul7m7L2v4ogAE7A1naenns3TrRcz1jKVM6bLfGdqkmmNBrU1bfguBOFb3eiOfeQsJRQhMHUNT5ZL1kEIcD1QlVJjsm2za+8+8ukiS5edRj5XygIfrqYKPJ+GumYUZQdhoCAJl+uvv5IbP/gBqmtqyOfy5McDdIoMvV2D7N67m0lTJtHS3IjjeuNxDYmoqbB+4w6yuRw9Pd2kxzzmzZtEVU0V5y9fhqpA2/Q2PvvZL9HTM0YkobJ0ySLmnruYD374k8Si5Uihj+X6BMLlxZfX0VBXjiSFOK7Fxg1bedeFFxx33I+CY2xsjMGBAaZOaebNnYfor6jjdsunmKvgg59b9FvBOCzLCznv9Cjt3R7nLzBgAewf8nl+q026aBDI8MyuPJYnUC2NqeUCTVgoiv7OBxCAHdu28sJLr9Pb38/XvvoXJONl3PPsCL96IcOicD+/7HyIaV1vgmUTKAqvzDyXhyZdyr6W2Zxd6fDty5uoq1CRFJWiJaMpEkVr/JiCww+2qiCrKgrgCYGsa2iyMr58hAhZBtPAyhU4MNBLU0MjhqrxZtchqvdVM6XtrfO28oUinu9TXpnEkCRu/tMPcf0H3o8M2LYNIYyOjVJTXVUqOvJDFFPnzGVncP+Dj5FMRInHYlRWVZPNjLJlXwevvb6O5e86h83b93DxuUsZGx1hStsULMsiEJBOF2id1MJ1113O1LYWVCPKK8+9jKZIyGGpDEDTJA7u76Cro52muhiua9NU38T3v/sv3P2RG447l0eFz595+nmksIjvCfpGsmzduAlZC9m3R+Fbf/tesnnnt4Jh6jqe56HLKkEoiEYURtMe7UMyjitw3JCCKzDG4xUxQ6I8LjGzWSeUlOMuKZlsnnwmTSRqsOWgzO2PZpgadvGZ7b9mzuA2tDBkWI9z97SLefjkKygoZbSpNmdP8jhlmknzpEZikSgRRSsdaPLOg2h1DVmWicoKQghs18XUdRRVJZvPEjOjbH9zN1WVlfT29dDS0kR//wC+6zJ58jSqayuOnD2azeTwRekIhPb2DubMnYvne7i2TSIR57WVa7nzjt8QkueXd/+SdDpN4Fm89tom1m7cSHlFGTdc/17WrX4dN5DI5XOce+7ZPPfsS5xxxqnEoyZGJIIkyUdSAYdlGAaO42DoOuUVFVx11bXs330QTY8T+DapmnI++cmPc8N7rmGgf4CK2mru+OGvufjyMzl16e/Q8XZgTx8t0yrQZJXamkqmTG3hn3/wL9TX13LH7R7Llp3J1GltFCznuFHQUkq9VIyiUdqCpxIqCxOg64AQFKwALyj5Fsn4W/2exw+RQU1FnO5e+Pov+qmze/jRwKPM37EaOYStFXXcvvD9rG09l5gscdl0h4sWBMyeOY9QkiDUkRQFt2CVoDjeCcWyjCErhIpM0XVA10jnMogw5JaPf46bPnI9qBquZRFPmPT197H45MW4vo8icQSMQq6AIsv44wGv6spKsvkciqqQTCb56Mc/y97du4hqEd7/oWso2jYARTskkVS5+cPvo7d/GF2Bjt4BLjjnPHoH+nj1hZe57JILkRQFz3OPfP875Xk+FRVV7Nq5k8suuYqxsSyyJBH4pb+TG7W47zcPcM7Zy2hsqOPuXz1I/9ghTl36xROM/DssxwP3PcKO7Yc4+dRpSKGBqggOdLRz520/x0zGSWctKlNJli8/l/MuXI7v2bjjBEc1HSUsTcDvklb/t2SaCplCwHfu6ifbPsgXe37Jor0b8GyHTdXz+dUFN7C7cRHz5DEmG0PUJNMcbO+jq6OTnq4uMrkc6ZExpk2fzK3f+z5NDfXH/z8nqoJ2OOUtAnRZpaP7ILf/9G4uuuQC2g920ja5hYaGGmZOn4msyPiej6qpqLqGCAJc28UTAZ77VozVCwSIAC1ikkqWcc0V1/Guiy7kTz74PqRwPNwtSyXLmM3S2d3B7j3tXH7JRTz/4ktMbpvMjBlT0DUNy7KOvW5KkdBEWZKq8gqSZckjhTq3//Rn3Pq97zLQO4Isq6iKhmZK1FY0UdtcCaGKHjG5955f/O4n+7z4/Kt865t38Y1vfaB0DEEoISshA2PD3PaDf8FGRtM1nMIofh4uunQ5l1xxEZqmQVDq4pZU5T8MRjymcscTwzyxtoevDT3KsjeeQ1g261tO5/aF19NeXYmz9hGM4kGKhT6GxkYB0FUNQ9UIwhBNixNKKoFvc8bZS/j5z28nn8uf8G/KcqmlctVrK0hncnzgxhv55te/xoc/chN1tTX4wj9yvLUsy8hK6TRj1/MIXO+44IWBhxSLk4onuPzsi3hqxdOMjIyVzgQZhyOfy/PMsyuYNrWOyVOmMNw3RnllGZGIiu0KguD4+ZKqqipqa2tP+O80hBBs37qZVSvW8uqalRzYvY+ungFmTJ/CORecz5//2Seprq7+rfNwFBxr167in//pu0yb+m7OOKsJXdZAkQh1Bd/zeOqxp1j1+jqiidLe3XI97KLFu5adxRXXXoamKaUAk/T7WQ5VVekdzPO1XwzzrvRqPrHpDiJDaV6rXcgd88+hY7iTRTMi1NfVkEmn2bF7Fzu27yT0fUw9ghA+qp4i8G1URSWUVMxYyIoVr4y3JxyrweFRmpoaWLdqFZ7r8Ob+g9zwvmvZtHkz8+cuIJ4qw5TfuhfP9zFNE0XX8YUoBcUCl3yueMx3F92AaDJK3IzwuY9/gWnzZvCbX93P1//mLzn9tCUIIUinx9ANgzWvb6Kru5fr338VlpU7Jl0AJUtRV1dLbW3t73xc5NtlFQsoivo7nSQI74Bj/bp13HfP91jzeoIvffliJM0gmoofebOqKPR0dPPrux5geHCYaDKKHYaEXgz8IU46ZSFXXXUpZeUVeK5bivf/jopFNB58LcMTj/3/9s47Os7q3NfPV2e+6U3SaFQt2XIBG2NsQ4zpzZhOIEASCCFwSLhJaCEEDjcQbiAkARLOIaHmJPRmMGCwARMXTDMGV1nuqrasPprevnL+kAxWsJJcCC1rnrVmLekPlfn2b96991u3cEfPY0xY+yarJZn7qsbTUxYkmzdJDPahyBIuXwCv38vYcWM4eOYMGjds4J4/3otDcSMMB58UUaE/0c1zL7zIxAnj9r2liALLXl+K1+MhMTDAsaedyoply6gdU0NZOIxNVj6ckpAsFHAoCps2N/PqgoWseXc9fZkkJW4fB8yYyCWXXYJomSP+Tj6VQvV6cDudXHjh5fT391DQs0zdfyq33HI96USKba0d/Ol/nkLT4P9cehGqyzOUyaXnRyTseH0Bqisj//TC/isYaTlWruKZR25j8Rtuaisq+NEVB5PNiqiSSiwbwzJEQuEgkiCwbu1qnnpiPoV8Fm/4m7j9IXrbXyTW28L0mdP59rfPJhD0kdcLyPsYUrM3mkPhqj/sZmrzEi5b8yceiuu8Nm4SaQkEU6K3rxNVkbj86qs56sjDhm4XDicP/fkv9PR04fIFmbRfLd//3hW4XUOmMl/IcPH3zuPqa39KNv3xT/UeZFXm1YWLqI5E6OpPcOSRh2AIEjZZocBQ2F5EIJlOcd3V1/LB6s1U149FFgQkyY5g6bS0bKZhbD133X37cObY0CPNZAtoLjsOWeHQ2Sfy16Uv8Pvf/Dd2j4trfvIjotEY859dwPiJdQR8AZxuN4IojLiJOJ0uKiMRXB73p1nnT4R000033bTnm92dURq3JBGM7WzZlifan2HmjGoKBZ2tTVsZiA1SXV2JYVlUlkc48tijUGWZxnWvk86mcfgjOIR++gZjPPfifHa29TBj6hQ0p7bPvRMgL0hc+eut/GjN3STWL+K3VWOJXHQRJ500hykH7s/6dWtQFJnf33UX0w86gHxeRxYFYrEEgUCA6TNnsGLpUg6ffQzRaC9tza2IAlRUhrj/gftI7xGGKMCecRd7XbRMw2TihIkgwoT9JoIkI0tDRVIWoIgSaz5Yzbe/8R0GonmymTSCkCOeiKMqdlKZfqLdUVrb21n6xnIuueR7ZIcPkLlcHtWuks3m2H/qJBrG1rNi+ZtMm3kQ9993HzO/dgiRygjPPv8aqUSa8RPHkcsN/awsy1RWVlJTU/25Wou9GWE53li+iucWLGDlijaCgQyr1zQxYUw5537nbCRZJJ/XeffdtUydtj8eu4asKVQNN1x/5823eOWlJSRzaVxu94fZ3YPRHHNOPIJvfftc8rk8e23f5AWJm365mvGb/0iT20NWkzj77DM5avYsVq18j78uf4OV77zLXb/7PaXhMLlshs7ubvwBP9lMClUdOmnLisV99/+Zc844jQu/+30AFr36ElXVkeHGHArs2aOzuSGh/G3PJ1GAPVOUGA7fywovzn+Ra39yPRXV40hlkvidGv6KMA67l60bP8Af9NO9u4dgwMf2lhbmPfk4dRPqwbQYHBzAFwgiIgxbOwfnnHU+NbW1TJ46jsMOP5r77n+Qb5xzBmOrIvQlCmAaBAJ+KsrDX5go9jDCcrTtbKevf4BkOk/LDgnVnsQUdZYufxNMhbrKUsoi5cgyvL5kKbLiJFxaiqRKVFZWcOwxhxEKl7KrtY1EPImug92j0drexqIFLxIsDTK2oYF8Jotud3PRBY9QGHgOPVLOMZlmBmMp6mYexk03XkeyoPLcU49z2sknUTu2ni1btiDJIoqs4nK4EAUBu1PF7XZSXlnN0kWvcda5p/PHP9zLN889j/O+dTb5XH6kMEwThpN4RqRLyBIoCg5B/DCTW1JVlryymJ9d+wsEUaSqqpa6ibUoso90fJB8LkkwEMHj96EqFoccOIOUWaCtrZnTTjsVXdfJ5nK4HU52tu/kufnPEh2IE+/qoy+fR89kcTodzJ41nfKScnRBRRIFxtRWEy4rGxr28wUzwnIsWbKClxe+jury07KplbdWtBEOdzMQjaIoErKscfIpcygvCxFPJYgNxpElhYaJE6ipqER2yENeOpuN1h3NvPPuW6xa2YioyDgcfozUIKGKMq758Q+44eaHCPqSbNvWzn+anUQqJYyYTvuVv+Oyiy7GH/Tjsju487/upKqyilQ+Td/uXkTFjl0benBOu4uA10umkOXcb5zPa6+/zPjx42nc2IhlmCOFAcMtfsyPAmWigCLLIIooCMiKTLxQQAQ6mts4Y+4ZaG4XbrefmtoyOncNkkpkcLo1dCGHaCmESyOkC3E0yURTHfRH+3l+0YskY3Hi0Tgev4eXFi7mlzfdgsurcNzRJ1NbX0+J305nby9bW/pRpAKnnXgs+++3H3XjPt5h54tixH3I1A22bttNVYmDioYqTj57Nj19cSrKq4Y8jsDLLy7iyaefxSbbmXrQZAYTUaJ9/Sx/+x3a27swcgXsmpPK2hrO+9b53HHnrZxzzpm43RJ5ySQRTfCXR57gvXee5qSTT6Rp8xrslS58sps3C366eocCUnZT5drrf8pLLy+ksamJ7u4oqs2BP+ClvLSMsXX1VFdVECwN8uRTzzCubhy6UeA/Lv0Bms3+cWHsYY8wZAlRVUEUKQCWOOTcEk0TRZL47ne/R934SVRX11NRM47mll0ccfQ0nnn+Pv66bD6LX32eW2+9nsFYGzbZTVllPZmMxUA8TjwWA91EGu4ifMyRs5h7ylxe/+sS2jvaMYws8WyeYKiEi745h1nTJ7N8+Qo2btn62a30J2CE5Xhq3ss8+sgLCAZMmTGTR+5fjmjbiCCmcTr8uBSRgpCjryeJ3S4TCddzzjfPxDRSdHZ34QuUMrirl82t2/jhD3+AIonIw6FWQZbYtbOV3r4EN97wn0TjcW677S7WbHiX3Zu30relmfWxHgRBRhIFBEHGsnRkSUYRhxxbkmAiiBKKYqe8upQJ48fhdfuZP28xh8w+kLPOPYtpU/bD6fPBvsxydjg2tJdw9shHYih5x6XZ+OmV1zD/uRcYM3Y/SssCtG5t5eZbr+P0088gFo/R29VHKhcnFChBQOC8cy/GG3TTvKMV3dB5bdGzyKJCKpfFqWkgCthUG6072mjvaGXqQQeSyxp8sLaJTRubmHbAOJ588mX+/PDdn3qi47+SEeKY9/zL3H3XCyiyTjQ6lHiTzbWTSm8fzm6RiFRHcDj9xAYHKORT5FImkapKzjjzZIx8DIfm5KEn5nHbLTeTNfJIgoBDsX3oUtdNC7fTwe6uXaxfu5XOrk4UVaHUU4Jgl5BFnYwukI4PkkkkiSWTpLJ7SihFVFnA7fISrhhDwOdiTF0NHreN2ECCJcvf4vKrryCZyezbavwTdGzezjnnnU8gUIrLq5GMFbjhuis45cxTuP3mW2lp38XJZ81h8uRpZFNxSkrLeXHBIh5/8mkG+1LYNIV7770Tj8dNwTJwKDYy6TSDycRw81nweLyUl5fhcrmJDg7SuH4jZeVlNIwb+ymX81/LCHFs376D71zwawzTQNeH3ki0N4tuvYHX52egP04oGCI5OEggXILT4SEWSyDIEqlolKrKBk7/+vGEQk7CVZXohvFhm0Sbtm+HmM02VEsaTyTp7e4mORint6cPXTSIxtJ4nX5cbgW73Y4oC0iShFEwkUULl8dHJpWmtCxIWUUV/oCfdCIxJIy/tRx7B6xGOez5HE7mnjCX9tZubA47vmApxx1zCDfd9HMu/d4lGKbEnLnHMn5iA26HE8XhJBXtojwyhuNPOI3Ssghr1qzkySefJBwOosgKmVQKUxSQFTumBeGyIOgkwcUAABBtSURBVKFA4BN5OD9vRojDNE0eeegxbr/9FWzakGc0n7WID6wnGFGRZIl8OkMs3k+wNIzb7UaWNZKD/WCaxAcTIFqUhsMcc+xRHHHkLCRZQTaHchb+aSQVRQTZ6cIhSciyhCIIQ6HbvSKruVx+pOdTlkZd+H+ECKx88y2u+PE1VNWMQZYFTNNk4YLnyOVztLa1ser9tRx4wHhcDhtuXwmyXaO/azfVtfX84JIfkpNsbFq3isce+wt2RSFX0HFpjqGEIUVmbO0X57P4JIy4ygqCQF1dLT6fwXvvb0JARZIFCoaETelmsHcQm82Nx1+CJArIgkgmnSKdyeNyu1EVO7FYgoH+3Wzdsp2Xnl9EVs8ypq4Oj8NOPlcAi7+fCiipQy9RAsPA0A3I6xiChW4Y6Lo+9DINLFH8aPtQlI+cXJ8Ar8vNT668GsO04XB6SCYzXH/9FXi8Hky9QGlZGQU9i8/lwOVyIzk9WKZJNpNHsylsbNpMppCjtnYCxxw5C1mSsWkaliDgdLuoH1ODrPzjHNkvEx/7mHm8Xr7+9VMJljn5/W/epC86gGYPkc9nCJXF6RnoxRqQqR8/gVi8D3/AR1mJStvOFjSHhzETGsjmMhRSWQqWzrJFb/PSvJf42uGHMueEE9hvUh3icPzD5rShDJ/oMxmwLAvDNMlkUljDFsKrWUiaH7sqsWcsolEAX8BPNB5H3+PU+kfs2Vb2usbufS7Z3rSJTRt3IJLH6dbwezWOP+EEli5dTEP9RKxUmvFj60nF42jOAAYQHYhis6noep6SQJAdbQP4yiQUVUbShzone0sChEKhT7o+Xyj7tMEer5djjpyDXXawYNF7vPziWlRrPL2p7YSCBgQ1YvF+FFljMNZDwV5OTSiCoHpZ/f5SQlVjkBSL/GCKWDSKZUp88N561q1dT1VlPS73UViyi1wiz0AsTU+3ziEHLkV26OzurWXL5gi7Ox0oNhHF4UJzGpREfISDDhqqFOomlFJRlyLoLlBbrqGpzg+zhQxDJ7+nn+QeAfxt/uHfCMPldHLL/Q/g9vjw+D1YOYPvXHohy15djNNjx7KyIGvIooI/5KCg68iSRDrWj7ekAlEyEBQJlwNkxYbL4SCVyVIeLsPhdH4mC/d5MOoG7XQ6OPzwI/AFypmyfxUPPriEvt1Bdu8KINq24nGkSBTA7QvR09mMXlGOme8CxcZATw92VUGRNKrGjSOdydDf2UsuP5QyZ+U/GmFpiU50vZuGCQK3/PZYrrr8cWYeGKK/L0lLx9fY3hLAMj1kYv20ZbOsWWPiW9KIYXjIBAK4Cjput4psy1ETdDNpPy/llXbGjlFpqPYjShYo8lCt6h6XuWmNrCs1TV5btBhDkBESArIgcdxxR7No4QtMLZ2EaVqoskI83k90dyfBcCXR3YPYNAeyYCCgkktlcDrcTBxfD6JIZWXFV+p8sS/+7unNrmnMnHEANdWl1FZF+OuyVTzzRCNW/mCOOlrhg3WriA30Y3P5yMWzaC4XtRMaUJBo3tZCMj5AfDCKw+OipqGOfDxLb5/O3juvqUdRRBf33TueSHkbkw/Kc8dvKzjisHZ2Nhv86cEH+PpZ16CYErmeQf7vzx7jtdcPZs7x7/LY01fSPqAgUUBJ2xCDz7P8jVl0tGfI5oNo9iQHTBnEU34AM/b3UVdvY1ylG0USR8R4Vq9Zx2AsTjgyBo/dj8cvYJo6Y+rHgCghAP27dnHDzTdz9x/+m2wySzqVpqw8giSCqmjs3NnO6eeew6QJ4ykLhz+b1fqc+af7c+i6TtOmTTRuauXZp1Zw4NQQwZCXxqbtrFixDLOgU0jp2JwucnqSYCBMPDFIti8GQN4o4HRrWOZhWOZH5f7OgEFJoJuOzhoOO3wpHrfCUcds4tmHZ1PfsInOaBUHTtmObCslH+8kGq+nvCrDW2/W4/PHCZUoBAJdLFsxl2OP3sHjjwc49fQWcpkoHleKhoYY19/8U2IFBT0pIisKomgSqrBT5pOwqSJr3ryPgYG1BLw1SEqWU086kbmnzkUScmAJVFRWc+3VN/DGW28z+aAZ3H7bjaQSMTSPAwyZ0pJSzv/Whdz/8AOUl47em+Srxj992ZZlmSmTJzP3uNlceflJONweYn156msrufHG69h/8lTsHhnNKWNT7HTsaEHQZcrrx+IKuUCCdFoeIQyAeJ/B7m6F+voPOPnUzazbUAqWC3/5AFNmFqgoa2F94xQeeOB4quqhs8/ijbencfDMFgYG7HicCn5PH0fMmseCl+v43R0vcOddxzN58iDvrjyY1rb96I06MbMKNpsdSZSQZZ1oT4qONp3t2/L07NxINpEnmuginxM4YMYMWltaMHXQNBeiYmfpiuWEyyN0dbSRSCTwhyOoqhtJURAkgVgyS1no76fdfdX4xA3jduxopqlpAyvf20YoVE5isBVLEnnn7dV0tGxGETQSqQS5TAFfoISSMg893eUU0pF9/j7LUUo+nUVVRRS5n4ljBymt6WTC2J2EwoPYbRkaN02nvGQDuh5he/sBHHvYYu64+xy+/x8bCXg+IJEowxvoY6AvQiDUSdfuEnKZcrY3h1FEgVh0KMSf0WH9jmlksiqYOj2br0F1+jBFHVX0Mn/+Q2xqXM/k/Sfj9PrI51Icc/zJhEIRaqsruO/BPxBLJIZ8Ktkc/b2D3HPvPTz4P/d/8pX4EvKpWk3mcznad7axZt06tm/to6Ojl4Ius3jBDjRHL5q3B0yVWPduDENFVk5EVpxYxlCWtiApWEYBSXUgD+dmmEaBmYfYuPGWMzj62Fc4eHoFnqBBvOsx1m6cQcDfi6Zl8PjSKKqF22PR3wuiUEPHLi+WpDGmxk1vzMGuzhSqy4Fc+LiBFJUsiqRQSG6mfdt/YdPcqIoTn9/PkiXP0rW7C7fbA7KEYZqkogN4/V4kUUZR7SSzGUzTRLOp3POHB6mrH8cFF5zzSR/ll5JPlTSg2myMrW+gPFxJy4QdNDW2sPaDochiIdtALlOBInejusMYuSoEU/1QGMCHXxd0naxlYBdyDA7qHH3UDNrae2gYC1ddVYGAxXkXzkYRLbo6I8g2SDW7cDgcWKqCx5Hn4Xu+xnU/X8Hv7pxNT5fBptZBdnWmWbWila1tBj6/SjKTwyZpuFwGlSGd7bskBmPbkSyBXCZBSaASv9+JKIl4vT4KojB04zVB1ZzkTQG7LPPUE49x+BGHY1gSobpqFr6ymIUvX/ZpHuWXkn9JRonT6WD/SZOpqhzDpEmVzJg9hSceXsbKt7tRrAmYmdGLlgAEwYFsWpiiisdtMvHAUt5YtoNLL62nfWeKigoH2Z4MN/zuCCKlTm67411mHVLCS68kOPtUO807C/z6zlVc9K2JZJJ57v9zIzOmBDj7lDFMn+7DTOUIhxS29Yp0bt7NmWdNZPuOBD/92WqszAYsyUnQr4Ggo2lOZFlGscno6QKr16yltrKEYLgCVbWxaMFCjjrqaNweLwVdp6lxM+PHjyMU2vfMkq8yI9znnxa7TaW0tJzSkI9p0yIccmg5u7u76WiLfjjq6mP/gFIgLdiQTQOBLP5wgOq6IBveb+KkU6fzwANNzP5aCKdXI52HxjWd7De5lFkHVTBtsord6SMU8tE3oPPw09sp9du44PwJRHM5mpuj/OqGd5h1eATVofH+yi4OmRHkkafb+NNfmnG4/HS1z0M2s+QLJrKs4g0FOGXu8dxx5z3Mm/cchx46GdnmxuZwIIgi/X091NePHerq53Lzixv/H5dd/kOqKvZ9lvoq85nkogWDQYLBIKFwNWPra9m6o41H/7yKNStTKPJIj6HPK/GN5ld5tORkRFMh2tXP9VcsJRyS2bh5CXkdtmzNsas1yQUX1+Nw1XDNVe/iccvMOiTCWect4ZUFc1n59g7mP30SmWyazc1Zkl0FjjwiQuBWjfJSmWTGRLAkUFysbWxH03zkTZ1cNonXEUC027CMHNnBKIIss2VLIwdOn4aiKthkEE0LPRXngCmTKJhDDe9a29voHhjk4Okfn8n678BnPste13X6e/voG+hl27atPPXUdla+0YkiDYlksruHcb0dPOk5DpuRQJSUjw6nsoBhQColoPrsKJKNXDKPoAhMmhgimSqQzAiMOyDIytfbmDhGpCsmMxDL4HUpIFjYFQ2bqmO3Gdi9Ch5VYlubiCjIFLJdbPrgWrwOL7Jdxm73otpdPP/iw6xbswqHy0Vp0IuqunH6/ZiGjqbYyOXzBIIBzjn721x+1Y+ZM0oLg686n3kWqyzLlJWHKSkrJVxexcQJE+hob+WZeR0seW09uUKQOmUdpqSii37U4WluEnvmroHHY2GJOSxVQnMYmIh09g7Xdhgmpxwd5LwTPdjNOInsUFsor9sklxMQLR1TsSNaAumCQk2li4uvWIdeKCAYXbhUB7JkJ5vJ4/Hb0WSZ1e83MnXqVDZs3IDht2NTvSDLyKJILp/H7XLx6P1P4/I4/22FAZ/jAEBRFAkGfAQDPiIVNVSP6eCC8yewbNl27n2hBKujk7ziQ3DaMfICpgCWMXSMFUQbomFD0i0MQ0HVXBgUkBDI5VJMG6vw2tJuguVB6iICbreD15a3c9zhFTzzcjMO0aChwc/z8xu55tqZJAYMNBfk4l1IqoIuWzgcLgRRRpcFXlr4CnNPORq320MyGUOSbZDNYYoCbpeL9WubuO/Rh3ni0Qc+r8f3hfCZbyt/j3wuR3dPN/F4Hy2tAyxe2MGbbybo3J3D5VFh+AxrWF4kZag+12Y3kGQTWR7u3qvn+c0vpjJvwQ5KS3zYyJPI5WhtzROJONnQrBNwWqSSBopDpbOzgKXnyRcs4l2vEOtZiCTbsWkKkgBOn5+Qv5xrr7mMGYdOp5AernAXBTxuN0sWL+fnN/+GX/7yek45Ze4X8dg+N75QcexNMp6gf6CfeDJOe1sfS5f20rShn827IJcWQXahuQXsioogG0iyhcTQNOpMZmherCLIZHJxClg4VDuSJqLKFpkMeLwyNptEMAClDp3JUyt4/aVfsXZdE2JewDAsXC43hqkTiJTjcQa44Bunc9wph+F0O2lt2clD9z7OaytWcOWVF3Phhd/5oh/ZZ86XRhx7ME2TeCxOf7QHyzSxjAx9AwatnUnaWg06diZGjObweTScXolwiYTbLeP2aLhcDkIeAYdqQ3PZ8Xg1CoU8sqRht7uHWiiIIrf96rf89le343E6KBQsdNGitrqOXM7CGXDiciqYhoSoG8SyaTRN4ZKLv8t55358QO+/I186ceyNaZokEwlSmRzZTBJhuKxQ0+woNgNREBEs7cNkXVlVkCR51J4V++KZp5/lzjtup2VrC6ap4w1VAjoOlw+X24PX76GQL+CwO7jqJz/giMNmfUbv9svHl1ocnydNTU2sWP4W61ZvYOPW9Siyht2mUBYu4dQ5J3PCaXOxf8WTd/5/KYqjyKh8+YsninxhFMVRZFSK4igyKkVxFBmVojiKjEpRHEVGpSiOIqNSFEeRUSmKo8ioFMVRZFSK4igyKkVxFBmVojiKjEpRHEVGpSiOIqNSFEeRUSmKo8ioFMVRZFSK4igyKkVxFBmVojiKjEpRHEVGpSiOIqNSFEeRUSmKo8io/C8RivSFR3TqVwAAAABJRU5ErkJggg== \u0026#34;KYO31302R21B\u0026#34;)There is an image in a black border in the top right corner, but it will drop down into the text. There is also a transparent ellipse with text that overlaps the picture. Inline JPEG in a separate paragraph. ![](data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAC0AV4DASIAAhEBAxEB/8QAHwAAAAYDAQEBAAAAAAAAAAAAAAMEBwgJBQYKAgEL/8QAVRAAAQIDBAYGBwUFBgIIBAcAAQMEAAURAgYhMQcTFEFRoQgSYXHR4QkVIySBkfAiNGKxwSUyM0NSFkJEU1TxF3Q1RWNkcoOSolVzsuJlhJSlwsTS/8QAGQEBAQEBAQEAAAAAAAAAAAAAAAIDAQQF/8QAPhEAAQMCBAIIBAQDBwUAAAAAEQABAiExAxJRYUGBEyIycZGh4fAEscHRI0JSUzNi8QUUQ3KCkqJEVGOD4v/aAAwDAQACEQMRAD8AvyTT7zU/Py88YWJp9woPl5+eMBNPuFB8vPzxhYmn3mp+fl54wUxjlNSUSmnl8x4nl+XZCzVfh5+cHJpqfW/t3/GnDKFiafean5+XnjBT29hzv4aIlPf8P1g5NPvNT8/Lzxg7Vfh5+cG9QcTy8IJ2Nzyt46pFHvqHiOfhCtNvz8+79PjB2r7eXnBVKOYVAWO6h4jn4Qbqvw8/OFmr7eXnA1fby84LFEdQcTy8IP2bs+v/AFQf1DxHPwg3Vfh5+cFUZZTQlI9X28vOD+oeI5+EG6r8PPzg5NP2nYSMePf2boJGWU0JSNNPPHU44n63ZZ/7q+oOJ5eEHpp5fMeJ5fl2QNX28vOCSlmFAESmn3Cg+Xn54wdq+3l5wf1DxHPwg3Vfh5+cFKR/xvqta/KlKfDspB/UPEc/CDdV+Hn5wNV+Hn5wWnR7+Xqi/afXVguFvUHE8vCPuz9tn5QWaSdQ8Rz8IHUPEc/CFXUHE8vCD9X28vOCLHdQ8Rz8IHUPEc/CMjq+3l5wNX28vOCqMspoSsd1DxHPwg3Vfh5+cLNX28vOCOoOJ5eEElLMKAJFHvqHiOfhCvVpcOX/AN0DZ+2z8oJGWU0JSTqHiOfhBGr7eXnGS2ZTJX67AefzEfOoOJ5eEElLMKALHavt5ecDVW+HI+ELNV+Hn5wNV+Hn5wVdvYc7+Gixqifcaj5+fljBOq/Dz84ySifeKH5eXljBOr7eXnBZrHdQ8Rz8IHUPEc/CMjq+3l5wR1BxPLwgtO3sOd/DRY5RPP4k+I5/l2QR1BxPLwjJqJ5UPHdyP1xwgnVJcf8A3QTsbnlbx1WN1X4efnBXUPEc/CMx1DxHPwgjV9vLzgplLMKALHdQ8Rz8IHUPEc/CMjq+3l5wNX28vOC0lHMKgLW02/tO/nn9bvhvWaq3w5Hwg5NPvNT8/Lzxg5NNTu4Dh4flnjBT2Nzyt46orqHiOfhCtNPuFB8vPzxg5NPL5jxPL8uyD+oeI5+EFUo5hUBEavt5ecHJp95qfn5eeMHJp51PLkPrhhBvUHE8vCCxSXqHiOfhBqaedTy5D64YQsTTy+Y8Ty/Lsg5NPvNT8/LzxgqlLMKAJGmn3Cg+Xn54wE0+4UHy8/PGFvUPEc/CB1DxHPwgpRCiefxJ8Rz/AC7ICaeXzHieX5dkLFE8qHju5H644QE086nlyH1wwgqjHMagIrqHiOfhA6h4jn4QqsZHvP5CGD0idJ/QLosmvqC/GkeSy2fJUCsoYNprO5k1rT72zu+zmoPduEFKfdNPOp5ch9cMIOTT7hQfLz88YghOPSR9FCTJ60XwnszA/hLMLquw2dYb3bsNCO4iu/tht3npXujinYWEmkd/ZusjgKtpS2Ne39uOscd1eMadHJ7V14Cre+Tqozgx61xwGn38nVm3UHE8vCD9X28vOKmHfpbNG6Wu2XRVfF2WmKocTaVNnRyNRRhl259pjVZh6YO6bVNFVHQpP1klj7IG8JJBPY0kQ518HRTf8k4/545dLVc3rsH4hZvODDrNXVhp9/FXI6vt5ecDV9vLzilBx6YdJJRXU6CnyNRX3i8Ds5jawQWkjrifAUzhEPTHrmiI0FplUnBH+1L3ae4e48N2O/fk6Kenn3ffyfRGnB/zN4Hj781eH1DxHPwj5qyll2Z/HhhSKPT6ZJNFNFVXQtYBWyDe9D3Ld/1GBv4wrsemTZo6kvtBT5qFj7Gl6SAOB/6C39/dvh0OK/ZgdagW2fXxbmjzgw6zV1YaffxV3Ps/rrQZq1OPKz4xTO39MZdBNPWzPQzP2iaNNcq2vU2qKjP/AKCy35nHhv2pn6X3Q8qnrn2jC/TRKjYrrNnspdNgHO84NKio7O2HRT090+/k+i50kP1MrboEVgSf0tnRemigSds76yhT/t5ZKHQ7abJPRXPLD4ZQ6ko9JN0Spn+9fuaywb/W91Zq24b2Zd0z7u+sZrWM4sQ+Yg8B89fFnU64Gq/Dz84jRK+mX0WZzqUm2mi5zdXCiMxcPJXXfm6YNOfCHak+l7RTeOx+wtJdwZtrv9Dem7zh0P8A1Ps+/LGu+CrpNvP0W+6r8PPzgar8PPzj21VSeJ61C2m4SOAWbW7Ls/Kv5V4g5mPNN+NONIKYxzGoCJ6h4jn4QOoeI5+EKuoOJ5eEK4KViuoeI5+EEavt5ecZJRPuNR8/PyxgnVfh5+cVKWYUAW0o5hUBYy3kO/8AQwVqvw8/OMn1DxHPwghRNIArHADGtQKU7eG+vDjCUcoqSp7ew538NFjuoeI5+EEavt5ecMLeLpddFy6syeSWfaeNGrKdS6pmEnQvM3mUzagYHamkqDqpGRGY76033Rhpg0TaaJU4nGinSHdS/wDLGK+oma13Jo0fqypxl1pqwtUfM7OGJf1sjfTOEoSiMzA28vus1vur7eXnBHUHE8vCMnqNVj+WA4ZcqVwrkIK6h4jn4RKJD1BxPLwgdQcTy8IXdQ8Rz8IHUPEc/CCqUswoAkPUHE8vCCtV+Hn5xk+oeI5+EEavt5ecadHv5eqro9/L1WBTT7hQfLz88YO1fby84OTT7zU/Py88YOjNOk28/RDVfh5+cG9QcTy8I+ppp8cPrPzjz/M+v6YKZRyipKUavt5ecH2Mz3fqI8QoTTzx78PmB+p7sIKUNV+Hn5wNV+Hn5xGjTp0utDGgCwuyvVeL15e4NgGlxrrkTK8Tg7w9tgn1JwHrAk07sKsdI3To6RumJ48kOj9showkLv8AZ6Scm/aN7bO1ClZtN82gpgfV9NwB3xUY5jUBTKWUUJV1N9dKejfRm0Li/V97uXYsf0zSas0HXH7nZ99B34mnCIN389KD0crqW1ml2Ubx36fo+wBlbX1Y12k/97de+/8A7eeIxEVcSDo4X4vrNFpveuezKezV3Taw/du5nMyK/egauqv8iONScIkbd/oaS9KirW7cxdqmmpWcNhsztzsdKkNccSMT8saxpLCaMnjKY0fLeo13+einpJNamvE1b3zdbxM/Sd6SJ3rlbsaL7u3WYJUGtvGvNp5M603NGvqrHLCo4cIZqx0/OlVeK8GwoOUruNNmdal2wuxd6zLhmfew7Ds0I3Z4YxKuT9Gq9MibMn8skDlFZdtr0WYavNpduTUB21a5A1wFRxwrnvl4OjUg+XkL5/LHMyfzvZZe4dGrqXykNtvaftWy2Y7YX2O6u4nPGoNCB6pI4i3ez/Tjq660Ha0h/pP171U1pK6aHTtk0zQZTS/s8lUtnLd0vdyYy9CQN/Wdo49U+qRmMPWAoKjKuIFf+lm61+9M022zSJd6X3rnZ94RvBblTQzxq5BrtgvA1o9B3/pSsdQzTojWtKd1XF1bV2nIeWGrW8t3ljK9mcNHcsav2jlq0d4F51sAK58N454dFnSKvDpa6WquiNST3SuloEurp7upoIvvfBlM3VjSJLkNIF73+jC7F7U7bt80ZvVJbeOt57xXdl0vobpWJ5ZJpJxAyazjWhNW983SOHGUmhSU5dlnpZ2Z6nduC1nQZcG8zSYoaO77KzF2heuTO3dwZvPnLu1MVbwSNptbi6U2m5qXjq0yHrCVzKZ/tabSj2do+uqGJXXY6ObtV4zfTSyrtap18yZ6hli5bZPGjVrwZcak514X4SP0S/Rql7lnM719JJR8o0GvXasHbmYtDMsKO5Y5eP2pskg7gQO6Cpx6P3oB3FlLx6NId4pvfNKWun7F0LW0MA7akvGnrazNQ7BYOzRhgbR9Um1ZypV0jwsa3u1h9/nxt2ODJzmfLYWc+D8FS9e/o3yCSJM38vvhJS6Df3tVafSourJ9xLSUzZoHuT3uyFaDAQpR6Jt1r/NZ5O5HPG+oshyhbt3as+sHbOZt6u7MrdOjspFi00Bsgn9qk1FkmL3JNo09GjdBk3mjO69icNy1aODMF3TQt3dWeLujXE/evgN9KRgL2MOjne7SLowaaB5UJFeCfpT+6M+Sl7YOG96bvpsxP7sKqNBtRM7uvOmdm1LJiaEGbzoinWjR8STReTUALG5ceX1XOjgWbK1fT7qhi7HQ7dTJXZEpi3mrZHZWCId2XcsLWWf4Ye9vpU8273s/s8E140xOPc9Ei8l3hLy4kVmwutO5mEZi393DXZ8vewTTKoIOI+cdItvo0tlZebL9m4tTZE6hnN0Np2oIOcKbX90FBnUV3UpWDXHR0Xlks1UrYBVJpLaJpbMzDdq5bZu/e3oxrvoK/AQ6Ser+/fm+wiWFmHWA29Vy8THo4XkbKJvpp6xKg2a0zeVa7PZbOSQ1aFrjUdwAyPflpXoKebQs1EtcTdgkGtVCHWOzE+9NRjQ/W6OjZfQBJ5o8dBWyVXaMuLddJxZDYFwfdWbrAU+q4CsaU86Kb1cM30to0lrJuRMFW9GwduWxr96zOUxx4GlCYt/iTF457irsRbhTXXg6SwZOC+XShNt2t8zoqEJX0en20uixd22QXbuwFn0saOtrbN3ZO1bURXYrOy0IwOffB836Ols23OqTkyKqMvbIIJ2RtLaa2m7oF2BQH1yyLx0OtYmIHqkY2YvsYdDBxtcuTfT3VJJOWqUwV2klxaEzdB2XTSg2OoZuuRMaxMeh37Vw4SnDdJwi6dLJFBxNnGyuW1aH3VnTEGXnhgdwqI6SOaTvTM7O3Ha/P5qujjGMYQ6sIkNe4Z60uGVFE06PDORW0GIuKpMitLjrlW80dtAdq96OyByXYY0qQKZHCNQedHldaWrKSZy7sskm5Xdt38slLty2/wAVQOyw2044AjHMY4xedPOiwWwWcieIu3a38bUSt0HOz7VX71NGTXYiTTGzWoEa+36Oz1BNd8+VfpNWjhq2aBxNHbhs0dIHag1Acsjtr0ncONKgQz9aUh2nINvJdbCLM2Vpji9BZt7g8lRBb6O0+MrazNL1i0VVcutUkHVKj/WADLluwrhGqTzRJe6VqUls3cy5/sw1qTZ08ce87idqwx/QClBHQi56OsnbO2dpVo2S11XBTDh24blztdWp2TYgCyNa2uFTgaUjBvejLKnbtEsURZ1rpy3cIrjBqD71V07OLOzwOEZ/3g/zcwKNs9/mzqXwSM7d3k7/AG7+5UJSGddIO6bxFKR39vpKHIcDU2mE0m7Y1GB3igzywib2j7pK9MWQStnqdOU2nKoP2Ze+tNp3RvvDz1uxd/AbwKZUrYG26IMkf2Z7t81mDN6k2JlrdqXTppNC4dDaxac7EfUwpSloYYbxnlm/Qyuu5SoveCZy5LXhZMCWgufWIo1BBakEgM95A78Yzzxe8Dp1hxbbb5reOFlPWJ29VDa7XpKul5d176svzdO50+tbT7jadXfcS8TRtZq1o2d3fesyDT/8PPyESOu96Vyy0YF9pE0HTWWsUPd3swuvPra9po5yDZzKZqxtA2Tu/aFccRjDs2+iHc+22QRnd7mL0J1fiy4Zu3ThttApg6Oy0NAcqU7aw318ejddORWWjeUu27xEhsussBsqAcN3YLT1o0BdC0ASxNccsaxTzwoxi8XGYniBlavi7+PckYYru46oB4s9W7v6FKJ96WvRYybulLuaLr5TVdq29qhM5rK5I5PGjV0Hbs0P9P5Uhip36WjTbMpRNJxcPoppqymSvmksmU1ms+dztCVv3RozRdWZYwlRINa4EjIV45m8vRplk6eSmbWXZQdM3UzcoLjArly42nZZo1ashWySD2UoOMTq0Y9E25kzu+ytWLztmLSat9nmMvWc7QHIQBdNmroO8OrXMCnfgYlpweLP0d9ZaDbj99VJl+VxyJq3vm6qymnpGOmbeNLVSaW6NrkPrVDZbC7/AKxXJ/xRrNp3TLhDCXm6RPT70mWp1d+aaaLEtkTtqWKzaT3Xu/LZZMnLrCzKncz2EllLy0JBpXtxi+xTom6I7aryxO1bM3kVptaesWiLrZbO2B0NpatNpY0qWlaYmoBzwrhELg9GG6yibazo8sXiR2g7DZczN1szU7U82bA7KCWZraGfKNpYuDAZ2BtVqh2N2bVtaHn3ocV7TZ9epa383tmdUMaFdC9/nV5nE1vVdIXglzlg7s3nmGyjZEbMvc1DuQ/02y09/DGlJscCItou10B75dGy890dMOilq4lrS8UpE2lqrV1rpPOZZ1WVqaSl5ZGLqSzxiWT1mnMcARTIViZ90XGj4vpsrd66MkkspaNW2qkaDR02strbWnrJvtbougdvGZGfOJA3+0+3TY6FJLdW06byeYy28ThzIlFXRqEWzllb2Ue5YstlnkwskD/4XZBzAjOWNGQDEXrqNvbs66+DGQIcWLeq1iSTCzOpUznCCAb7e3KijJcUcNHlk0dtHIAH2WmJFMhljSFyiefxJ8Rz/Lshv7i3vZT+zMlUnrZcrrNX51Ff8fgCTiPfQ1244Chr2guMmon9b+zf8acM4xVdjc8reOqRqJ9xqPn5+WMfOoOJ5eELreY7v1MEavt5ecEw+PL6ouE/tfrrQs1fby84I6g4nl4RUo5RUlTKWYUAWCTTzqeXIfXDCDeoOJ5eEHpp5fMeJ5fl2Qcmn3mp+fl54xKlE6vt5ecLNV+Hn5wNV+Hn5wb1BxPLwgtOxueVvHVNJpLvg8u1OLiSFC9EjuHKr1ur1rzzSFe6VOZpd27sru1dyYXhssngtPZWzYTue2mhll3bUwf4TcAipIEV+9JXpHsQzu5dfQN0nL2aTryXiE1N6Jtdm5MguRdGSSEgM6SeYWWDi8c4nj6toEsJifVVmlqyRlFiWmPRdKNLWjuf3NvBeacXTk75q7tPpwwetbBZNHMofs3jx03dUZu9hYvDMAZjX7VaVJpFQ13dDVzbs3wlra61vapClL2l32br7yXbWRtNjYvGuzjC1O2B9YWhlU0MU0TGUj2ctNS45BZiTTeDsNHJNuHPWqb/AEfdF+XzBRa8K7eYzd07mTNxMXT8mZOi6dE2XZduXdXhJe0OGQoaZxOW5HRjaNl0E7DJGU2Zi5DdZ4JUG4dF2z2to0tOh2jsxGeQMx+ihoxZTG/ksk8xR2NpM22vS17Wrb1nLWYeM62cNj3Upn25RcPKNCVz5e3Raqs2yySTho4CRagAuW1oOqnHCp8M6CNjFmZpOBxBNm9fHRMTCtkbU/8AFm+r+Kpr0cdGa2kqvbbMv2mk4qgsiC1qLX3Q+9ManYtkAHHd2T60W9FJpYSaTC8Su2t8UCg5bCXktm1QBsrXqg9Y0GYFabomRZuJJG79KZIoBpaSstkLKTIUsls1waAkCtLNrMUI4YiFU0n7S7KBL1Y2rStdlZgtUMqk7L1a4faoOthXtNY7OfSReMGNjwFWF778GCW7fVNuJsdAC3notLlehK6ErbBIJvnSqVC2t2nRQ6uzfdQOqP7tRQ1IzqCMIyX/AAa0edfaP7NM9r/1ezttopw63U5U+EIXGl+SIqs09V7Ja2W66oIIaubVNmBrUEH941B7Mqxra3SAu42Q1rotj+0nbBJFu5Dlw8stv8Q32cEAGuIzxzxqcujxeFLc7b8DXnotOlhr7p9/J9FmL5zjRtoSkLu+t4G6EvYo7Ix93aBw7dOTUNGrRo2wAw31AxrSoB/LZ9JR0Wb0dHfpMXWu7cq/CMyW0uX1nOkC70wkS72yUWs9046SZDcq7V4nLp7tr7SBL5G+u5MhNifsetyesBjH6HHTRvZO9Kejx5KrlJh0talvsWiTl02cl1tdAajMUwrXKmG+KmukxoraT7RFdg3e0a6OL4aabxS93cmZaRp7cxleS8ujKQyV1IpxM3V03bySu3klnV6bY/s+ymUuIMok4IBxpG4ZoPmbN0kJQuMpyueJvVqWuvJN3zxDjLSXHPCfahwBytWtrOo3C+s4kre0peLTSom6QTXEyXDxs3bl0ANr+81qccxXtpDUXn0/aF5ZIZ7OlNL1qeuJTJnT1aWsZ5acOTNf8DKhs1CfXT31fLzQEEAk5Ya0n0MdK80TWJMy1e8oyRxZbEYmhDsyzhuxERWa+jo0mS3ph6G5ffOYNbWiPSBdjSVNndty6ay9sL8aOGMjnMmakNHjn320zmcy9WndS1TI0h5QaLyz2FBc8/bs7K5tKUoRixJLkC2yfaR6UNGdyrvyOWu70zKbo3ek8slQV2maOS6Ddoxa0a4ihGNN1Kmm6LDvRlM0tNnSCd6SLtj1XdPRE3FoKubLptMZ/ea8cpfSqVSqV+/bXZ6rIzGYTMVAlXXktKEY6nLvR1aNNjRLp8fa1XKSDRztFBjiXJdVwxGGJzGVLMujXcLRP0e7nPLvXGsOGLqYOGi02WHu21zLZadYloANxB7s+MyhFxlztrmnn0t1YjibmmlajLF4uzWHE27tOZdWNs0pU2avAmu3aKpOCuki2bBwRNBi7au/9cKHMj4nKPjxS7atFkl5e6tTU0mSQaBw3OzU/wAGcDxy/OIbTrSrLJaEnTZXUqoOXKCqyG1V95FKje9I7eNM405TS01LhVITJBZIuGnsUDtFdpAxoccKY4UxHGJ7G55W8dVt0m3n6KWjlGXtniySNErO0hdV3Z942tyMhwHueFK1rUbqwQym8hfNE2jdFBodpc1SDVo4B7GtRgTwoPCNdjSgh10U/eAgtTAkbR3jLecvn2fbGkmWJqa0uigoPbpBfGgw2V073VB445inCYxzGoCdjc8reOqkBMZ63l4pVsqi0/nbLT3oZHwNTjgIayczyaJLqkNmrtFcbQltLpq2cusTv3Z7xT8w2k80jyt6n70s31eK6qW4nLDHHtpTDGkN9ONJUnaNyq4WLxKW+5Af4h0MxSpyBJAwNczvMS9ZSlqKaBgqjLMaAJ6Xlh67dIGxL5cikfb61BoNoB2Q4dbIkHD5jA1hvZwQo0Otm9pVsu4crpBw1rTi6psJy7zlnEc7w9Iz1W3SbIu3FliarlBc4NhtQ96DmtQaZV4Eb8dRS07F+pMCom1LVMexUqC4atiGVaEYmpB4E9uJjPpNvP0VKWdtBNa2yatWll1qZfVYrua+8DI0wA23K0KZd0Yd45aMLCrans1tqC2oPu4wBII+9YcQQd8RxS03q7Pq26YSUVbtm+1jPad2dDww34U3UKbaQ3L9wq+WW2Rup6zC+vxJc0JckU47jhXcTWM0Ul5feJJVwoxbEULeqSWYrSlPjGiKT3r2i12pw5cqWnbF1tDo/dScq76A0BwAFIYyze0NVHiTFFZVxtFUXbh06bEtt7rZgSMO3dTdGGml/E2ol3XmKCxVQJVK2YbtsRRqM9syNcTmcaCNoyzSZgDxP9EUjBM5g6blq1SbhRmdRrqbO3a7Pk2FOIpjvzocK6GtNLCips2kgFmtV1WGzAC03bCpoSRhju3U7IahxpHULFdRq7cdZ+u1WWaIHMDKu/Lh860hnL6X6n9tdow1S+3Vc2lDtRHuzloya4g0ArXjkMyBCUcwqAs+k28/RPnpE0iynrMg3DdB0G9pgJWgKB5s7qu1GuFQK5ndUwjGnhO60vk8hmK7Z4+cye1NgjtDpwGrcH/U1a0PvJwxpkDwhbfK+dpGXam1MSq9Tl7r1WiTtIDpy1ejai6JrZ3Y1x7MIapsus/mjafOjrtnYGSOit7zZtNbX3cNXTl5hQ50wFa7sNIQlKLSk2U8L/YXUzxcsnjlIFSLsz6Pqp5zrpUzWctFWzZ05l8mMvdrN0RtZDZyBsrUgNcxiN9eOEMpMNMl9Znb1Vr1hsqNEFVrVotgQSTUbyaYjAYY5DBuGd65JL2CbVOoNaopbMP3nBpXeNizqDjXAZQY9mib4IdV01laRqui8fO2rZtVt7vhtJPHDsxiXaOV4swIqTYd2ni5SMpMS+byHz/qnyk+l++Fm2gwUtLu7dNeFl3R94phQ1yAHGhrGv6XL1XieK3edOngaiXOA6lyVly7c7Vam7lk0dVpvNltt3CuPERqhc3Yu51VXE8la7x3QOiHdnUOTQYEV34YYjGsetJbZnauTLHKUyAfzcl6igCNoaS9v91aZnY67qDLdjG2Bi9BidJkhPq4kRNiM+HKBZ+AzF2FQKXacT8SOW299O7RSS6L2keYS6a3sTfPSqk7UkYa6/GlrrvAcCKgZV3/ABwiyeRXiTmCSKpWoVcDTEYd2H1WtIo70SzN5KyisqSitMNmWWS7qZ9uda9u6pFqGiiaOHUraazIUpuwOWGOMYtV2bX7s31RS4bqa1PiK041+uzA4dkHRiJXrNVu+jjnj37+UZeKjHMagLTt7Dnfw0QhPCiBqvw8/OK6Tbz9FmsCkmmlXVc8CafXdxhYmmnnXDdXsqTUngMcd3ZBMaHpUnrm7Wi6/t4WipTdym7U2cIq2QatXP3TaxTGtK0Ixqaxmpk+WLyBDELMXivxce6KBt3mvjdi7SCBNk25zeCVSq0DvBszB6gRQ7qZ8N7VvelXoCYN1XLO/wCyvFYSIbKC6Mum16DacuicjJWUwampwyoTgMY1nog9E/oV3t0UN9Iel+2m+ns4vdeuXrpv3YdLFeWutuTeCZ0cvDafyWby1/QkA2qkEmzSJV3oU6EWja596pHowlMhk9+3V27wWLk3hmS4doSe9luTvrN1pw4aoOx7nL5zal8wFGNbNBaIBwGmTfy9VpOMsPM0w04DNBnILs3as/JnVe/SOvPeHpCXDS0faPpHpjkd3nc8Z27/ALuXyGxJrc/u6198s3TUWWJnHq6c2hWZhkxsgyn7OYoWrmlztKmjy9V1V7w3GcpsJizlekFN2hYd2UWl20pwJTOrJaumbcVY2CCa/u1BOYiOHQD0g6e9BPSNk19tJt7b2TqUDbHGliYz2cg3OVbWj1XcpRZTOcuml53Uye0N3pizs1sgidSnqyv7MXt6SenfoVncru7pVm8mlz2790Z/ebRheuTks17T+72k258wmstdNA6s9V3ZD64tjrigFnrg/ZJBicJ8xz4eg63Ow5eLJLqwjOGIc0ITdstszsGJqOLhr2qtUuPfmXXPvZcufqLNlmktmN33L1VFy2o2G17KcxSnVr2UBwpUxd9bfsk0wsqvZCCjXadaT7HZyKi0CKjqmzarXGoxrTLjQvTp8dNZCzk6cy2OysSxQmKzoalw0bNQbIdgZ1ZmyBurOLVKY0ls/wDSS22MjuqrNp65drq3du/IXLMzF5tUictWmCkxl7ajO2ydvbNZkCDW0PU/7g6w9b/C4s2i7RuTt2R9Xs1vCIfFYXWw3dmyzlI658tALRDOzmrO7hhXofvppquhdWXquVpgipaJDdFS37s2Dg5e3X4EgCgI4EmIE6cOlG0btJaxllubIqzYtpvPZkhacy5dvL7JoZQ0eODQAndUb8sIof0xdPu+E0vLLmducorJpNWrlF/7wG1lq1lDG8L111nL3ZHewqD1aBa3YcIjze/pd275XXlEulN5rVtJXa5eHCcytpsHKzr3x3NjKZmzbuQbW1fs4v2VoChoSBWNIYDQZmDx3e72PdbzWc5544jtJpMGozdm/wA/ormr49K+XpW7KctmSCjWYuHTh47tFrqG42V+zauw0bbK6JsmoNDga4w0t0tOM1vWuVrM2bt2Mucu1ne3mvWc+4bG0Gzke+bxarStc6RSMleHSDbndqXzub2GzKXGauF3Dqat5k2kNoO37sNl9r2ezaZPiJgFLLChlHWHrTrGhjYn3SPu+3dJXbaFsg+bt2ll6wRctlrDR02aMA5Lp03srVq9d/ZHGtM4vEaT5Msc2abRuBms9nNvVIRhOLP2tna3nx1V8KWmVROWNEba9m3qvYEB0S62iuNstsQzZcafmYMc3stSu8CllT2LB7LduOuJP2rIq7GQNd5zwyimjR1p0ZrPVnyT+0WiNoIbPR0T1nFatMwcMTT5mJXNtNCk3dy5K0uEFETPtaV3Jps2x5VPa0GFc8KZGPDKEnGZsr2FzbutbvK6+JHgJa1t5KdFm98rnLcqpuyqnU2UkEgGwFrPqngca0oMMTjEM+lRpBbyJnodvimAkrc3TDJWiiyLps2PqO9ctnl05sK1GBsvOe8EV1mR6QWUxK81Yqr9V3MTZKQdHZ9oae6O3RG96R/eFQaYHKIldObSCVdEKjVOu0i/Vy7KJrRvRteKX0ckf1b8PlE4TRebPKOYW2LsV3EeTQllcUL0JH0Vq840optpeqmmvqSQCok3ODobJshqR2GucMz/AMfnrWaCw5VcNUVW2z66ydpb9gI+67aP6qCmA7oZ3n0lOXbG3bS2grpSppriCCgXLimTQYEcTlujUpVO3D7XNGSze2ojtJXVXcOnBbVypXed1M+2NFEZZTQlWGO9MD183W1ljbUlfd3ipIJbA/4obKRW13DfhTfoal+0m0yZ0mDm1ZSbFdJZvawaORUAunTah3ZZ7qViIMmvXYJ1CKi7xXaNe0LI9U2SKH3qrsVw+tw9JzRuu5WUY25gysy46l0zWtVD2ycdrbD+o7VvwyocxBqsz6/Zn+q0lLKKEqeFvS6mo32GaLdS0m22ho8DrrN2uZB91A/PHfjSmDeaZ5yqo8bNbLahcA2Vx7xtTWmRqMRnnWIkt7esmCrdVRfYVw1cNAu5KFEP9IaGgHGvzrGYUmZaqIq65EFGmtTDYFraGy/4UUphvpw45mo7Pp92f6LOUswoAn0mGkaduraLh0uEkxtI2NBw6Dg4YUIJwrmR3ZGMG/0hTT1WdoOuS2n2INNpDbMcD+7gPHCGm9cy9XUzNZ0UiG5cHDZ0GrcY2tqABJodw3ctWm94NsbrrMRrdcCQnSoo5pWhrT3NphXie+JxJxhmhJwcocaOz2568H7lWHRzoPmfosNe+/7ly4ebda61teoR1BxofeWm8gUOcabK76zdJwKPSrrv5RqG2dPhnQ0yPZjGgXkvAgHiLVIe0RPtVjXhXE7jnxwjT27x1VaykV3bo7UWmqPVpgKVHww7O8GPPKWWUXvemtvRaKbUuvpbdMLSSbzVLFdqvrQRVqWv3rqthh9Copm50ivM4VUqqtVJ0u2qptLraqf8tXq0FAd2FMcIr/kEznCTxGrayiQXKBRqG595dAnEY1yGeP5S0us4XVbs0lVj7VDUKq7qEVB2nMcK/Hsie3sOd/DRE87ud29eG9tBy8sqN3WuW2b7wHHutHR3jLI5ZYZ4K21mcw19tL2KqAat2iQwbhs3/wAURuIocCAe6MdZvG3k8sWYrP2rdFJxV0q5tDaNlqf7xNDh27u4xFDS509dB2iUu2gvAhMJgBRyjKSHExmbgHCpqaAUpiQO8xtGEpnK1r8/fkhi9nOtALe+9nUzWbtUN9YRRNZsVnajg+8Fu2a5AneSMMzmNwhktL2le4Gj1nMbzX1vTJpVacga5ss5BctQGtGrUAY57sqmKUNLfpR9Kt9ivLdG0tQurKsW6TlWq8yArSuz/PHLPA1ivy9E70g6TJotM733hnV4Hay+b507ct8cTRobVKYD8iMYlTKWUUJVmGln0i2jiWzdZtdCVzC8qSTco6+0dmbHOuLo414ZHdnEeZ/6U/SdaamWXZuNJZYxTLnVoquLTnZw4w2sBszz/KpG6I4XR6PN8r5PEG0rkLl0FjTWlr9n8qmnDsziw7Q96LC8l6lGa1427hMLU9kgKU7KcOw4cTASfssdage/op6Tbz9FXzO+nv0kp2KSxKUy4mp1yjRzMDXcQHT3Pu7sI0iedILpt6Rgi0SvVMrdkkoJCVXabWdm/wCVptOP1maHqQ0R+h1uahsir6QWXWQO3jrAd2Bp9ccLJ9HHo1NF93E0VjdyWpFDCgaWe6mW6nZ31pWotFyZZbChNe9rffRZxljykzZWY8b87MuHPRloR9IDP73yy8rSe37nSyMwsvQnep48dNHLgUp1rNokAdg6tAMAY6R+j9oX0+30lMsfaTJHPl71twLL7XTS0ZM7WpQOWzRtvs5V454x0F3R6LWja7lhJJKQtfZUrRrZocuXxwr8nzlmjy7kn1IYMgjlkKU7BuG4ndTsjScc0XiQePc5VNhyzSk8yRTKANK/RVT3A6K97lHaD6ZpalID+DTDtGP++81MWA3L0a25A3RRUIS1IGPd4YV7qQ/9iXppD2WW7H/f9fhBOo7eflGK2WHbs9Unv+seBxOcG9QcTy8IyaieVDx3cj9ccIK6h4jn4RUpZhQBERqrfDkfCCOoOJ5eEZOCuoeI5+EJSzCgCqUcoqStUS/u/H9Yx0+YNJxIZvLH6C67KYy503dskqNnDxv/AItm2pTqi0cjv3bzGV/mfX9MD+Z9f0xKl6xlHUV0DlUc6UmN5J8/TkegKfzPRno1l0yePpTKVtrm4TdtJOxk5DsWy2xFloZjkDXtjRF9COkedt0VZ9pQmrhsG3tgzSDUVH3yrhw8cvBWuWGdKYRc/Mej/osmE0mM0cSaYN15i5dP3qDKczNvL7Tpz972do1Iss+sDuw+dYOS6Puh5GnWuiHWtzDifTxz/wD3TvqO/Ps0fFm8XjmuK939D3lZ9Hv5eqo8n/R6lITWdza+d45naVPt2yU/tN2zUNnYeYAGueNBjT5w295bpKi5l8JO0cv5ii9mN39Sss6tWm9Q0nzU7MBWlGRFSeIJMdBM30A6JJhJJvKmVwrtsnczlzps2mFlFddy0cO2lGrsFy6zHLOkVsJ3alElE5aNZLL5Oug5Nl6nsgsotnTUlo6IaYfvA507cqQw3m0s2fsigv57Hvd1D0zQ1Zq+PD1UVrWjmcTNszdOGDaYsfV0qCdu195agM2G2OgTQV9zx38aUpEQ9MqN+0L4vJbJrMwdNmDd0ggkltTYO5ZNZQHSC8sbB31bL6SWhMOqcCOtTfF2V3rmJu7toqamqqzWo1OH3oj8uWMNbMNGUqeu3aj+W2VrazjeKON/97M1pQ7q76x9GH9o4jYGTJ/DhhwObtB3YjLQ3BevFYS+FjHFbEi4M8SeVmvnyUJqHjcVPNUdPpZfF80nEoty188aT2XWdpG0OnIlyExaUdtGzpA1Z7a9obQYCzSuPGNdDHSPeeW6l01sypZo3dsGdpGSNmLKyG7vZmbV1K5Yzsi0nsX/AFh+9nTOLsn2jS7qdh51Ja2aYCmGo2qp30+GWHflGjN7lSUPKaga0NiFuNPrvPCMm+OecZRzDs1rT2a9z6LWWA7DK51NB5vfy3VSNyHelU2P7KT6VKWWKv2Xc7ZSty2RczNq6fu3JdgVJ23AWu/PCkJ5loc0n37UVevJe4K7qcu5u/m3VddeaFszYs2rW012RvRiym/7SAO8VocYuVeXGljbUvtj+wKHYw2GvdWXVKuSd1oVxyPyjeZfdSTtW6KdlNszCuKxAH1SlQeNfnMvi2zQaLQhmNYRy/ovc3cblcjg5j1hy9VW3og0I3zu0yKMyWXXmDOctHFt4u4tFw69Yu8bHW/1oGJJOApUiJvNtG4dJoM7NlwjMnjd02TIwLZzse19b3kEeBy3Q8LRCRSZRm2trN1kgBrUqDFd1/jMcRT+o/lCpSdy9s7Zqa5C0ETNCFW4G0fdKD7QzBJIzoSaR554zviSytlsakkPo1rbl1eHDqtE9niLnY7LW5Lo1lN3WaOzKhErbUbVraSGzXLEDfl2VJNK0iHfTXu03daKbIRqqq80qaLGCQLYbQXMxvfIGZIJ/pBoeGRpSJmvL4vZo7aJyiXWrTZCjd20ftvbWu3rEcBgN+6IQ9MG87tVDQtdxVmCreXTNddZuih7vtQuwP7WTW0AMTZrKrIrkOsK5iM4Sk02L5tOADxOt7utMRotCWVhStSbe+93WNfy17rbKrJZwi4VstGCK1cQNpwx+60ocDkc4Nl9tdVSZJKa5cK+7LLIudmo4a0rlhnwNK/CNpXu5NVZRLkTL16rOWpWs2vYWm1ls1/es0x2KoyFeMZJpdF20k66dpHZAs4dOViKkEOXfGmAwoDhnCU5SBci3l9vEq1qEosNmrhZ2sqEVFfYJJBwaUbtMKn/AAnwJGOeGJzScWG0zRasETtlW2teA16rfI2XToY2t+FSe6Fzi66qqWrTWKKQ2VFWn94OaVI40xrTdnQxmpfI0WDgrW2iD1hrw+LlnYcWbYcjAdZsaDjiT4nOMsxpbmplKUQHBvyHvm63KXW9a0eW0hRVJsXFV8PtNqnZfeCRS1ieFKYUpGrNns11iTa2sg7RSLpBMGyS4sim45Dv7ccaw6ruV22Tb7CYWWeDX6n+eG9MQTjv3HtwMNqu1XkzRJN0+atNc316yFlyV35LgmoqcK5YDI5g4V2xWZpZWiBd9SzcOA23WK9J63WPE5ezXfObLiwitYtfZbWdoaHarTracCyO+zvpQCMZtTF81mUoZ2HKLSX7UgrNy3DeX7OAQ7sgVPWO14gCvHGG6vPpCksusTZOZT6yxbLLtaosnYauaWWuJckEdYUxMRu0odMnRVdOTtJfZn0tb2EHO0TAWXbc2rVDwGJOeXy3DGM5SJcgD3y8SvQYtdxpQnzbX5p4Zywl+sWdJDXJAHUFH7Jc7tqNd+BNe/KNFcvm0vXWV1bay5V9giVzWgOFTTAZk1PjFZmkL0lUj98bXHYOZyou4qkskbVhu2biuQc1+VCKZRD68/Sn0534UWSYO0rvtViSFWtVnHwLiopTHf3QlCMgWIt4t9vmplOUQHBvydvfN1fXMNLmjfR6mZteq8smsLo+32cOmtd4ywIxO/fEWdInpT7tyjbGGjSSuJ89Pu6ThMbNLmuGYcAj4/E91O6d0bz3qd7TP5nOZ46W3vnTp0Kkbs6UOe7McIkDcHo6z6dqIpMJM5VFcy2JBpwPzruwjR5F4uOyeZdn+inpNvP0Su/vSq6Q+mJVZvNLzO5DKF6/s+Ul02smp/1QIxA3gdtOLeyHR7NZ071jgOpi9d/xll+s5cmuWJqe/s3442k6HvR93svCozVmDS0inUHU7LTtHCmH6YRbroM9G/IpSGar2TB2pUD3hqCN9KVy31yzpkISlmFAFH4ktHH+m/ifeqoI0W9ES+t8XCKbKRubKKwpri2pjTHcAe8Vz+MWy6BvRiWF1Wbm8zMOFcPZEE1w4cK/LGL89GPRTu5dxulq5a3RCOVGoGAFMzQnAHf+RiWsh0cyiTppbMzbIY4kClR28Mc+EIxzGoCvo9/L1Vc2iDoMXMuk3Zn1C2BQpm1GNKjGo+JJ7YnVdTQ9di7yCQSlrVEo7xZx7TT4Z+UPm3l6aWVabj5fWO+Fmo7eflEqmjGJDMxuFrbOTs2yfuqOp7sONDh8PhujMJs/MV51/Qnj3xkk2/Pz7v0+MHavt5ecFSJbt/r6rx7c/kc8T1XEjj8KDurX6xg5P+KPh/8AygPNXX/st/Hfw+H+9YLTo9/L1WNhPGQhPBZpPAhRCeC07G55W8dUISWk/tHLvpj/ALHPP4QrgQUxjmNQE38BNTOo58x9cMYTx7654Dn4wUo3Wb1fgflwP59lN8E7R2WvnCNRxz8u79PjGNcTFM/zt/x+sBBFnlHGpP8AG/Tuzw+cQ56QWi9zNWs2vfcpOyvOXTUWZ1JSQLEwsj73M5Ya/ZmRNKMsjge2H2mt5dXkRh27iadvHl8YYe9ukTZU1/bfrjn9bvjBcdjVqSY5ZXBBpQkNxZRfu1pTWaotZbM1kWhskS9SwiDZctQcN9D294zrnIay9udOW6ChmTUkNhZWWRc0RLndQZ14U7IhlpYUu9PlnUxUbrN5kqNepMmZDZRw53bU3s+62j2UNct5iFN7NMc6uBVVKZ2n6STjXo2VLRbuAW2WIrnwy3RMZwkesAOD8ffk/PknlAGNyK6DbdWzz+70tVTVorZOv/g41w4gUrSncMOENwncpo1VWVUWGtVyRVPWXOGVcQcO3gMcIqksekOkjZRojPphNWDlnVvVVDrWaVw95bBY0p8OEb0z9ILotUTR6185c3URI9qupaNMTxAPb+saRiT18N7diWYFjUswPDXvZ1zEah04a2VlbiUo6pZ1YWIGzU1xbivZ3/DvMRt0hzydt1Cm0XcalFts/sDTtJw3CtKiuPZEV5p6QHRYpYWS/t7I1Uzmjae2vdjjXqjLDshrrHTq6P8AMbyM5fee/bRrKnUxaILKy9a04pTENqt8Oq8wFo5DsjSMcpqSs8R5PIRllyh3cEmurADe/AJ9brqabL9XiY3audKJzeKavXOobpMmzlwu6r90bdZvgbNnDGuRHARYpJOhF0zmF1n16LzXIl90pfLJdtGsvI76ttyg5AJsoNmjVx1DiDaBoRUGJm+ijvPd7/ixO5I+urdlsHMrFq5zmwzsqzGWMm9lgU3bO2vryLL2tS9s2hbyINIv/v1Jkry3VnkndpAtnjR0gSTgbND9o4jDA0OUViYjuGeMGB7LZdL3Nqc1TYcsjzeeYANlAtu+vkuKi+GkxPR1ZtM72zOSrKtnWyF5L5hr2S7tuARZUsIEGzaoQRZIBphkRFdjnTE26T/TYundm7ftbl9G3R9NJlNXBqjLDfu+x2du1FPs9ZhJm1kUBqKioxEaB6czR/pI0J36tX+0cO2MkkM8vW7lk7bKPHbdo3evGxEqnrorEtbT9O202DrNKGyKCgBipLo+dNC6nRlug/lEjcvr0XyvJMHc8vdey22cOHc9nbssrVq3at2s2TS002GXgjAYigNIZI4cpRlLizM49d/ms2xekzdXLknKFyQK2Yd1e9dc7NrLVrInDy2lZsJNtnQFp2LJ7cCQeIwx4ndGpzm+V3mSDxs4eoKJLVRSK5BbhtQ4UxoeIpw+PLFfr0od6J44TMklN6bTc01yD+bIpi1T/TiXltsdBQ4U44ZwyN6enx0jb061KXukpOmqKKi0dpwy41Jw7++sTFsOJ65I4d2+/k+layz/AEt/u9F1NTrSxcGRpounU9b2LCLf7ovas0bf+EE5Vyw38YYS+XTs0RXJQdqO7yyZNBXAsrDkOQcsnFajEDdv+fLNPdIem2+jgGf34njnWi0Oo1ULdt8m5767/wBcC00fzGaqFxMbb5+ocda9cOXFrE5+8k0x3ce2OtPDhGLRjmuXIf8AK9aPv534zJ8Rx12Yfy92+yvX0iel0unLbCzW6KryYuT7H9mN9bUOcDnQ4DiRXcN0QOvz6STTVfArtZAzXYonBF08c2rVrM0qG5BrQVH6RF+Q6H3T1T2LK0v2oWTj8hT4/KtIkVc3ovXunVtDYZE4CSv83ZqE9v8Av4xlKWYUAR5RjeLSOrgeT3Ud7w6WNOd/1P23e+aIJLfxUmVst7JGOG0g1wPbxjAsNHE2mzgW5io4mLn/ADXi7p0TXDfzp5Rbho+6A16JtqTMWbpqktStG1MSd+7sxzxixDRF6N1jZURUmMscPLaWSxbAmmZIyrwNN/fhnKWUUJXIyzGgC567q6AZ/MlEEpZKHKmIybYUz4U41oMTnE79E3QhvleZRAuZcWaWGPUI7jkMcMsMI6VdGnQHu+wTR1cibo0GWyjHgcRvIx8axPa4nRPkUrsI6xkDqsgi2sgn54Z4ZcOFYRjlNSVo0JOSG0Dk/JUD6G/RssLOxqTJjrlf/Cc6V4d2GGPwi1jRT0G5BIUmY9RNksdzUcDnQZ4fllFpF1NEsqkqfVURQ1gNQr1caZU8qUh2pfJGbYUSQGFaYdn13fGKWjRjEhmY3Cixcno9yCTWEaMacRswG7hmBwxyiQsoubLZXY1SSLdEYV6oqeVe48cY3lNumO2nMfPd4Qcmn3mp+fl54wVLGt2aaVgpJYfXDuO/vhZs3Z9f+qFmq/Dz84Gq/Dz84IiuoeI5+EEpfvrdw/WFftvln+9hiR+YI7wRA6ntBjgaU7a4CmG8YD8UEQj71EuJ5+EfNb+Ll5QNb+Ll5QRJ4LU3fH9IWQngqjLKaEpLq9VUnty7xu48o9QZqrfDkfCC4KUngQIEFUo5RUlF+z+utHi0nY65x3Z0P+/bnzxg+BBSmvhJbyHf+hhapbT/APKHgeH1X4Rhl3KSRwIPdlXfy3dkERTjWfyqfDjT5UrzzjSZoool9YZYfWOXaDGxuJgnq/ZfpQ9g8jGrTBwmrru3zH+9OPyImlvI8cJJrYdlceeO7P6rEWL4OHC2uzJ/U1HZv+s4lzPJem6Tp8cqfWO/9Mmkm10E3R/g8cQMScuG/E/HsjPE4c/oigjfBF66TWzB7jXDdur3UiB2lu50wfpu9UCcglge80AG7t4CLmZpoz246soilc8sjma07frNqbx6DEnSa2tQqe4Vx3DkPjjFRiHZj2trB233Rc0l/NGU066yuoI1WWBqa459X9OzdEYLw3bmLBdYqInLPz6owOPPujpV0gdGxFdNZRJnXCow+BpUd+dYhtfDotKOgt+zRU4DA4cu6lSYSaMgJEXpqN/bs6xecnADalifkqC7wyM9fWlEDE4HDPHL6rxEaE4u8oa9QFFQ/wAKgxFc93d+dMIuvnfQ6XdKV9XVI4WLRHd/v+Uakp0IHKtv7kvQcKbs/Dt44xRi13GlDxb7/NZvPEheLRPMjvZrHf739+iR6QKkzbdG+/rq24tOnshkF270TAEm3acyq1sc0snIiuxgAHE1GFaR2kPXSCsldPbPVcNbctcObNQNTaQLW1boRShBsioFK4mlI4Aeg/JZloQkTG5z9VwxbS69AvDKnSFbNpo3X94tACgye0OFKE5Y1juW6ON/2WlTQnc+8VhTai4kwlz9O1ibThqS2tYH+6bNmyQakUOFaCKlCUBmYG1Wew0717MCUZQbK5ALaU9Fyl+na6OSGkfQzpPUljOy7SLO3emVBH/CzeVuQ8dNbIxqSKGmGFCM8eCD/hyqopqdQQQaUpjhmMsSKdmRj9VfpxaLJBfG5d7rp2Gq6NhrJZ+g6UWqV0VBt0sdOrFre7tJqS61ZtDOwBaqRQxwFy7QGGt+ptIHSNoCXT2bsRZXbAuOq2ev2v71MABjvxEU/XjKVsgpcl/oF43YY7/+RonbKwbvJVZMl0NTN4DqZa4WGQVDap7vy7+G+H3u10W72zXU7NIlwK/xtm7acDQ/DwPQVoQ6IUkfStFVSWonidlAzFRl8/jlFiNwuh3LGzdECUNz/wDlQTj8Md3wHGojNUzyaTSi4BNCSL19nx5hLldBC9k2URDxraSOHsw14UHnv+MTO0fejnFtRFR8xXWAoMQTXdTADAHsjpQux0XmDUo/s0JcKNxn8RxrjTEVrEgZBoAk7DU0ZtwB+DvNcPnlB6xlHUV0DlIYd66cO9UO6OfR+XcllhEiQWKH8NMcMxQZ84nZcHoYSphqayhulwo2FfjQcK/pFssk0Vyxqmj7q2+XGvZ2fnDlMLpS9r/KbjsoKDAgY/L6rAR/NE6Vdh7p7dadHv5eqgZdPotyZomiXLIEbxQU/KtcsMd0SXu7obk8rCOraN0QKf3aUwpXId2ecSCsMW6X8NHuwpWtOHzEHavt5ecFotMaXZlkvtopbP7Rb+EaGg+shXvjbUGaSX8HDf8AVTu4Qs2Yq/xRTu5Z/XyEHdT2eePn3ceXbBEV1DxHPwg3Vfh5+cHJpqfW/t3/ABpwyg7/AOV9f05/pBER1BxPLwgdQcTy8IVwIIk8J1FAKbuFTzPh34wcon3Go+fn5Yxrk3avl0FgxNFTTU1+G/jjXMboIuR/0inpdOlrdzpVad9G2gfSzdfRHo96Ot/17gtpQpIZTM7x3/nUlc+qp9NXz+ayqcNnSNu8AfKMZIjZl1gS3rJWj6x+0L2PRY9NS8fTa6LUs0j6RJfJZbpJu5e+8uju+NmR2FWcpvC9uyxkjxC9ksYqFdaUWJq0njNFwxTpZYTKzat2KdU05mvSC+hT6bF9ekpps0l6ErsW7/3c0xaQrxX+QWZ3nZSiZyyYXomDqdTCWXgtTiYy0LISybrPVkngJtCXWuoO2/v0RPQD0hdCbo73cufpRmTS3fd3MZ3eq80qlEwL5mhO7wuS5Ley7RIbutibN2LEVBFAaE5w6PJxJ2Fub6qZ4rTxHZmJBfuDbmm/BXH/AFnXnv74Gt/Fy8oFjWY+WeHw/WBqvw8/OCpF+0+urBcKIKt5ju/UwRIlFD8h30Hj5YQTrfxcvKFmqscOQ8IRqN9ac/qvjTGC06Tbz9EohPBvUHE8vCCoKZSzCgCTwIUQNV+Hn5wSMcxqAmacBUbiOFa/p8cvGNVdhXga47jn2b/o74dReVhXOuNcvr6zzhAvIwrnZJ+B86U3Z+BSmcUDhXPDhgfL/bdCNVk5UzB+Va0+XlDwf2cH9A5Qb/Zy1/l2eXjBExyku/7H8q/DcB24RjVZUnXEUB41zx7Kw+6l3DvSFcvga54+BxrGBeXas5dXgf3T2boImgUlCf8Akg9lBQ/D9e/CEi8hbqHVKI2bQPx+WWR7Tzh0PUKtOrqhrBvpjxpTLnA/s4v/AJP/ALYImDm1xpdMEyCiATxFQRjkIbWZ6HmDrDYrPaaduOVPr4GJlf2bU/y+Vnwj5/ZJTgPla8IIoEL6D5aKfs2zu/u04+P5ccCE9BUsy2Mcd+Pfj4b4nubpKdf+CO8kDHdvp2d8YZ9d5Rsp/CFO3MU38eH1jBQ0Ga9e9u5/myrk0raIxILvsJ7LEdQGEyss3awzLSaUTbbhgHrUEnClbINCYvh9FjexaZ6D1LsuglrruOrKdm3Zc6+1sro0ajq2jWlQbOWYpnFfF/Lui8Nz7ySW0kOuvLXtltkOq4l4LppaNf3RtrSzarlShGYJcD0Z19H0nvbN5Pd6y3mm0y15LlrDx6hLJT6wbutrNtd8uRbUDQfwyybPa/3TFSjlFSVeCwlOOjQc9+ZWm9KDRmlOro3ivLLk17cytyWaoO21fdzZdNGbTaDYDcuDas2WtkEi1U54VoOJO9mgp1JekXf9i9SrZ9f2JqxpX/oydtNot0wxG3WXxNN9qhzEdo+l7pB6JbsS6ZyDSvpxurJtsHVcyO5yPrWcNm4FSF1Uy8cUBr9oy0ZCm+OcrpRvdEz++M4vhoRvPM72vw5ljNm+msqspMnzFs7qWbhK0wlzhpZGZAph2UimxIMzNNiGpfVjRm7vB1zEwZvitNmtwo3CLa7G30Ls9HvRw2RliKIQFKNcaU445ZDfwNYsUuxcpoi3R9h89/AgAVz74jDoAUZvZa3XSAKThqCl1SDZrSuFCQbOeRIiekoT93R4dn6/PhiTnGLSzSlIAil7MNtF1IG930U8kRnuA/XDPtjLpy1BI11Psu6vAVy+O+Msmmnxw+s/ODtX28vOKRI00KJ01Q3/AK5cafCDtn7bPyg7V9vLzgavt5ecESPVfh5+cHJp9woPl5+eMKoL+3v/APN/T9e34wREdQcTy8IP1fby84MgQRCFED+V9f0wIIiuoeI5+EeIUQIIk8F6qxw5DwgyPertUrhTjjT50gixexpnh87PjH3UdvPyhbqzWlTXhTH849wVSjlFT7b7pPH2h4H5GD4FCMxSCRkDQkJPCK3mO79TC2h4QnV/vfD9IKUjUTrXCu/zHM/VI9qKWErCivXTSSSs1VUUtCwkmK4lS3bIs2BljaIERz6TXSNlPRyuM2vW9kLq8MwmcyXlEolSDlJiytzFJptSas3fKAmXsi2PVHUJqeMc5+nL0iukzTlPlblyV9eG/symDkISrQ9oWSmjOSKOiaBCdTZmfXt47NQAba6thlUn9nmM54jRGWM8Qk5Y2GW9eJp3Psdo4TZHxMTEhhQYF5PWoIbiLPo66jbOkC4Nt4ZfYvldW0+BoWVifS20tUCpBFlySCMyDbFOUbUdXq7Gqt2FNbZFtNSxaFtO3YJwtWLdk2rNsHGhsk2TnjSOYbRnoN9KXc1kppHb6NtGEmuknL3FtTRJeWzch2u5ljlri3fyhygVFJnarg7WnrGYCoBtg1h5vRwdOLSLNtK7rRHpJavW11p9MZpJJfK5iu5mAuLfmVbabbCQzBxatrK3amXq10UJcrbtoy8WrNpM9U2SeyecJO04MzcHaRNtuHvVRKeDPDbEwJPKLUMsPEw3fss38SETxcxeW4LLoRgQYma1PGhwy3x4oeB+RjWUcoqSoWvJp51PLkPrhhBvUHE8vCBYyPf+ghXEok2zn/KHzPhBuxfXV8oMhcmn3Cg+Xn54wRY4M01cxjj8PrdgfzgoSlJXMDDL6PfGV6g4nl4QtTT7zU/Py88YIsD6hs/5Vn5nxjz6jQ/p5jwjZksOrXt/WBqvw8/OCLX/AFC2/o5jwgepm3D8v/8AMbBqvw8/OAmnnU8uQ+uGEEWsKSZAfyRgK5Gm/dXP67tWm8ksqprewFe0HHupgMNwMOhbTJpTHPdyPj34QjeM/Z/R40x3fWUEUINLDJ1LLq3oWZpuLNprLna9ot+sXVtFqes4s2KVJtW2n2bAAJJqACY5+uk/02Lw6CZEpKdBVzZjfK+7+ZbCim2mzyUMGFgtDWcOUmyiTj1YyySSP2pgahayxxjp2v5L0EU/sjWqVzpXdTHcM/17Ioz6Z/o0Lt9I69li9jciTm026rhtKQGO0rn/ABTrZtnNq3jmcacaRph8eX1WWJLFjllBxBj0gbNiVeOXJB+1+bN1mBa5XKFpi6QfT30nXmdIXz0zL6MmEw/jyqSTqVXTljYOa11NiWOX0/mVBSusUizz0ddwLzydSa+sdNl+b62p61aWJ8/vjPJq5SfrtTWx/Y27E2UdTFknY/xM5mttovMgD12JwiaVyPQz3MkD/WCSpul8Paq2C4XyH982fgTXPnZXoK9HpKrkrs3LWWWENThgKHAY7hTDn2RMo5RUlGxcR/4mHKNhmYO9GPhQ7vuns6PU/Uk9qWyRswcItWqDZBE0IGzH97cKVpzp2xZ/d52XTZDE13jhw63bxJrjDO3S0Py2RJIqBCyVUaU1Qpjuww+sN8PoxRbME0UzRFEfxVcATjlmMPlxiVqszY3/AFlWvy38IM7dwzPCKur7+kkuZc+cTuRPX+jVk+krx7LFklL0T6aLNXTO0bJZr25bd222LpImj4hwRaJ6tSQIZqc+luuExPsb2XDKdn+KG0ivVMCdxADgS48vGM+lhq/gNNRr9bVWscGTmrMBxbiN9/mrqqHh2/DjAig536Yq61rC3e1mljUerNHqzghtX933+87fsoM8DSNTf+mEkbi37reK/wC4T3bHdK6cqGG8bQ9mvhx7ZjivL8kogdtgTWnc1+9nte+hj+7CP+Zwe6rkcatwXQ7HrqWzlYtf+k+Ec1j/ANLPO36f7PYaX5iqMVE2r67TYHPEFldJ0Mhhv7I1Jb0jmnGer9aUaKtMs0TNSi2N4L2K2O8epbsS8DPjjuwjkcaUs34OM2WEp1i1copehN+Ch4YLdr4nBbvd9jvQ6cOBXT9aIs/vEWf/ABYfnSCVHDRH+M5bpf8AzHiNj/6rYjmAs9KnpiXiNZL0Z9Kkw138IvU9MStOH2vWzJHPDIE5kVhY3vv6Ree4yzonTZELfwzNbtXieb9/9pJ+qMMOzE4UrHWxMR/8NuFpd23fr5Oc+l+C/wC8w/B9vX21emtxeKRtPvE5lKRFcFZizSIoMf4ixpjvG7PdTXHOknR8wptt9LrNqjArT2Xok5YCituu+o7o5u29wPSozhTWy/QRd2Ra6pKjmSaNkSKnCvrd65IwzrTDPGMkl0YvS1z3Ve73Su6kmfZC3OrhSwg1y/Y0ttUw7c6RTvjRGbCZmewmx4bb+2q/Y4/wLWxpz/8ARiyFv0Rnd6VB4FyOhB1p90ONP4mke6hOP8GbIOz2iiCfGnI04oh0hNFSldlvA4mNk4JmWSKczKmVKloxVAw4xRcw6C/pRZomROdNl2JFb/zG19ZkCK4/9VSOxw/2wjJj0YfTtvBYBvH0tJehYU/jJC8GkCag0rjTrMxluHGE2xnaPXhHTPJok5QzUc787lW2P8JEO8PipG2X4adLX6R8M6tld+JBZXVu+kjo2ZCpF7F8d1zp9YH/ALmg4b9xjT3/AEu9GrMk+qb2r/iXYS+WofKaTBvkcMRX50io9D0NGm2ZaoXl6WymeIaXXnbvecfer1J58TTHMY4ZpH0Gcudar1/0otILwg+19XXTlKINTU02p69wzwPPOOdFjfuQlakJZtLhmF+92Z3XG+JwI2+F+MlY/gtEB464jkl24fMWUzHpwaM2I+2izQoDQPtIWjWW1pT+64vPbW7wMst9I0OZ+kW0Qy6vWmuj1JUk+zcaVbquQe39jrv6V7POIhS70FmgZP8A6Z0w6ZJz2JvLvsP/AKJKrjXt/IQ4Er9CV0P2Ro+faWJ0M6vr57ODj/3KUoceMMk/3H/293823m6R+Ii/Y+EnwJxMOHGI7bxPGxFnuzu4D30n+hdtUKX40SNyluF570zJx3BGV3Sc2KDiK5cIbibelp0ONFKf8RbhkZfs+7mkaa5V/wBTIZaK47qb+yjny70P3Qel2p2nR7eCaUw/aF+bzrZUoCGz1nTy4GN6lvov+g1Jh7PQFdt6oMjNJlP5t2j73M7R7O2u8QyT/cfw/wDr2e4dbGm9vhRas8fDdvy/t9JYOSCSxqIZzj0xWixBOje/FtwMhsWixxarxp6xvkwJyoMAd5AhqX/pm7pW9cnL7wX0dq7k2Nxbry6zkf8AV3omoOIwzwi22V9BTofSXVFj0eNFVnVHAuLpy51T/wDXJOK5mhJ35Q4ks6N2gGT6oSvQvouYdja4d27OHZ+yuzdie6O5J/uf8e7WW3m642Niv/0/wrW7eNKejU/CiN6uavQLnO0rekhurpou26ureu5mlO+0kVW1oQtzS6d2LaS7f3cOW6ktu1MZg1tYgg2LVTU0hlNDnSElmh5o6lfR16K1+7rLTAkuJoxms5nM5mBtGp2qbs7oJzcgk7prZ7o62mej64sspsFz7psv+Tu9JUDh/wAuzs0rvPIxsSMuZsyNmaotk6Uokg3QpQYD7Ix4cOIinwcNh+Jiz1M3YdlxZ6PuQ7OuSxfiJj8H4Ng5rBsb9Io+TLbgzmpdhXlpeaTOm/pZbN2kh6M+lCai2gUbVic2tJzti/BJNHlqezNhKCK/1JnKgia/Qt6D2n1vf2S6XOkSwutcBjd2ji6ejS7oYqPkpiu31G1TZeU2bMvYFo1OBsuDaqftEmLx9V+Hn5wnhGEYHK1wau9vbrGb/EYojjY0ZwYmMcJoG13aciBprq6ShIJduFBTHh3kntrSFUCC9X28vONIxzGoC1jLKaXWAsZHv/QQenv+H6wSmoa/Dur5+eEHJ7/h+sSpSxL+78f1g2xke/8AQQUlh1a9v6wcnq/Cvx4fp8YIjk9/w/WFkJ4Uey+urBEojx1BxPLwj3HjqDieXhBF66grrd1OXHu517I82Mj3/oI9wIIlEJVE9dXD63Y/W8gR6gQRa9MpAzmTcJLWCc93GtOw4YV3RqamjiWV/dp8hTsGHZ39sOrBeqt8OR8IImxaXLlbUn2NnHsA+PHPH8s42xoxQbpgJIjHPt7+FMRGW1Hbz8oOTb8/Pu/T4wREpt+zt/3qe/AnjhHpZgg5T1SgrlUjE45bu6u/5xkeoeI5+EG6vV4D88qfAfOCKvSZ+i+6HE8vHPL0TvRcpMpteKbzOeTRd1eW8Qaqu5g52l2UmjOaIWWvWd/aHVqT8MNkl3o3OhVLa6nQBcpyP81+jMnxG4/eZharwrXd8DOeE8VKcpAuRby+3iVi3w+Azfwotb82I/Bm/POenAbmgjBLOhZ0WZPb/Z+gLRakKZm58ndnsxcJLbznWu4w4bDo/wChOT19X6KNHDHU0A2e492kKk44dViP1yyh4P5f1/VHihrShrw3xK2jg4Ln8HBoP8Nn03283WtM7hXNlv3C68iZJ4CjOQy1CtP+XaWd2I5VOMZlGVskMG7ZFLU5apBu3rTj1R86VjJ6xThzs+EJ4qUswoAuRjhRIwoRN8rZSNbn1dek26fHtr8sMc/rCCdnT1dN/wBD/wC76rBkCJXV61SXH/3R5gQIIhAj3bzHd+pjxQjMUgqjHMagIQIECCrsbnlbx1QgQIEFmhAgv2f11oMgiL1e6n/lfr+v6QXCioGZpCeCIQX7T66sfeuOB5eMe4KoxzGoCTwnhRCeClCBAgQWmHx5fVa9YGs/eqcT34CFMCBBZoRkIECCJZ/M+v6YM/m/X9UCBBEZ/M+v6YWQIEESXqWeHM+MfLGR7/0ECBBEb17XHkPCPSe/4frAgQRH2Mz3fqINgQIIvPUs8OZ8Y9W/Z06uFf1rwpwgQIIh/N+v6oH836/qgQIIk8CBAgiEGfzPr+mBAgtMThz+i89e1x5DwjzAgQWa9HDV/wDaitvt7O6PMCBBEIECBBaYfHl9V669rjyHhH23mO79TAgQWa8QIECCIQIECCIQIECCJJbyHf8AoY9wIEFph8eX1QhHrbfHmfGBAgs0Nbb48z4x8t5ju/UwIEEXiBAgQRf/2Q== \u0026#34;kyoc5697\u0026#34;) Inline GIF scaled 50% and WMF scaled 25% in a paragraph. This text is before the image and ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAACICAYAAAA8uqNSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAIABJREFUeJzsvXeYXVW9//9aa7dT50zvmUlCegihRXoRFBCpYgEVUIoNBRWsV6/oVREVAUER6UUsCASv1Kv0noQkkJ5MpmQmmX7m1N33+v1xEjox6u/rVe+8nmdyJnPOc2bttd/nsz5trRFKKcUkk7wFQggh/7cHMck/N5MCmWSnTApkkp0yKZBJdsqkQCbZKZMCmWSnTApkkp0yKZBJdsqkQCbZKZMCmWSnTApkkp0yKZBJdsqkQCbZKZMCmWSnTApkkp0yKZBJdsqkQCbZKZMCmWSnTApkkp0yKZBJdsqkQCbZKZMCmWSnTApkkp0yKZBJdor+vz2Af3WCICD0PJyygxN5lAolfCfAjGlIKYiZFqEKMa0YQggM3QBNR9c0NKkhhEDqlUdN/vN9XsXkzrq/nSAI6F69Fl8pRMzCK5QZK4wTj8VorG5E6h6hAj9UEIH0I0IUChDb30NIgRHT0JTAEDrK0NF1EzSJaRkYho6UOoYmQQikYSKl/IeISQghJi3I30EYRmS9gI0bN9Df04dRFcMLQ/ZdsAAlIAoV47kiY2N5dutsJrQEIoyIpERKHV3quJ6NXXLQkQjc7e8s0I2KVQEIUIggQihQQKQLTE2AZqLrGoZmoJkGlmWhaRJN09E1iSYkKgzQTAuhbbdWUr4izl1hUiB/D5FCRB52qYBlGcQMk5geYRgGXlDGCyK29A/wrW9fzJ2/uo1N3f1c9KWLuOXG67n2hlsYHh7gw6edxoK581m/cQOtbS2kkylCJbAAy4jheA5BEGDqGq4fECkFHnjAjn93CEnTNaIoQgqBkAJN19BC0AwD17GJ6xah7+MFDgKFE0Q01NZhJhI0NDej6W+Wwz/fovevhFBIFRCPmdQ11NPUUE9DQyNVVWkcP0REAeOjwxCFDI5mufDCL/LFL1zAfQ8+wkD3ZgZ6t/L0U8+QL5T5+je+iVsqUiiUOe2009jY3cc5nzuflevW0tfXw29/fxfF/AR9W/oJAh9DEyRMDV2XKKWwLJOEFSOm64RhhIoUIlD4UUihVMINQnJOGVtE6Mkk6cZmSl7A9y69jO9+53uUyuW3vMRJgfwdKKUwNZ0Zc+ax14LdmT19BvOmzwDbAcdGOQ5bB7ZQW1PHxd/4Bhd94XxefuklbrvhWmbN253BoUFMQ+Pmm26msa6e2tpa7rn7TlLxGK0tTcQMwXe/ewnnX/AFDClYu2YNX//aVzE0ycR4nhNP+SC93ZuJmyY33XobX7/4W9z+mzsJPA/fdXn2xZfITuQAhQCUF6J8n6ceeZQPnPIBjnvve9m0eSNt7S1vu+xMOql/B3a5zOrlS0nWNqApie07uJ6PBDS3jFIKX9expIVCMTExTuC5ZDJV5CZyPPDQnzjk8EO45ZZbiKVSzJ4xk2cefYwzzv4YBdvmxutvpqenmx9cegn77bMvn77g86xZvYpFBxxIoZBjdGiY2267meefX8pPr7yS1tZWtm7bxu0338D69V1867++w9VX/ZT29naEUnz87HPYf59FvLxiOdXNzcyZO4d99llEwjJ59zFHE4/HX3d9k07q30ksHmfBov0xdB3PDwhcj1wxh+O4RGE1geMS5ccZym4jnUrjhiF9Gzey/KVVnHDCcRzznndjGgZfuugiDCnRpMZJxx7D6vVdNGo+P//xD7j9N7+na0MXY4Pb0JTiup/9nNGJCS655BI+euZHefD+B7jyqp/xgZNOZnw8S3dPN04Q8sf7HyIWT5CKJ8Aus2V0nKHhYaZPaWPr5i6OPvZYqmvrGR0epmNKyyt+zBuZFMjbEAQBgWOjlMJzHISmI7TKJHpBhKZr6JqBFbOIlMIyDWKmSTKdBCrLz47HKIoojI7y8p2/Y0ZtPbM/cjqalJWIxHcwUYyMjVNVlcJzPGqr0tQkG8nZLseecCzJWIyYFeeoI97FhF2mOmlyw1WXM56doHvrVm79xc8Z29LPH594gtaWNrp7trD65ZXMmTWHVevX0dLUxMMPPoRSio5pnYTPaiAFge/Q0dGJFOHbzsP/6SVGKYXjeDhOiVKxiOvYRPkiBAGgEGEECJQKifwQb3QElc8TOFn8bBFll9BqGnESMaz6ZqitxkokqG5uxPAjZDKBJiXxRIpi12ZWHncsZiFPNoywhGDWzTfScvR7sEsOYRhh+zZ+qUixVEJEEflCmSCMcHybpGUSuQFOEGAaOmEQEkQRZszkkYf/jG9oHH/0UaSqqiiVikQRlCbGGB4cJpmpYfXKlazftAmBYmR4mNM/9SmWLV3G808+yVnnnMXHzzkX07JeNz9CCPF/TiA7RFGYyBESEkYRupQkkin8UgkhJVJIUD5IC5SP0Cq5A79sU+7tJRjcRpAbRzNiiIZGZOBjd/cSjQ/jjYxRcktU1bVh1CTI4SHjaVRVhiBnE+Sz2KtWIkdz1M2eyfxLf4SZrnrd+FCVZJofBESRwnHK+E6ZsuPh2WV8z8NzPSYKBVLpKvBDSo6L49u4pRLVVWkmJvKEYUjCiiOFwA9chCZJ6CaXXHIpQ3YZp1ymuaGeS374Q/Y/4ADkG5Jv/6d8kCAI8coOZSePEDqmYSCEwY6cpvJDCANCz0fEq9BME1SEbwfgRWiGRGiC5LTdcDumUc7m0ew8wnPR6uupmT0bu2gTui6xfA4/jEi1tFI/PITd34M+cz6qVMRbvoRqBdp558Gc+XRt6ELTJVUNDZjxGKauYWg6QgisWBwhJfGYBdRUxrnj86wUub5eln3sTFzfRXV0kmxuZcbpZ5CsbyB0bPLFEqGpEQURhaFtjI3nQA+w8zlCARd+8SI++KEPkK5Kv0kcO/i3tyCFfIGJ7ChGLEXCstBiJm7Zppgv4nsOStORmqS6OkMUeDi5AvbWfkzDJB6z0NIZZDyOjFkozSR0HYKyjbd1K/bIVlTgoxsWsbZ2zLpatFgCv+xSKhUxggCVHcXuWkc0PIhIVSPmL8Sva8CLAvA9UAqhSQJNw9ATJGIGQRDg928lu2YtCeFDoUSyvYXGAw8GJbCqq4hXVzP87DOs+/hZpFJpxoe2oTyffe79Aw2HHloJa18zD0pFKAWB5/HA/Q+x34H709BQj67rb+ug/lsvMeViiQf/52H6u7sY6RtgtFQiX3SIVEhzYyM1NTXUNNaSSafoaJ2ClBHjw0PoRgzfDYjLCOm4mDKixvPQfVCeD26xclOjkEjGIHQRfoSoSSNiaWisRWZqCZNJ0g2NaFJStm1CP8R2yyhACYEQkngsRk11BtOw0EyDyA9frdHokkgpDCEZ7u2m/6EHGNuwAa+rhzmf/QRTD30XK885C/Xo4ySmdjLR041fLtN80UUs+OZ/YiSTbzkvSimUUggh3lYYO/i3FEgQBDzyp0d48P4/8KHTTkf/88NM2EWs9unIrb0k5y9Edq1neM5Chsvj9G7oY/PwCGPZUQRQXV1NTVWS6tp6WurrqKrOMDQ0jGWZGELS2t5CzDRJxeKEZhKpS3RC2D7ZCkEYhNtFUPmZoJIG9/0AqUmklDTU1xM3K/6BFwQERIgd8lCVDKa23fdRSoAAZ1s/fjbLxgcfwHVKiDt+i8xOYMYsGr76H+gtrVTtvQdmfR34AVJJ0s1NWG/Ib+wq/3Y+yIaNm7jxpz9j70X7ctpHz8RbsRTxxz+S3n0BmhFDPnQ/Xi6P9uhjVF84jdRtv6LzK1/lkAfvw2yag2VqRAceRlQusC1XYHVfP08+8xy5iTypTJrmxjoKnoeuBL4K2G1qJ77n0VbbiKhKbR+FelUsO0JdgCgiEY9XSv6mga5peJ5DqCAKI7L5CYZGhlj18npqqlIMDg5gux5NTc10TO1kWmcHGT/E2NrPgkMOojyWp294lNLIIOVt2xjs30zC8EjJfSiNjuPmc+TXdtF64AFUtTSRqs4gNe2vntN/CwtSLpe449Y7WL9mFZ/85DmoKEDoOgodQkV5ZBA7DJDpavwrLkcc8S6sy36M+tjH0Jc8TThnD+K7zyP82teJWpsRJ70ft5RH3vdHvKuvJb5uLVY6RWHqVLpWr+GZpS/Ss3kDUk8wf8505sxfyOxp06iurUPoEHg+XuAShtErY7RiJgmZwErFMXSdkAjHc1mxbBmrV69mbHAbHc1NzJ8/n+7+ERzXRRJRckpkR0bp6ulBjyc5/NBDOdwCo7+P8YcfRQQ+hZiO/p6jiIKQsG0q9dN2w1SCuunTUFEEQmEm0lTV1/1VIvm3WGKeee45bv/FNZz58TNpbptCsZBHBT6pTBVKaqBbGGFQebEQEPj4QmNzbz+54SHqO9pJPvIw4cI9MX77e4ymZtzAg65NGB1TEQ/dj9xjT7QvfxX7rrtgzRq0ri6My3+CObWT/LoNbCyWeWLJUrb092JqJtNm7Ma8+QvYbdoU6hrqMS0T6VVK+EbCQDcMHnvscf5w72KyIxO8//0nsOee++BHIUIItnRtZm13L0cefCCaZaIrgdAUptB45qmn+Z+HHqSmvZ2jp02j6dFHKG/ejBCCzuuvx2psQBgWfr5E5Lt4kcK0DBLpFKm6BhLVmbeNWN7Iv7RAxrJZrrvmGuJBxIc+fga2XUAIyOfyaBEkaqrBiLMjjNU1iRCC0LUZ6OvngcWLqdU1ZDqG7/rknZApHW3UNTWiS4P6GTOQ69cTe+5pqK5BPr8ErVxGtDSgLVuJ/M3viD71CaJDD8c9/cOVkPm6a9Hf/S6izhmsW7+OpS8uZcXK5bS0tPIf3/w6qXQKS4/xo8t+zCMPPcRBBx9GZGjU19WzcP4C2tpbCKKIfK7EsiUvsM++e1KTqQJNRwASgRmBoUsiFfG7u+5k/YYNHLf3Iub09lDs7oI5u9H5odOJqqpQkUJpkuG16wlGx6j1HGaefTb62ziwb+RfUiBRFPGnP/2JxbfdzmfO/xyZhkZCr4xSIDWN/r4+mlqa0DSB1AxiukHBCdja30dP92aGRgaJaxJpmhXpCIE9NoaKQjTDQI/F8Lv6kFSczKaZM+g8+Ajy5RLxuEn6icdIhAHBk09idnUTXPBFxF574v/gUgyvhLryF9jlAmEQIHWL88/7NJf88AdMnbobyViMm269kcU33chHDj+Ye9b1gZFAx6OUL9AybTqfPfccUrrgoScew0wmOGDBHhiGTmTFMaROOpYidAooJQijiCD0WblqDXV11fS9vIo5jXWkOqdR3NCF0dGB2rgO7/lniG3YhNvZzP63/pZYbd0uzfW/nEAGh4a46rLL6Wht4cRTTsKxiyghIVKgDAwRMTC4jca2ZgLXZWBLH92bu4hcl1QqBVJszw0ICANyrkcUhjjZ8cpaDRAp1ISN7biMjw3RnS8wls2jXA8RRigBdc11vOMd+7Pb7Jm0RxGp9k7S1/yCQAsQ0zrwTvsYUSLJHTffRtl1+Oz5n6UqU8PadWv58vmf4/NHHMSIL7EzKbq2DLB+cw9uOUKFNlNmTufg/fanrbWJFatW876jj6W5tZVcqYRlxAgjDx2NqDCGh8aoXcLxfYRj0zSepWHPfZBVKaKSw8YrfoQ+0k9x+QocZ4LEnH046K57STQ179J8/8sIRCnFgw8+xPXXXsf5nzqLqTN2Q6kQJSoOl9BMdKHI5XKsXrOBwvg28DxSyQRIibTMSsi5o/MKQEHkeYwXitiFAoHnglIUxnM8umwlWhBQsh38SBFGEQJIiUr+QDMMAikp+wHCsZlXW8uMadOonTWbljlzaZo9Ez9f5Btf/zq333EHqUQS1/f45CfOZd/pndTG4+Sk4NlVa/AcSVyP8PUYW/u6iCUTtDZ30JHSSLZ1sO+eC9l9wXxkINBjCaIwICjnyZVK5F0XoRS1uRw15RIynUbU1aGALT/7GWLTZgqbNxDFKxdsNkxhv/sfJj112i7N+79EmJvNTnD1lVeRHxvi/accT1NTK1EUIDQLw0wgQpfhkWE2bFhPMVegKpEkaeigawjTJGkYRID7mrxiCBXXxDKpNmtIpxLkCyWcYpHn1iwl9AMWNDfyVHcfmlJUGToBCk0IjO2hqlQKD1AkWJYv0Lt+I9O71jL6+zsxLJOV2RxXXHk5TzzyGIe/+wiefe5pOqZM4cj3v5+gZFO2HSYC6OsfwSnmKU9k0ZD4hSLD0QCleJz56Rr+/Mij6PE4HQ0NxJwCfqQxVirg+h6JqmraPBtzYhAZCnwnR3E8z/Cl3yeMxWg87gS8hxViSw95UUaoAMK3r9y+Ff/UAlm27EUu/9GPOOLwg5k1vZm25nYyjXUEQUB+Ik/v5hWMjQxhSUkqHiNdkwEVEGlxHM8j9H3sKEIzLIJAQwiFZkSv+x1CCPRYjCoRJ52qZdbUdvq6enhpfAKUIpKSsmWCEBhSEiiFCkOIFHtOnUJGN1jevw3Dcxn1AmqNgHKyij2nTsVKpelIptGE5L77H+XznzwTTUWUpcDMVPOBk97HHb/5DVuUS1v9dPo2baKUHadUnABAFYuoRIwlzz6PmtpKevosnLIHlsmMmTNorGtEBgET8SSOaZG48lLyf3wQlU5jVDcQNVQz++Zb2fC1L5F8/AkoByjXfaupflv+KQUSBAG33PYrnnv8cY468hDSiRghCmkKlr7wAhOjQ2h6knLgExcSTdfRrGoEisgrIKREj1nISBE4DughlgFKKCoF/EpEIKlMQKAgkgoVOkyb1omenaBrXRdeGFITM7GCAEPXCBwPPwwJpM78jjbKEeTLJfwgoElKTBmipMnqwVFuuvxqerrWc+hh7+LePz7AXnN3Q4YBupSkdYNS6FOOFKeecRrLli7juWeWk6iqw3dcVBhil/Ks6Opi4R4LmT1zBrHmJvJll9raWmbP3A3dMHA8m7gRx83UMbJ+LY2PP4sqlan/2FmYHe2IMKL/ocV0XvhlBmZPpfTkMzjjY6TDELGL+ZB/OoHkchN86cIvUZWwOPzQgzASMXwBuC79mzaipIVhpgBBVSqORgxdVgpOKqgYfSkEFoKAkABQYYjSJMaOVLYQKCEJg5B8FKFrAqkrXDciOz7B2mwOy9LRPEgmEuiGjpVOETo2hCH1tbVMlMukZIJqAVsCn4bmBkqjNgN5nzPPPZd777mbT37iHCayWZ594kku+NTH8EWllSAI/UqdBUXkOuy9117M6JzG7xY/gCFCnCCiNDFGrmwzd/4CxoslaoOQfRYsJF2dAQHZ3CiuFxBVRYzlRwg9FxGGmO3t5Lo2EhvYSqKtkdTue5Bb/iLui6uJJTJsuu1mElOnkWqfskv3459GIEEQ0LVyJYNbenBLNjPnTCcRi6NUgAgDIl1Dj9UghYmzo9dagBUUiWTF51De681nKAXCNNE0jZiQeNv98UBIlJB4biU81mMGURjgBSGWBhMlG9cLUFFE1rYJ8gFyLEt1zMR2XfqHx8kk4zhWmWrLYKzs4AqFW1XHoDdBZ+cUVNiBmUhz1+JfcfTRh6C2C6IYeugoDKnhhAG+F2BEEfF0nA+97xiefX4pS15cS/NuDRx22P5s6urlxJPfy8zpMzANs9KJphS+Az19vcydPhsUeIFN4aCD8PIFMi3taI1NBL6He89ihnIj+HmbYPpsGtd3M/rM0yROPgVpGH/xvvyvCySKIkb7B1jx8P0Ey5dgFIc59+hTaHjHvixfsZzc8CgN9XWkqzJoukW+HGwPayNAYksLHYXyA3hDQKarivA0Xav4pDtqJEIHTccDNCGI/ICBoWGWvLiarg0bGM+XiBsaSoDnV4QiNI2xok1VKkVrXT0XfOocurb08vs7FzM1U00uEKzZ2Mu3r7ycdZt7Oe1DH2DDurWsWraU/T91DgKBQqFv7zAXAJFCOj6tU1pYvamXVCbJ3vvuTSKVQAYB6VQVX/3qhWhIhBREUUTZK+OVA7L5HGEESteJ9W3Duu9+7LPOJfHznxItWwLz5qCZCfLjw0QjY5UdfPk8uUyagZeW0nrccZj/7AKZGB6m69c3kO0fICwWMJumYs2djxYzePKnVzFz/jzm770vJSlY9vIqgolxzEQVDfU1mFaSEA9f+ZjSBPVm79yJQpShE4gdXWIKUIRuyO333sPh++/LeL7EujXrGRkdRNg2KVMnb0hCAbGYVbkxrk9NXQ0Wgv0PPRgRKtLVGWZZc+hoaqJgO9jFceqmT4VQY860KeimwbLnnuaDH/4IhpJEROhCYEpJyffxfJfs2ATCMBkcHGJ8aICBQQ1NhVhCcuIHTyOTqUYTkiAMcH0PFUS4QUSgwC0VkUIysK2f+l9cgWruwNZ1RnM5alrb8QoOxdEebq9rY0bTFN4xZy5B90YC0yL+joMQhvWm+Xor/lcEYtsOPc8/x8C9N6CkRVgoE5uzkGQiiadrrFq5kpraOu69514O+dUdyMEt7HHou8jvtSethxzMhlVr6e3qIjQU1bEkeipDPGa+8v4RCl+BpmngB2hUGoQlECHY0L2Zbb09/PeWXsxYjCgMMaKIiSjC9wJs16Muk4HAR2oaKU0STeQZV4qerh7ap7ShWQY6Ajk2hB2ErO3bwi133E4+m2PRAYeyYd1aNvX0sce+++OqCAsQopIil15IKpEg0WyxfN06LL0NZcRY8fyLnHjsURz6zsOIwohIRRTLle0TKozAU0Sy0gqUTMZpmdLE6NAYxkSRkUUt+BJUeytmpp5o03p+k2lkS7lIl+tgtjazz8IFqJdeRvg+u5r++ocKxHEcutatZ9uf/4Dz/ONYbVMIxnIE+SH8p7vJjxYIaxuoy/uw/iUOsF1UFBGqiLGHfwv33UXfd02qFsxm7vtOpWnfRYjOToa39rNx8yacso2uFLqhoUmJGwTolkkoNDw7YE3XelYuX8HQ2DimJhkrFEkpRaAUmXiCac2NxDUNM1WDFzoExSK9o+MQBgyP5WmqTvPCsuWsXb+OeXPnsvieP7By2wjJZJyD3vlOXl7+IgceeCCGYbLixZVM6ZhCtYiQwoQwxCuVyUcR6boaojCi6JdIJJPc9ru72WvB7lzyvYuRUmC7Nn4QIgSVeoobYTs2hmagazoKRV1zM+ViAUNICAOM+XviaSZGphpVLrMxniQft/j+17+I5/hcdtkV7H7M8VitnRVh/4VmoR38QwTiOQ49S56i64mHCFY+j/J0rPZm3IG1RE5AOGFD4CMmsoihQdS2PJQDtNeIPCp6gAeqjPPMUjYvfYlew4Bkgsz+BzLzsENJLlhAWNfM2k2ryI4M4xZLFLOjdA2OsnVgELtQqZHoxSKlCIgiZk2byoK9FxLXBNmCj+P6lda8wMNoVTRNh6Ru0NpYTXVdI4XCBMObesmObmP15i5S6SRDw0Nc9/kLeO75pbS2dTDQ10+2VKRrw2bmTp9NujZNsVQiN5pFt0yE1MhNTPDki0tJWUl++IPvEjNNAhXguCFS09ETVbjlAsoJmMiPUbZLNNe3VeYTDzMwKdku0dgYKmZR9cAfqHlxOcVkCq+unv8BzvryhSQz1cTjPgv3mIcV00i2tqIZf7mbbAf/zwTiux5BFLB11Uv03HkzdtdL+KM2Mp3GqE3g9m8kzLngeOD6mPk8fuRBqVTxFaI3vKEB+JVvRRiibBvftqFQYPy//0DhwQcIDQNMEzmtkznvPJzYfoeiOts5yHN4/rHHWLN2LYM9ffiJFDgu791vXxqnTaWYy9E7VqC3dzNDW7cRmSZTp0wjk7I4aO99mbff/rgqRPdcrMxctnZOp6GhhoOfX8HLPd2cefpZ1FVXcdKJx2FZcf784EOU8ln6+/vwVECgFJYVI1mVJJNMsmTFizzxxFOc99nPMGPWDJQIcQMPw9BJJhKUtm7B/+3thEcei9/UQuSHFEoONQ0+QkgUikAT+I6NFvmUv/YNEt//JmHoYGgxBpVi72OPIZ3KoGkawoT9911EpBS1tfWYMvrfEUjge4ysX8OWLQMEoSD/zP/gLn2KqFxE5CYwp86FtI7b34/yA+T4MEQRuojzYP0M5mbiNC95Etw3qgNksL2Gsh0FBFDJdgYBbhCAbVeezGbZ+tIqdOPaSlNudTVT586nbe5MolnzsauryIUhpggZGR/HR6e+tpraun3Z65OLyCRj9G7po6WxiZFt2xjo3cC0efMZy7oM9fYjpKB7cw/HnPp+nvnO9zjnM+diJOJYUmCXSpT8Mps299PR2Q66jmEY2KFPb88Aa9ZvAOA/vvkNLEPHLuQxrRjxmIUbBjjDg+gXno92wkl4P/g+ha/9B6u7e9h9wXwMLY6MIKbFCIloaGkkp0Hp0cdIeCU0u4gbr2JJk8lRhxxGyjAJhULTBLVNrYzmJpChjV/22NUC3P8vAgkDn76lS9j0hz9i7bMfsjDC6O9vRGULiPEcSIUxfTbhxDbUlhARuIiwvD1UhQCXBVs30ry+QKCiSrFE1zA6pqB1tBM74ACsmbMR0tj+iTAo927GuXMx4YoXUb5PQMUJNRSIIIQgRDhOJajM5TD6+zEe+RNSatRISUdtNYPtU9Aam8nX1CBqa0i2TSHvFFEyYs7ChSggDFxi6RoGtwxSsEs0VGeIp1Os3biZn/34ck7TJLELz4N99sRvamFxzkNFsOe8eQyPD7NxwzrUbnPo3bCOuuZW9FiMbVv6GRzayn5774fSwfV8CqUyCh3vqp9ifvFLUFUNs3cntuQF9jzsnaSSNWjbPze2XWZ8bJj2qZ0Ui3lq161DS6URIwU8u4DX0IiKQoiZiCjE8yPMeIzB1f24G9Zx8PHH7fIBNH+3QMoTWR654nKEWya1cB9yj99LsGol5HKIcg6ERJ81l2B0BDWSY8eZFpVyaoTKVbrE66Fy9kWqGuuAd5B53ylolkWxawNetoD9+99Rc+i7iL37aLb86nbSU9tIX/B5tMAl+9nPEc/nX80vvA4FoYIw4pU1CoiKRRr6t1IvJUpKqjSJkBojVWkmkmkeSyXp1SR+ugajrY10RyuN9c1EnstYVxd333U39d1dHF8qYkypQmYnWB6v44XlawkygdK7AAAgAElEQVR0wczWNuoam9Etk2efWcKsGR0sXnwfUzo6+NZ/foX65il4oY/nhESBi4mFLm3SXevx7swiTvkobl0jomc9VUe9FyEqNzRSEeOFceKZdOVwGM/DGutH5cYJU3H09lb2PPhAUtXV6IZGueRtPzhG0DZ1OrUj27ASiVcq23+Jv6vcX8qO86dPfxZt6nTSLWkm/vQA0cg2RD5bsQ6agTZzNuHAFijkX7EYlSvdLo4dfRiBTuKQI6g57XQmXnqRYNMmZG0N5qy5mI1tmNXV2PfeQ1hbR+qIw9HSVWSfeZ7qBbuTu/s3hLfcjuH5bznOXZqI7Y9KiO2peoiEICkkGBphVYLyrNkEX/4qVl0DMpEi/sXzMU85EXHY0Qih+OX1NzA0nmV6RxtNzS3ImMnsqbvR2tDI0hdXMGv+bJoaGlGicvRUZYtkRIwYUtORLy8lKhXRZs8h2LSWaPZC1MOLEcd/CE2vdKb7YcDg2ABN9bUYCtxf3UHs+msR6SrGf3QlA48/SvNJJ6KnM1zx0ys569xzqK6pwiu4RBpoa9Yy/8QTiNfW/uU5+XvK/Z7j8MTF38Sa0oS7dSP5VaOokXGko4Nej5IaxsxWgnVrISi/muWMIggjVLFUyYgCwqwiddF/IHebSmz+fDIC8uUCzeecj0BRXLuB7H33EyVNGo95D8Jz8UdHqd5rIaUXHic5YxaFv/PMrh15krhSaEq9IpiQEAIfPQiJfev7eJ6P+dwLZG79JeGNd1COArTIB6UxOJJj/70WYhMyUShx6jHvwbbLJJIJ9l7QRrqhDqFp+F6A74SoHQ3wQhBYOmrjauR4AXZfCAsXIVatJHKA7X0vSHADl5jUSKUyKCFg/wOwNq5ExQxEVZK1fX3UhSEbVq+ie/Nmbr7pVi764ucYL4xTW1dPOh5Ht3YtSQZ/4xKjlOKlP/4REY9jL3kGVRhDOVrlhksNdBNtxkyCdc+ifJtX9nj5QUUYilcE4xOn/TuXMdHTi/urOyhUpWj60KnUnPoxfN9Fqoj800+SWrSI9KJ34Ps2Kkxg2mXsJ58isdcBjP7wh1h+8Loxxk2dKFT4YfimgOjt0LZ/vdb4BkBcCqy2NmK33Yxx3/0QONDRgkqlUMUCvucjRURbSy1D+Txp3cSMxwjcMikrxN14F0Y0QVk/AsPqBCWRO7K66JS8EklTI8pNoI8OoydjBL7A6x1Azp6J1HTQQOmC0kQRK5nCcyMCETFW20AqnoK9F0F3N8NCUNXcSJthcdxJJ3PowQeQSsR5eThL+9TdqD/yneix2C7f679JIIMbNzLw4B/gxSWIsgtjg5BpRMST+JpBbPZ0wnXrUVEScAAFPqiCXRGGZYLrITxF5tTTCVIpppzyftRJx0M8gZAGXrmAUooQQcPJp2DUZ/DtMhQLlMdGyF11JanZ89CntGEtW4J4TSOMblncPLUdOX0ux/35IeK7sPRU6sNv8GF0jeq5s3HO/hTqgP2xjjsOynm0WS3Edp9NfyGPQiGkwM6XKt3nXoCrG7Q1VLNq1RrCMGL32o1omQfQJhLQOIVIaNgqoFR0qK3OIHSdwA+RVdWoD55OYMTQTI34vnvi1DUh4gYChRDQ2NBUqatIjYnRUfA9pFvGnj0f888PoKwkCMGUKa20d5zIxHiBMFJ4kUd9Qz3pmppdDnHhrxRIFEWsf3EJS77zHVLjA0inUjgTmQZUuUDg5pDzD8TrH0JaLpQ9UBYIF1WceNUHsT2Uq1AONJx1JttuuZWwbwDnzw8RDA1i7rUHDe//CEZbKxGKYKyHrnPOJPnOI8kceQSZ6buhjnoXyaYOxr/wRfQ3nK8Veh6ndvWi9/TjvcGyvBGNytKyQxyKSgqmvGB3Yl+4kNGZM3A9m7TrYeoCfXYrmRmz8NunYUqJE4UI3aSrbz11tbXM22N35syawUS5zN13L+Z/HniQK743TI0sIwgJZEA2XyIeM0hnMrjbm6NNTaDyOdx7FhOfPp3y2tXITJLY+z5ApIGuaQRBREwzIFQ4tk/guVQtex7Z3Ers4YcZ6O3HbWgAP0SzAgI3JJOyEJpBe3s7iWTyrxIH/BUC8X2fP9x3P5tvuJ7d+nqRbvkVHwIpEfEEcv4C6t57Mprnse0nl2IYEgIBUkMm26CcJ3JzKF+9YlhUvoS0YiTaW6n79ncx6mpxtw0wfNO1GDPmkzn6aIw586j6/OcpXXcdws5Tf8bHcVdtIrz0J+jF0puquEopRBAQBMFOj3zUgASvWo2ISoRdqqkmc/U1FEKXKHCRUgPPRW+rJT1nFugGQcc0vDAkLTW0l5dxYGsbcp9FhCiKrssTjz7DfX98iMAPCUOfIJrPRPwQ4l5IKhHj+htvRkNwytlnYekGcU0n8HzM/fYlVD7W3DmIllY0qwopBaEfoUmBZweoSBH4Hr5tE61ZgXRKGCri8cFtOLU1GLqJH4FuSoQRY7h/K9M6p2Ga5tvOxduxSwIJw5Bf//YOnnt2CTPHhxHO651Ox4/QDjmchgMOIjl9Ol2nfxArVTlSwTroGGqOOZbROxeT2n8R/oZV2A88ROiMQRK6v/oV5txyK6O/u5PslZcTOGWqPnwqDWedh4hCwq2DjPVsQObGaP3eJeQW38PwRz6ClsuD//ZLx85CMw3YsWNmR8Jth52JAJFM4UqJCkFTipRuYkQ+yentiFiMQDfx/ZCO31yPViyAJhk79ROUlYNrOygk99xzF5omicdTxOpuQq9ppVkmGRge5pvf/BZSSU45+UR0AakwAqUwDjgM+fIygr4etM29yKuvw5cKncoBdH6oXrmwUhTRFILvu6AiVD7PJk8QjBYJVEiMGEoECCFYs2YNJ8yf81dbD9hFgSxd9iKPPPIoXgjJXA6hFJRd3Ewcq7GD9AknIrI56t55JBtO/xBmoAhHXOo+8UnqP3wmvRd/Hf/FZ1F7zcPu3oyqaaT9Z7+gtHI55fseoPuUE4m/53iav/Z1qMogUknCYomoXKqc4rOhi/Lie/BLVyPLZTTPr4zhr0Rsv+AYry4l9vafJ17zuqJhIlyPzmnTMcw4heGtWOPjBPP2JrvfYZRaO2i/4Qr0Yr4SgQTgmSZebgINwUTRRdMlsXiMo486nHh6ClLGcIVEqYCG+louuvAiSFURI0ATOqYCZ699oaeHTGcH3gVfxo9JNAl+sWI1XktdJoHzy9vAd9ECn81dvWRTbQS5PNnxUTqnVSOlxcjgAJ0zZ5B+zSE1fw1/USBKKZY9/Qx62SfQJaLsoRyb4oKFyPcch/34n4jdcy+zr7qarst/CL29aC3N+L19RPUt+KFP42e+QP/pz1L65fWYpom+6B30f+UrNHzxAjpvvoXsQ/cj4jr9X/kyjI9VIoko2h4ShwjPx9ze4v+3IoDk9scAcNm+g56KYF7Jg0iB6mhjt9kzyY4NEY530TpnPt4zj5E/+QykbhG3NGS5CIFHMJEn3z1I+aztu/PjcW665kakEEgi9li4N44bIHSwDABFS3Mr2VyRxpiBZiVAl4RSYWgC7X0nUw4c9EQNquziu8GbzKHSNfx164nGRgFBlK7lT77GYDlH0hDce/cfOPtTn8D1fP77gT/xufPPw9iF5qC34i8mD7LZCUTkY8QsAs8n6Tkoz8ebyGOtWEJ8JEv98Sfibe6mdPfdpE47HW3RIgzDYOxXtxJraCTc2odmu4S2jT+2DXfjOmbcdhtV++xP32fOpXjd9cRqmhD9/cjdFxD75DnQ3kboeVAsYjjO3ywOg0qEkqAyzyUq7k+0/f+vFQeA3z6FqdfeiLNhA03NbTQsfYric8/A8R8iMjU84aHGRgkRZF9YSumhp7A/+GFE6IEZw7Ntunq6aG5p4exzzuLHP/wJUVRxRAUgfcnmnl5+fNmPueaamxFRQCJmYlk6AoEmTXQ9jVd0Ua9ZUnaghAAdopuuqGzyOuAIskODPK7HcPwA31O8vGkLP/nhFdxy62/52Fkfo6rqb7MesAsWZM26NVjpNJ4ZQzplhB8RKTCcMt6y5eiDwxSv/AlF18GoqcdoaAQ9QCycT+unP8/AjddR/ulPCV0XZdvEj34P7Zddgb1+Hds+cy5BdhQtXc22T38ao6Gepi9/FbO9jRFhkpw6ndG7b4GHn9qpv/FWvHY52bGUqO1fOyKWV3fuQpBKUfW1r6OPZ8l/+z9pu/hiRq+5FuuMM/FLeeKmhnAhGUsilIbIZJAIvKktRMcci9QEYejz/MqX+dH3L0GLa3z/vy5DKROFwtie6yr4JaZPbUMJwdjoCIlUikCFBF5E3JDYpeAthQFU/gyA9AivuZ6otgmqM8TWrqD16uv5dRiy5MXldK/dgG+Y7DF7Fge/8zBqaqp3ebP2W/EXBfLSC0sxLIkpBWZVLVFSx1EpTN3C2tKNUBE4lX5QIztC/srLIAzAMBj89CeJQqeSCMxkqD/jdOrOPY/s4l8zdtVVxJ0yQSKCUhZtwb60/+IGIteh/7xP4m/qxrrsCjou/Rl9zx9KbHR0ly7otUtJSMVi7BDGDnY8v0Mc2vTpaN//AbKjk1TZJt05hbzroH/0dIbO+jixhib6auJM+cZ3cHNliCKsVJrUtBayRgLXLdI9NMyN193Mxd/+T3RdZzybxXGcSh1EyEpPqlK0N3fw8U+eRzoR45ZfXsuPL7+Sc88+F0NXKGVWbPrbROZRFKBt7kK2NEMYUJOIk/ny5eiZatJC0DFtOuH2fJCmaTs9XmpX2alAtvVsJggVppCUnRK57i0Uh8fJHHQYRtc6hBSv9m0IhcoVXt3jKmVl22MqiWyqo/4Tn6XmmGMYueE6Stdeg+a5OJaGjASpY0+m7ZIf4hYKZB99BGvWPDp+/FNUJkP+V7dg5fNvGpuorYVCvtKszJstxg4/47XC2NEu4FCxHgDa3Dlkfn8PpZtuRJ87B1IJuj98Kql3vZvkov1Iz5+Fty1L1dIV5B99jMxBhyBURP64DyHn7U25oYlf/foeVqxex8nvObSSOFNw03XXo5RHpGwsTSBEJStgJhMkTQvXznHY0Udz1RVX4DoO8eoknu9iRm/tKygUenGCcGs/4eoVVJ14CjVHvAstXtleKgAp5d/sa7wdbysQx7b57+t+ycYNm9j72GNZvWo1Vj5HrKYet2cz5sBWlJSIVKqy5aBYfrXwBhBFiEQCREQ42sfwpf/J2KWXkExVoUol9FicsKaO9Kkfof7sT1B48glGn32ajs99ntyfH6T3vHMxtmxFTkwgti8vCtDa2qj78EfRTj6RgaOOQveLr4tMfN4sjB3I7a+DV62Hn4yjkgmMk04gHbcY+Nz51H7zm4TLluE8/STRI09hbOlF933sW64jKpWIHnsUpypJ+NEzkKbJEce8i4lSloOPOg7HdRgZH2Pr8AiOE9HZ0YJmVlJxlpUgjFzsUoEbrr2WVS+v57SPfgArZuJ7HqZpgffmkUeRj1/OwjWXYwUubd/+EeaUKUjD3OWq7N/KWwpEKcUjt91Ccu1GFtoF7vn59Ry6/wH0b1gHvT3EhofwwgjTD1Be9tV3SgmEDqoogAjlllAeyBhAEVko4oyMVZp8knGSHz6T+g++n9JzTzN20Reo/fnP0ONxin9+EHPFS4jt1kEJgZw+nbrjjkMdfxzalA7Gbr2VtOe94mXvTBg7sqVvdEgBtJdWU3j3kbT9/i68AJIXXwy2g9rag3/v/RgTExAEiIZamtuayf/XxUR1GbjuVrx8kVhVijtuv5q2qdOwS3liEi674TYCBFLAWWefRSJZ6ewqOWUShiQVsxgaHefsc86kY9o0NF3H0uWrnvOO+wAoFaLnx4keupeaKW1UffZLGPX1CO0f0078luX+bS+v4oHv/hd6PgtKEY5t4y69lkOPOZLWa3/BGiOGfO/R1D35NM2bNmJ523s8dizsmoGwTDDKEIGZ374XRFWejoAYAhGLESYSiLZW3C1b2O3ZF4iEoH+/fdEnJlAItBkz0M89A7liDYW1a+i8azGa7TF02EFYY2MESu1Iyr4tb1lnoRLhmEIQpVOQTCJPPxOhbLzHnoRt29CHRhFhSJROIRfMJBzYynAizu9qW3hqeIxFCxayevUqZnVOZ6Ds85nzziadyPC9H/yILf09TJnSzkknn8ymTV0ceeQhzJ63BzErRuAHBJFHoVCipqYGU5MI//VtlgpQoU+w6WXUE09Rc8Th1B9+BFoiWVm+/wG87fEPy2+7jVW//XXlDNDQxbTHGRv2uMOIc54qsbIcUDjhBHo3ddFaXcduG1bRsHETiWLx1bZAIUAohK6jiwDNrWQlDQWRqDiQsZiFb7uV3WIC6Oig5oyPMnr1zzE7Oqk54QSyPd34Q9toO+MMSkJSvegQwkcewLngAiZs500O6GsxAIs3x/I7/JUUAqeuBnH00UT33ANAtPfeqNFRjK7NiCjEtEzslkZCKflzSzsP2oKJ8W0MZ7Pko5DOeJppSrG1ZQpf+Mr5XH/DzeQnsrz7iCN5eskSLE0yd94erNu4nh9fdjmWJvjJDy4l59qc/8ULcZwiLTXN6EJ73QD1yMZZtQI5ew6NLW0kM9VI8//9kvK6eXq7fpCeVasJB7ai8gU826FUKoIX8EEpybe2oHkeg9uGSSSrkek0L0ydRtWs3em087S98AK1wyOYUaXfIfICQsDYLo4d0YWhIHLciqC2n79BTy+5S3+MIcCa+/+1d+ZRklZlnn7u/fb4YsmIzMqtMrMyiyqyqiiohVVRdlAUqhCkaWw3ZtR2cJrp0047M3q6BZfW0zPagA6oqM3Ro6AI49IupTYioiwFUsVSUHtlVu6Va+zfeuePyKQSyEpAaSwwnnPi5Mk4JyK+iPjFvfe973t/7xpiM0H8vTvRgoCxA/30/NsWDNei/ytfoeoHi6bxBQtPKQJwhcASglJXK/qFb0I9vR/CkCAMsR9+GDuMayOHqeP1tBMV8tyYamDID0HCYKFAAJx8wkaGxg7htjfCwBCre4/j7DPO4vEndlAh5HOf/2duueEm+g4cxDZMosjjO9/+Dg9ue5RTTzmJH33nNi6/4nJ0qT2jciUUqjBOZaCP1MmnsmRpJ5ph/NHRyB/KggKJG1wK/UNovoejIA58VOBhCUk1X2SlqLK77wCllhbCIsiEg55MMZCw2b7xZE5oa0a78wesqJZwvSqGUsRC4AnQ5wnleT99pVDVas0T9M7v4X3/+2iVMi3/6yNoK1eCbrBly48RGzayYtv2Z4oXn4vk2Um4+fc3IJAKlGuidbQRj47A1q2oKEIqsL1avxekIGpJERbyXJ9qYLyxjaaly4kqM5yxtJNitULatlnW3cX+4VHSDQ3s3LObUAT8zd9+CNPUyY8XGBibQUq44spLSaeSPPb0Xt504flccMEFfP+un2DoNftMJSV+7MNQH/rUBC1nn0cq0/AHWVe+nCw4mVmmhdbWTMIw8UOfaNZ9R8URDV6VsBBwzvZtvO3eX9M+MgKVGK9aJSIi0dJINduMuPqD3HX22Tz17ncy1b0cZRgYSqGp539xz0MBnodWLpFQivwXb6a4/Ul2PfUYUb7AkgfuwY+fP37MbZ0b1JQvAF3Ubo4QOEIQCaikk5RbW5BTM6jRQ8SeV4uEhHjmA4ktHabKfMtpZLfbhNvaRaYxSZRKEboWTlOOMOEyOjUBccDKjeu44frrmR4ahjhCeB5f/ca30HWJ6UhWr+jl4MAwCQvectHF3HjDF/jr912FZZqAQvbthF/+HDOZpuvCi0g3ZP/k4oAjjCAikSLKNVAMQlJjoKRG6FWI4xizOIOum5RMB71U4JTf3kfFstm2cgWH2peRam0iinwe3TFA7/oN7Bwc4N7uFWy86ELaH/49zbt3kZiYxFzgC55jbu0gmI1O8nmir95C+bHHWT3Yh7d3PyKOn1UBFloGJcNiSDcYacgx0OgynmwhYTt4UYwTFOgaGuCtqRSJagltaJjo1NPhN/cShhGumvdrkYI4YbDnpDfydLlMb1c3WtJhbHQGJ2VQKXtoSmK5BpGRIJ8fY/2qY2nNZDh782UoIZmeKVIpTCCEyeWXv50vfP1WpFemMZNj/87dbNp8CcLQIVb4kQ/bHsJ54/m0r1uPbv7pppTnsqBAnFwTDXpMoGnQlEVOCBJuAoIAFQSYgU/FKyM1jUhJRLHIydsfw9qzl6HuZezuXUtndzv5UhnDtmk7posZw+GptlaMXJa17R0se/R3NO3sQy8U0GbbXyhq4phbO/gcDl21YpHMr39FCOiGzoSbYCDdwFMtzRxKNhEJQSglkdBQmg5SkrB0poMKeiJJKtuGff6FjN12Kz1EGBWfysgoRhCSUM8eSpUuGTctPrO/nxUb1mMYJqWpIue/YQPnbr4UTUqCIOQfr/sUMuHiJht55JEdNGQzWGFEZEluvOlLKBFx4VvP4Vu33UEYVPjwh/+Owsw0ge+z5ti1tVD1qUeRx/TS/J73kczm0AzjFV2IvhALRjH3/XILj335JhKP76olycIQMTmDX5jG0jUSlonU9dp+RikPoaKsW4SBh6NraIbJVCbDwNrj2JNIk1jSSMK18D0fTUpMzaZvx+NkMs2ckLFZ8tBDtPT145SK2LMFw3PikECka4w4CfZ1dnOgZwUkHMpRhciXhFKr7ZwGFXxMpBA4hl7LpkqJMA2Wdy3l4MgQDz3yez6++ylOiSKkbVAyNKx8BXt+Kl0IYtfi693H8GRHFy0rVjIxOsHV7/oLutb0QhwRCkkcK1wnwQc/8EGSmQwDg6NMTYzwta/dwu49ffT17+HCN72FL9z4RfL5CudfcCa9q1aiqiEre1cQTE0S/voeEutOpOX1p2PYdm1n+ijiiFFMcypJZBjYjTreeACahkomMOIIv5hHC3xsKRGGgYhqH24i9Grl/FFEISzjVitsnJxgraYxubSD361YQV6zaGzOYmRSLF15LLFusF8IftHSSm9jM1fc92vErDmcR2002ZfJsvcv34nd1khDJs3Qr+4jq0myLUuRsUEYlJku5An8NA26IpACYSWIy0VGx8fZdPGbufXr/8r0dBE/CGkKIwJiwoYM8egE5jxxKMfCO2EV/TPjbM+2sqxrGcOD/bznysvpXLmGSEVYTgJTCPygdp7lLy69jLt/dx8jQ/2k0ymmZ2Y45pgujlnWxtDgMNPFAEM3WHv8cQgpaG/vwRsdJ/jed2m6+hoaO9vRzKNr1JjPgiPIzh1Pc9unr6Pnqe2o0mwIqhRibAJUTFAqQBSSkmLBOWruCQ/P6RKl6fimzb5zz+KRYgXftFnS2kSyoRGv/wBvv/sXZKdmCGYFYgjBL1JpfrN6PflqgQsv3sR9v7mHa/7bNQyPjbJhw3pcLcEPfvQDzj37LLK5JezYvYMDA4NMDo3xo5/8CBlDMpvj6v/yfv7x2k9Snilw58QwaRTqbZei//CHWH5wOKN70vGEE4f4wpJm/GPXQaqBpWmX937g/Zi2gRfGmIYkmm1e7FcrVP2Yj330Ws4650z69uylp6eHDetXYzs2n/j0/0FgcuWVl9LZ3UNTtoH45s9jXfmfaFu9CiPh1Ebio5QjjiAp02BUtyDbTkdliCiMsKVAOTaiUsVw00SBR6laIrOA8p8pvpn9K+MYYh8n8Fm7ZQu9QjDdkOXBhiy7R0d5f7mEUa1Smp1ehCb5Vs8K7gkCCgf3ctmmS+jtPZZv3nIz/Xv2cuoZb8QwDKYLBS659BKGhkZosyxSlsNNN96A7wUkEi493cvYtPliDuzZi+9V0CwLUwhk2sL/1c9JhNGzIqow4TB+CIpda+joWMYTT+3m7675OKVKiZSbI4wUlpQUqxWE5YBmkclYBNUiJa9MZJmccvppeNUyD/x2K0rYNGQbOGHtauzhYap3fYvUhz9KS3ML2lG0EF2MBQUyVS6R9n2eyKRpKhewZoo168e5vu9CoJlW7cHewh2bn/si0exNzIaUnSMjtI2OouIYZ94itSwlt592Gh/90pdovusu1q1bz2c/+Unu/u1v6Fi+gos2X0K5UCRGkLJsHt++jTWrjic/PU3n8h66OjqZHp/AB4aGx7j5pq9gOy5SN8j6EVrCIrBc5KFxqigsapGQJ8B4eBv3dvbgWCYTxSInrl1J5JfJuClQCtPQiJWGaScIwghd1zAJMe0Mjm5w4vFrCCoFEqk0voz5xCf+gYSU+F+5mXjDOto/8jGS2dxREb6+WBYUyNjevXRqktFqhT2GznAmwznTU7iBP2/3UhCaFsqv1mpChHhedfkc8ze0FGArRSAgVIrkPHH4ms7ty3vYNzTK5/7ps0g3wUjfQc4560x8aXDicb3EYcxDjzzKaSduYGJ6guUtLfzDddcyNDTIZz/zSYSUCMskLJawXZNSJUSLQEqNE8wILW0TlErEkcJQCnt2DDEVFB2Drdkcnc3N9PcN86H3voNUrpHAqz5jvlv2fJK2TlQNwVRIqWPYGqYQrFy5gnR2CQjJW9/0FrSD/YgljaT/6wfJdXSh2zbiFcqjvFwsKJCkYeCNDLPRq/KLasCZ5TK/dRI0tOicNjxKGD5TBELZTZOoFJCGgfL9Z6f8Obx5Nb8ezBOiVgoYz0YsQiBRWHHEX+3fjy8E9r+NQirBROMSxlIufdWAhx7fxtP3PkSmq4VHfx+Rbm6hramF6z51HX4Q8PuHHuDg8BgJ28D3I4pGRFoINgYzXO5Cqgr+lEc8U8EW4KrDG2MCGG3MkFm6jCAIacy62Jk0ScMEw0DoDoVyiaRtsHvfAZqyKRJWBiENjKBKtVoglUpj6xpqZhqxZyfSssktOxk3nXpVjRrzWVAgnRs2IIZGiFtyvDEO8YRAUz6RphjMJUk6LsmhMVQQEUURZSeNEOBaVm2vZN5BpvkZbFPxTBg7P7tqPnMWVmGFYW2TLAygWKJ1bIJmIVhN7TC1LXVMXYJtEbsOU3YCz3UpJDNYUvKpphSpYhkt59DakiHuYJoAAAwlSURBVERzswTj42gHhxADQyhdw0MhlELMW4EoXfKYTJHtaOXg2CQXn/8Gntz+KMdvOBknYfGrLT9n/fG9mE1t5DIp7GSq1pw4iihFEX4gMQ0d9fhjhHt2YJ/zZtpW9aJb1qtu1JjPwmFuWxvHXHopg7feikomSUQxTiYHlSqHTJeRSsDI8uWcOzpMYnKKAEWMxENimCaiWn3WSDIvkHzmFNt8Flqq1WYrBWGEhHm/9AAFWKUSYkJg1xZFNDk2xqo12DueQJ24AdnUiowDopExjEKZaGoKoUn05gxx/yGqscLhcJWZMg3utx1a4ipeucLGDRvRHRfLNhkfn+b2r93CL9rbef/VH2RFzzFMj4/hNmYRukSLFelcBomOLE3Q+q6rcHM5NM14EXmFo5sFpS2l5E0f+XuaXnc68cwMBAG9h6Zw/ZAhKWiqVsmWi2xBY8vKVahsGisO0Yt5onIFcYSyN1+ImmvyH3ihLrUknEWttqTWfVIh4hi9XEZse5TQdRArVhFHMSqMULFPVCyApSObknjVsOa0DEyjyFOz5y4kbbxUDi+IMUWAm23Edhxcy+SJrQ8TaBKpC778+c/z0AP34mTSCCHI5/OceOopnHPu2SQtjaWX/iWppiVo+qtfHLDIsQc7neaim79I11nnEJRKMDFBZ6nM6ukZ7LB2kMdNmTQWZ7g1gp+t7KXY1oYWR7W1yAIIauuP8CV8cHPHFlyefY72eShQKkauPY6gWEZQITx4AH1/HwZV/Egy3ns8T51yGt7s3kPM7I6tgKKhE2s6lbJPW2srcRhgmTWhP7V7DzMTUwwODOFmc3Sv7K25N2saB/v2c8bZ59LTvZymjk4M69W3EF2MRXdpEk1NvPX/3sjdH7+WvXfcAZNTpE0TGUckp2d4PJ3mrNCny3VoK0zzNWGxfM06Li7OIPv7IHz2UQXFnP/G4hc1V9BjsoggZjEFtchFKcLOdvRcI+rQEOzbDzKkurSF8VUnsXVJCys2rKe87QFU0gbPq4mKWm3KTNImihWFfJXVK4/B0Ewmh4ZobGtj82WbeN0Zr2dZdw/ZTIaq52EZNdOX323dzgfedxXGn7Bm4z+SF9zGS+RynPfpT7HszLO4/2MfIxwYwIhCusOIY4oF7m1qYCLWyIUR7ZZBd2GSb4QSe/UqLi7myQwOE/mHTdOKQmAISMTqiF/8XNj7QuJACuy/fh/x5BRy673oQiEefoAAk8Lxx3FfeyeVZJYLN11E27bt+DuepPX+rehR9KxSFE+Dsq+hdEEUhnR3tXP7N2/lqg98AA1Fe1sb3Z2dzEyV8CuFmu9Z7OOrmNFDY0dV9vXl5kVbUEVBQH5oiAev/Tj937uTMIyfGUqVbfGjTJaE63B8uch+3aRHSPZVPcZsi7dToaN/hKrvo5TCUbXCoRcK/AwOH09YCClAb2xEr1YRoc/4GWcweuYZZHpWYecaMByXyb4+5M9+RuLeX6FHVYgU5sTUrGfZ7OsYGruWdvDVzl5UMsnV734b6056PZZroeIIW9fJV6pEQYTUdTJuEk3GHDgwyK79e9m0eROW+eJde14tvCQLKs0wyC5bxtnXX8/Y5Vfwm2uuoTIwSBR4EPi8NYKwmGeLlSDhGBjVMqGucYKK2FYOuLutk3dPjOAphahUa31XACs+sj4DFq4pnUMpCMYnai5AQrCzeQnHn3Uu+598GvnENhp++hNaD42hQh8ZhUjdJvCKh20r5p5HQGxbKAWJVBJmPdVRinK1ipnMoskQzdZA1TzMFDr/747vcfWH/xbTeOm2Cq8WXnKmyMo00HHB+Wy65262/ssN9H/1FsKqj1WcJuW4bPYCokqRn6YbKJkGx4U+BSTdcURQKnP7sh7ampo5eXyY5qFhAs9DX2S6mTvktGAoPO9vWSm69+wj/6GrWTY5hYlClPNIVK1NOpI48gmE5Lkxlikg1Aw0IchmUkxNTBDrYAqdhJNAxT6aoREGIUnHRYqI4YkpSGVw3eRrdnqBF3F4eyGErpPs6OT0667lLffcQ8d556I5CfxyCb0wTbLqccnYCJfNTLKzWOZJyyGhYipSoynh0DF0kO9Gks919nBg7VqixgzxET7kkJpIXggFZPc8TePAAezyDLKcn23AAbqRQDMTIDW09o6aBdbc62mSyNDJRyExIFXAwf5hJBq+V0QICFCYApJWrV+LH8Ft//oN3nXF5dj2a29qmc8flWs2k0ma1q/nrG9+g7GHH+K3/+Oj+Hv3IcpFVByT8H3eqGLOLM4wZVr4pomsVKjGCtvWOCmoMlgJGcDgVCnRUy5WqYIex6g4IpzzvqMW0bzQmkVEEUJ7vuYjFSE7OpAtSzGLBUTsEezaP2sSEhN7IUoIAlUBzWTf8ARRFOG6aSKvii8k+mz4KqXkkQfuJ9PaRtvStlpHidcwf3TALoTAyuXoOOc8LvrJj1n3z59BtLSgmRZxEKCFIbJcpnFmCqtaYcXQMFtjgdQ1cpUyvohZ51UQyQT3hTF/09zBx7LN/DidY6IhXfMv1+SLulABiLnFpxAoYcCa9ZgXbSZ2UsidO2DPDpgsHH6Qqq1BGkwHv1Il3ZCkWimz88kn8QIfw3Fx7QRCaggp6R8c4I4f/5R3XPnaHz3gjzTSXYjI8ygNDbLr299m181fwhseJqFiNCEoK4UrBFWpEeo6w5ZDkyFoDgJ+KS1+aDo1UzelMFE4UuCYJtlKmUsqJU4rF2o7pwu+E4GWcxFSh2QS0bkcmcuh+vcTDg0jCNE0sxa89K4huv8+RBAiUil0I+Z3bd18N93AmzdfzPbHnyBjOvz9//zvJNJJpNSIwpCDew/yhS/fwlX/+Z2c/vrXv+wHpY82/kMbK4eVCpXRUfruvIsnrv8XzJHhWmuvuRcHojlTFV2nP5niAaHxhDCYFrLmgGDo6KaOiGMMIdmcn+SKqUn0hS5ZCIQm0HIZlGGgqj7C1MD3QWiIXAP66lUE/WOog31IU6LlGlBBDIdG2d59LLct6URpOqmsjaHbWELnpPVracq6PLj9afKVKue94TQ2ve1t2M6L9xp9tfKKdN6OqlXKwyPs//efMPiZ/011YBAVPscAY9b+WkmJcl1mopg9SrLNcohEbRpbFQacl58iHYZHjGoApBSQdhC6AZqF7GhFOVnE0F60sk+cSxN7HlRqbgR6vozQBPetOo4tzd0Uwpi2zibiUoDtGpi2QaXsE6Nz1Xuv5NSTTsay7dd05DLHK9qaPfQ9/NFRhu/+NXtvupHK0zuJSs+2sBTUalHtWBHMfgFx7UqxYoU267Oa4ggC0SSaZSNWrkRJiT45iagUUE051GSeMJ9HKYV0LeaCZBFGaG4a+fFrGepcxv2PPMZA/yDLu9oYGRunuSnLytXH8brXnUJz85LX/LQyn1dUIHPEvo83PU1lYJDhO27n4HfuoDI8hD6b4AupneO11ZGjFpeFt+FNXdbOmuh6rbg6jkCTCNusCVHKWsv2MEIvlGsLVMfBuWwTXZ//IiLh4vk+5VKp5ikmJZZlYZoWhvHHu/W82viTCGQOpRRxpYw3PsHMrl3s+9KXmXngfvzxQ+hB7Xzs3Dne5zJXbDRnJTX//sP/CLS0A0kHaehgp1G6iRoZQC95xE2NOG84k8x7303DKaegpzOvqSzsy8GfVCDzUVFEUCjgT0wwvW8vY9/5NtP/fg8Mj4DvH9Hh0OSwY9AcwjaRro3e1oJo7yQen0KOjaJm8kTpDPaGdWTe8VdkTjoJs7kFmUy+6Dblf24cNQKZj4ojwlKJYGKCysAg4z/7KZUHH6S0dx/xzDRRPo8KI2xqu3zP/c3LBhfDj0DXiWwH6SSweo8l/Z73kt6wEaO1BS2ZfFFdp//cOSoFMh+lFHG1QlypEhSLxPkZisOjhPkpol1PEgyMIErz2rFrErtzaa3WdMUKMqtWoWUa0Bob0VKpuiheIke9QBai1mS41uRHhdFsZnb2LQhRmy6EAEOv9Vn5M1tYvpy8KgVS55VDiLlOeXXqHIG6QOosSl0gdRalLpA6i1IXSJ1FqQukzqLUBVJnUeoCqbModYHUWZS6QOosSl0gdRalLpA6i1IXSJ1FqQukzqLUBVJnUeoCqbModYHUWZS6QOosSl0gdRalLpA6i1IXSJ1FqQukTp06fzj/H7fb/EWiGCHjAAAAAElFTkSuQmCC \u0026#34;KYO31301R21B\u0026#34;)![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALgAAACGCAYAAABuQ0AaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAABmdJREFUeJzt3Vty4yAUBFBSlYVl6d6Z5iMmg2RAgHh0X/pUzc/4EUCtjizbinMiIiSO1QMQGeFw/8OtkAe+Vw9AmoVB/lo2CpHOwrbO3UecGpyF2lpMKmnr3GO3pwbHo7YWk560de45t6YGX0ttLSYdbkxjp37WttTg86itxaSZbZ0bw5bU4GOorUFo8ftCDbYfF9KYhATCIUgJ9PENoT26HWpbp6jFpQhDW6ewjruZ9uYybG2dohaXE+a2TrE2nyztyZ+stHWKWnxTFts6ZZd5bv9Gj/W2lk3t1NYpW8x/p9ZSW59tcSxuenJvW2zICqnmNrk+Jifl1NYxdzu6yTUzM5E3tfXZXWiPzP/nHicTsXzYaabcevyt1+v1Ctfu7v6UmPdOtcxZSVs755x7vV7RJ/j5+Sl6fOJ2SDQDfaNc5MFyh2W3oY4Jgn77vInbYUAPLkCzoJMUtXVNqFPYww43oAD0wi3Sva1LsQYdZiAByIVaKLceQ0OdwhR2pADpFN/ZsrYuVRB05xaHfXWYYPZ0EHBtXaoy7NO29apQqa3Pbl80IobaKwy3c/Hz6UMzMDNgauuz2vWAavCKUDtXeLhV8DzVZgRNbX0W26C1a7Qs7I1tXT2visdkjQqd2vqsdD2aQzE66DfvcoZ6FFq3/PQOn9r67MmGWn4IM7itSz167h6DUVt/6r2jTw375LauUZ21Hr9GFOpfM3b0YUEHaesaRfkb/WtzB6t29C5hbwg22nbPrkPtq1u0ya2CtqM3h/3m/mjzvPMxXkuTmwF9R++1zZi3/WnsuRPvbBMbhXVjj2p1VNfcHs65r+/LjeEddse+o4fjLvqMS+Q2dLdjv17Zim2CvTFv7Jyw1a6fB2GcZ3H5+IB/uc+J78RqsHPY5tm0jXa+NuEuoWaf56NDxTDgvsUZF6EG+wYvxTzPbmPfpcGZN3Yt5hfH3ccee5FpqcV3CTbzPIeO3WqDM7dYDeZ5Thl7LOCsLc7cYjWY5zl97BYanLnFajDPc9lOmQo4eoszt1gN5nlCjJ2twZlbrAbzPCGC7eUCjtLiUAs2EPM8YceO3OCxFoNdyAfU1ovN/IzKEfwrvS+jmnkiYhj74RxOg9+1WOwTcNdriuQej0JtPVlpwEcci5csWOp7hKnHIgaIMhgBxDUtVvOdzFmXQKi65EHiEgcIoUIYQyvmsXuHS3xlLXnnhz/My7Z160VrMt8On7mx2INB3dYXVQH/e0DDD/Eet3WpRNhHho852MxjzxkW8CWhjhnc6uzBsNTWMdUB/3tQ5jYvGexVl/7t2OrMwWYee61uAc81wbS2rtH4wpS58ZjH3qop4P6BoeRlCJBCfVXxR09z90O2U1vHnK6L0opq4Sr/KkHt/VDs2NZJrQ1eegwL0eYMfw3sIeaxj/LoEKXl6kjTw154nWvmxlOw07oG/Hq7N73V1dbyNizg1/t6Q8OutpaLKQG/Ps7rcp5cbS0Z0wMePt5ranW1tRRYFvDrc3ml56NT9y15PmTMY0fU5Tz4U3fvJF5vvws2YzAU7IFWBzxUE/bUfZgw75Q0kAIeCt9IugaBORjsOyUd1IB7aN/SacW8U1JDD3iILewMYzSPKeAh5LCrrYGwBjyE8K16tJ1sd3/bw0LAQzO+fxlSW2P52B7WAu6NPIRRW2PJbg+rAQ/1CrvaGkvRttwh4KHasKutsVRvj9WfRUEQWzS1NZbmotmtwWMQzsLIpy6/PRXwsy+X/gSjzNH1sFABFxRDfnsq4LLS8BfxCrisMO21jgIusyw55aqAy2hLz0wp4DICzBtkCrj0BPc+ggIuT8G0dYwCLq2gg+0p4FKDItQhBVxK0AXbU8AlhTbUIQVcrkwE21PAxYM7xdeDAr43U20do4DvyWRbxyjg+zDf1jEKuH3btHVMa8CtffHYmi3buqcj+GcN85ysbpNmrQ2OfPHL3Wj9M3ocgyvsa2itC/R+kalrjIylUFcaeRZl9pVeLdMaNppxmlCHMO30W/Ch2efBFfZ7Whdj0E45rhoH0hqYgfBO5s6tvtt8p0MIeGiXsOvYehK0gIeshd3CHGSwGcfrvZ9bx9YLITd4DEurI49tK2wBDyGGHWUc8sYc8NDKjwgo1MCsBDw06yMCCjYBiwH3RhzCKNRkLAc89DTsCrbQSZ1yPCL3EVJqo1+pEGt9RERElvgHNOwaNATm74YAAAAASUVORK5CYII= \u0026#34;0036bd40-4656-7c34-6504-5b5c41b6774e\u0026#34;) this text is after the image. Images in a table. Left and right aligned. |![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAABQCAMAAADMbnx5AAADAFBMVEWyljGwrrNxh7esqrDJzNJVZJeBc1A0S464tbvS1Nk4RHeIhIjGtpsWFRleUjKXlZjZ3eGQh3B6dnknJinCwsTX2uCrqa7Q0tTc4OPSxpq9u8FHVYdoe6yxsLXKtGGWpcVzZ0K+wsfN0dWHiZO0sbZEU31pZGfN1ubV2No5NjmVmaemkkuyqJV3eYVIRUZWa6Sqs8O6xNbY3N6wo3XcxGi7uL0lJjcaGSFYVVrU19qTg0omKEZlNjdYWGiao7ljW1VoaHm2srg3OEaHlLvMy8oFBQXCxcooJVdjaYmrsrpHR1V8g5gzNnikmHFmcpy3tLnDoyxye5mBfoGgnJRSWnmyusSDiqTS2+lRW4i8ub5DSGjAvsIfHya3sqqvrLE/THjU19xGWZQ2O1fc4ug1PGbT1ttibJfW2d3a3uQzPYbX2tuquNKPiouKm8BBPUaRjpHFyc2pp62ersvV2N0tNWc8Q1xrcoy9vL9eYnaalIV3cm0sMlfc3+RiXmSLkqeyqqZvampBToV0b3UsKWLV08y8urLh5OVTSkjU3+vQ09jW19wuPXRPTFK0olnY2+HLyca1uLykoaK0vsjHxcJMU26ipKuzsrezvdTU3eSiq7u6trG5ubseHzKvtsGenKLb3+ExKSmnr76vq7AsMkvSzMswLjKrsKhdVUeho7LO0M2tq7HFz+A1LncjH03a3ultcHkwLGyspaKQkZmwtby3tLXBwb1QUVesqqJQYJI8Ni3Q1+KYn7HS2NyurrLAvrm6vse+ydyhqrLU2eA3WZ21tr+vrrQMDA7R1tuqrbdNTGPY4u4iI0y+uLnS19uytbivwdvU2t0uMDvHxso/ZKJIX5+wsr7S2+Cysa+nqKwgHj+rqbXU19SnprF9kr3HyMSpr6+1s76tq7mBjrEjISPOztQtLkS1tbNwcIQeHB8SEhW6vL64uL+2s7GwrqwsLVWurbIQEBSfp7x6bp7X19ehn5nZ0dWxtrQQEBGoq6+3uLVOUXi7u7pdYoajqqdBPj3hztN/OdGeAAAAAWJLR0QAiAUdSAAAAAxjbVBQSkNtcDA3MTIAAAADSABzvAAAH7VJREFUaENlmQtAU1e2/iMFEWjKIyBWsPKQSLAERU1ApCAaQHm0pAERUhEEEcSAvAWxPEaREd+U2oqAZVKLaPFRqVb/6mgbRWsr1l7L9DEzRsdER0xv/U9a5XLvt/Y5ATuzICcnJzl7/8631l57nX0EC8ZNgU1rnTZtGt7HPR73eDnsMTvKvsFxfNm6YMGC12GtluP0W/zu8bhxoy/LOeNGTx77MWuJb47r0GLssKUrHKZO5grGHfqdvfDCxHXr1k18gTtIhOj7iy/GkTHsQ/jqBfbCT2EvTKQ9znCUfcl/+H3LaOwDS4vLl38xauiA74v6mcK6mSAYx5rjDXtEtQ49WrAePz7EUXHtMCy+eyIawwLhv5H9Gxb/ERjjxn1wCAysXWry0CG86BOwmKITBI+puTEupgB1QIfIPfARf/5jEFITPBanCUn2/PsYM7XBK2dpfjmd/sEHdJGMijc0/AXrirkSzv1q339icR5gzqPfWqTClYz7YPkHnOBMMsb0vA85tTgp2beH+G8tWI+XH1r+AbAQupxQdMEgoj74OEZwffXVzn2CKayJ5+RiDeJ8i//pMtDCFJxKrDwSr9VE+Nyi2liMsQggqudb5rqgJoDFicWc9gUiFi9y3oIF06Yh4ncSFl0Rf/2W66SIfx4LQY/TQYdrHQt40uqFF9ZN5AkJz+LPUaz/CC+Gxccpw2IyYdPaOgWDHTbhqwkTHgiWswjnOuOHGOcGdkF8CHBetwQWcRDAc2OQTpi4jsLSogkC8zmm5yIJjbJxjTbZPzIQjIAg1ATOJvNYlh6odaY1hSHO5M7mXQ/PWnIAlxwQ7ZZQW84FE89CZ9NFkbE3LpS4HEMt8pkNEnFQBERpkUHNncuw+JFNDXORQ1qx0UqprnUKi3pSa+wHXBz9zkU0ToD1GHGN0c/5hsN4Pr2CgTWL0F7QSjmVy9IWmYBERliUEtllUz/ULg1f1iyl/mkQi7tsKGEZaBTMlivAiY9J3OWHmLgWif8zwbey5nhb8DrhjCIxrLlz6cVhPWZJ3ZLVuYjimsQ8g4bIhyzjjQ1WPgfQOY/HcXnRMqy48OXP5pogw+TVij3OYWwLlzG3EQ62eOeAyJYBawpl9MePSSgW4mMZhLsudPHFv40nLi9zLJQ6WOjiRb4Zk4NHwKBnqiyY8Dr5a8LrCCS2w3BGbQyKU2sK9ckNIHiPl/45tUmtUSw4C/vMpyzlENI4aMLCA/aPTxZ88sknfBAzIPIU7ypiYhJxL3iMKTQm07JlJBVZOkunhIRERdlp1AncyOWE4FM7G14Ue5CLfspXBK2t+1rPBGzcuDHgo8Wf7/zty037QMKxcAxjshCKxZ7XZxmjmTwZ/8xGsZhXqEtkXRqE6JppwSYrNsdjmDG/ETznMoqYaa+3tj7c6OER5Gl1Z+3CpPLypJSNH839ct++0ZihuHmdMTwXPrTPxJk79+E+AHFUZGwnXbD8+ZH+BeuaZnNyHIU6N4fCvyyQLHmQzaisCEOf+9rVQrloILAn9p6cTB3Wcgaz7b4v08/B0DnfPx/P6emurq7pFTCOpuIB7VdY3rDHsPi8xQYjTYXY0D+XVAmNJkOGxAUeF3dIOJ8smDB339x9+7xrFGTCLKNCYRaqB8paUlPtn6aWJ8WlbAw489FHP/xlyt8eLkPn6ekVyyqSX0uJ++9VSYtPfPu3zz///OGDfcsq0k+eBKlrdPrJPa5gZk6kyed3GXssvrkSgk+J/KCnOKbAmfDV6xMq9l1pTwmMjY0Cj0KhawOQn0dm5q3MvMOwo4cPx8fn2dfVeaQOr0r0BOOZj67s/NmmzjY+3j7Rxh5bfImvPVLJhoeHk5JUT9P6HV0np7sKPqCyj8xSZD1fTSCOgEVZglXV5DZLCvztt78Fhre0ZNhnZJSVRWVFDfRtXGsV9M2lS5ds82DxGalg8fRMTFy1ysbm1KlMzk5l1t1KhCUlnkr1qMvAX12Gvf3WraWlpUdLE9Oy2uSm/mi4mallwWJ5gpsU2aBj8zs/mY6jNEg6TWtlY+nh+Z89PQP+/NpfT557b/FUsuI1sy7MurCmeOrUtZ4BB6ZaBWVkydRyodFolAuFRrka1ia7N9RwND4vaVH0+eTkmQfee+/AgQPvvTb1tYV37iSlrFJtvC8TRqX/OxZqAhZXy1mVNm5c6xT807QF15Hj+Ky8c8KE89Gzin/c+D9PnrR/+uGjc3/4fvPmzXuX7l26ZSXs6srFPj2eedVynUJnNuvItCNmeJmFoMKsvhYT6HumIh2xlp5+Pj39pCsbBTv2x8ZFJkXJZVMQYHzIcxMc5mI29qjoo9CG47gMxGZ3miLYSH/2+eIDgf1RZJolzeFx5y9fvBjstGH1xx9/vHIzsIqsi21LhQh/A0yt1uuFzWKJ3CA06ngyo+xI5Msnz3MjkOBgFd53sh3mxyXJ7n1OWJgTuRKZShOSCuFkGXDcNGGZIlhmfvhw2bIrAYHNItGAtLm/RlzrcOKs0+rt291uuLldvLgXaFt6fIrzhswKk9EgYqYX6TubpQYDuZLnUgilVS7HXNMn80z05p0a1hJ+P66t/yak+92dz2MKcIrxVm52IyxuYqeJAv/Llj148G1AYN+AdgA6hdSIlb/6BG/fvnq1U8fqSZNW79279+LFns/W2IbBV0a1dkCrJSy92jAiFSHKyKOcJzFuIxLe/AuimxkSmeuB0uqnw6qyNt+b+MjNiYeQmCxV1WjlgTFHGdqSm+n92YPFAXHhEtEAeS+kpj4g+qKb2+oNFvt4w4bVPlum5skUOp1QpIV1Mrn08pERiXDEJSQ8RKsR8WDygfHOr570poxF2co7KWZwUHYvK9Lb2zX9pmAKN9FZ7tH4dMmmWG46tWAtW/YsfVlAXKVGpJVolizpC68J/HvOdrftToBayYOtnHR372vxYQh1oRpYgNLDDAazVDQilLS2ProtdqmxKGaS1I53PlfxLZiib0YX1x0ZbGuT37vyk3e6azTDmsLNhXw9xMcTm+VpIuOmj33PKrw/Ko/s01qkEisnuwHKaUyslSs33F1azFPpOZ0IyiA3S/SdBuFIM3ypFwnhS86RB8d7RcStqku1WbUq0aYUWHJ5WrQrw5pmcR7TyVKMcNM8CjIqNSbT/F7h+rlvZbhGLZJwDhT73vzYDVFl0YlSg5P13jX2TCuDmrDARFRCg1yk1RuMI+kPz0vUDlIdgozjGpk3fp5DXkNMTMzRvJg2udFsunciGl6MFrzOz3Qo9qEWc91YIQScucvYMD45eWNvuEYk0kZpiEpc/85dOHD177CcrP8LVDqFWW4gmcjUlCPk2NGa1UIEvlQklHRiRBqRx2BGybzx450DMw43NByVsyPy40Xe3t7Aeq7k41PBWPW67AEcfxIj5ebDuPAlWpFWw6AQ7Av2BjMPWrhWbpi0gaiumRQ6wiCdkBmYD5G/5FqFwSikZGpGPqPMz3EZGhsPHoz49cdbtlt5Ae9bP4/Fp83nQxzTffrDj1JWxQ7Hxq4axiyanW1fVtbfH14jri/0X+0U7LSdsBgYPLjB+rML9jFq9Ar/GaAXiyzCMsjlRoMC+cFsJp2MQiPAeD8qDh70aowYxjw6NBQWJpOl/Z1TC9MKTSx81uQKs4eUfF1d5074y/2nafaY61EQ2Np4Wi1c6OlBdYH909ifZzU5bZ60AUxczK9caf1Zj9+1Np2CxiCHRVxqyqJCIYlkHE2mXIowGkwmFGoyWVhMDIXXEfof2jgpOhpYc//jNg3R7frgypmU8sTyMgxyrWREI12S1vLu0i1brl6dbkX1QV6ere0tzzvFs1bc2LB5M9LD5pVF1j0Zg4PwBBIW1CIWOVTBAYpwBI5ZJBGpRbKBqKiuaigzNBRTXVqaBQ+UEtKRwUHkB5is0M41ukiwjMuYlnGH6WDCDymJqR4eKIUy0tLSWvqz7oXJRAb1xi1Ll06fNfWWLZBsbS99E2RVPKtn+oV3p8603r555fkTS/0Gw1jhBUcJhQgsJC7JiCQKGS48XNXS8jQjzT67tKGhobS0rD+8tsoZVrgxSdWCzMCQ1Ky27ex82xpYoxnz4bLJ6Sef/ZCyysO+NCurLC1NFdv+4pf/+///98v/jj8cn5c3dS+KBs9Ll24Fef44dc2FnguzihdaoaDytFpbXLx2VaLftcE2HXKDXrMkPLK3t7y8HHXVKhuPDPv4o0cbGo4M0t+9JRHjZ2x7Zc6cF189ntQisb9kq9FUI13JacIUGk0mhaTT+e7NIsFkvsSe7HpyWcCqVI9Mj6MNXPTJtLIoiaaxvz/NIygoyHNNz6x3v551YfrVLdPfnXoHFZ7VwrXFa94FW6LNcOpwbHlSEsrkJHzhGRR069atzMy6OuDEQJ1se/trbTINiN4gojcDVVkDbQNbq2Wy6myNzGCZJ7mImz/eB2oBi24B0tN9bWwSbTw9U6Hz0aOoeBHa8fGlpS29gcdnTp++dMvS6UtXXr362ZqFqDit1pJcXxev/TEI3kQVamX144+eQbcu2dp6Ppxy+/Zbm17c9OLLL7+cceRI6TcZA122l1RAgr2SoGzJwrgwd7403qtaqJAjPatZhahmPhTKDfPn77FmWFTTjwsPyVhbbKXK5piY2yiyrXquwraAasvSnneL71hZLSy+MB37XxdPXfsjbO3ahT9aQZ9M27z4w3l5h+tefvnFOXPmvPLqK69seyVSLm/bWoqxVl3zhkDwxjZlS5cagpz2ErwxrybrniZCmZKIyh+nofY/2lCdnRYSXj//VWCls9vFCSHSyiRP+/CE2b0uLsMI+NQ6hHbeLasLS6HU0i3Te2ahFl5b/G7PFsh2ATJZIa6syLC3cOrChXcSbbKHYGHr1yckODsoHZQu5Qm1UKU2olF6MGL8G4J54jIZdDrttW3OnJc/TUyMO7bpTGIdyvjq6i6MKqqvzWaTzjCKVeFdqzNHZR8ZqnVOmD1nzqtzZr/4yotxKd/82AOo6Rh/7535OXrWrMtAogPTp/d8fQH29ZrXUhKH/dKysrKWLGleotFTKtC5zHZ2TigoSEgoKExImCd4Q0DOe0PgnNaFLI9ZENH18sbKFudtrwRG/b4G4+ZJXecxa2umVvqDEa1G3TZ45Mi1oex+1dPI4ciC9QW3rK4uhVA9B3wDe/9+97OPP6ZPV1ci5HvefW9h0iq/7K4wGkRITpIZM+aNf0mrw52EqXf3/hMn/vWv/TP375/5oYA3Z9U9zEqKznmE6JwmFHkJ5vWrWZ1vSfcA4kx/7K61APV9uvfivsXv3RsID0/Lqh66duTIkRi6PbEN+nr60qu7AeVwxcfn4sqVW6ZfWDN1oWdQJoZ8DJINiFCeo+ITihobT3eK5GZT5/zOylm7d+/2njXLG2+3OaoZlV3IaDrdaVJO0NtlbhS84Vwm1GFqND2X+s0Ap/aUPt0CV0xB3r61PpXZyvbjx4/7OrhUhveXZbH7pktrv35tQKhVa975/IeA4oWet4Iyg/LsjzbEXLvGoCwj2yREi6c7FSbd/PnzxcDZrawJEe/fvfuvjKqqrE0O75p0QsNpr3limcFLIHDOQtIFFlEJtRItJWJCwidpQFG3AOWNd3SIMrBruPC44/FCh4JCWEGB8n5Ww+HDl75J61ULNb6+vc1pGGlHT6UciIurPgIoeI9qAB4Mgpnnn1aYTNr5nX27k5PPSxT6qMW7kwlrRqVMpzuo1yHwqJaXC7WIt94hmgpILYVC6nj7k98cNTRN4euaHz629s4FVvSix6KQe099HcFzvKDeBWAODr6OLQ3xHraZH93Q6L2vntfqSg8fbRjeiIWFpDSaK+Ryk0KoqYkMkQjpElEaIMGjZNF3OifDJNITO/cnJ/91hmCGn0xnMo7XQi3MzFKD0WTweiMyDFA8VciXbz3657k9FX1ML6EmSjKw5G+C6OgH958OyQbTKgMLAeQSHunrW+Dg4FAQfrQhtS4pOlqvabq7U69uiDlSvdFxfu1rG8+E0QRmVEjai3Ys6nZVikgyeKTTYDIaRwSzZybvT5YKReLk5P2/CmaoZJCyc56UMITSeSFqoVkuDTPRVM6qrpF/hkRset/h/T3pI3S3K9SfNihMxwVFRe33rpXGx29t2Jrhl9Z/Xxnbq1RCrcLYhob40koHsVDr0N6npnC61hI3PzIlIE4GrYS6kJubPj158tyfutdJ6JYZhQPu6hE1CTNP7E+WoM68sn/m/8zoDdNJvObNEAjmeWmEUEstp3hCsNMUaDQqdL5SRcS5cwdrN+3ZZcAo9HrppU6dsF1QZN0uDlGlrEqts8eCRnxdqr1fRsbT8sD7/Q0N9kfTtJ16oVDdxgqPalWlVWz5cJZM3ibX9XUrDVV/+rL22A73iXqqdqPUZuFB5PLZM+G93t4Q85VZu3/b5gfWgajmGbVRbXKpwSTslLJAh/FiVSkUEa57xKeV56Kl8GGn0Gw0Acva2lEsLt8YF5eUlGiT6mG/NR5wVE8hQ2TaZtpnlS1pSR3GSo9fWobKr6W/JVwVJW8ziipcFAqHu66NB8HlArnU2XKdiMbd7GRkB1+XXl279+5/JWTTuojJ7BWlM8GDIpHXvCWsLuTIdApxs0JRu6Oo4HTE+3tczHCqoRPJ7x1Bt094duz9uOMbfYksCaVIKpZ4YFRV2WbaBAVhXv76Qk9PzywsxtzxjFWlXYNYLm9iHlnvbn0Q7f10U6JTyLtMyEuEtTj5xG6pqFZ3PHnmh+uzuaIlRCYXqptlaqGsjOZjHgxYBW87Fr7/1u1Nn57bAy8azIaXRoxG/ecCd58AFbAKHB2RHpC34gIDsQIaS2tS9+8PP7W3hX51cXGvvuhbXmefXVaGCSyqTSj6BDfHxkfu7i6dI8pz3fUoiuUmXSdhJRzYv393s0Fqfid5/4cJfqhEUSZl3YuI6uqKOqgVslqPwxIaFcIne3bseCKJwNu5c8+0GBynT+uNUUUCO7srBwLuB2IY+mL8IWVR3ir0HbZRqXzfTFh/apWDKs9eXBMxvnkJFnnGj/fyOtg4KJSm10olyu8X/fSsyuGtRTsccd0mFHHzOKxvdyt1imbkrw+3lW/dak8W6VybkRGJOQhcY2opDAWNny6qUhhrdhxT/nZSazaMvDSiN0VZC87aVR4PuF9e6+CgHDOHwFSblhYbG5tVHsMJKlt78fiq2vE1XYPXNJoRaXN1mK6mO/gP3d9/qjy2qfv7P3T/9IhqdSPz4ozZi/fD4noXJ+8/8OG2hFMZGRkYRBmqDD+/OpXt1rCwsEFSi0JLCCxFyPsuOqN4x0HxOVdSSy+UL2lfITj7fUBS0v24epdAF5d6i7lEMixUN7jtqTuVmVpeWVmZhqoXs+XWe+owU1XBm93uJ093ip/85L7prZ8q9HRng7TVOEMw++czr/383oGZi//8zp8/3bZtvY2fn5+HCsV8pUoVXtOiwpJkNdwaJmsTynXGQqOo4FNp49vPRqp+qujEveRASECTW6jgRse35eWRvs719bW1YnEN/snCT9mktdy5k3In5VTmqVOIMwyFU/alQ9ditnZhEUioHFFULdql0xsKuh9FrN+RLhLqzEadqa0UBctsi23btm0GrCotO8vLS+qFlCR9yauKlkrJSqtjwuQKZafOcdE/njxzPbjefZdB03e8KDf47GV/QbB3TZYqJeW+SlVZGXg/sqYmJCSkr5Gwwmcmz1zsaWNzqyDB2dmlqqrKuTZsMCYLod5mBJb2yT8kndLb34ulTxY90wsxIaq7Mjz8VLXO8whmxrx5uJFHKIJGqz6NAgM3j0IjbtXkWEKFtanVYW2Kmmap66Jnu07+9OQfv7jIHVf/V35o6OXLZwU3mnUKdV8kcsOq2B/eOxMQXrYEpgJW5R1kDA8sUK+f7bxthjNWMcSD10oNSOhtJpcQha5qUWFEYbd1Y+Nt9w8MZoVRFpVW1lWdnZ2dpRmRSDpF7D5frUY2RsWO1ScR3QVi4uJuv2Sye12lXQqtQ2H3jojT6/e4WrtLRTeDr58luyE4q+yTSiVY34laEmBd5L071uOpX8bT1FM2WS02WLZG/rpFdzS+vnGR4Uuuld6jJdFBkxjJtN5u0bhn7u7i2h2/FKDwFMpwT497Vrla3jYoC8vqC6kJ76utrwqvqa9SKl3qXVpisMyN2yAyjE2sfmdkC80uixY5YI3pbddfdumb7+aGgusysJzOt6PGqhc3S0SSvhoXh37kdAxB5C2bIGyDgmxuedjW2V6qu5Rpm2GbDa0MaiSIR9qR2+7de97v9nnzibt/jVBaI1KHhcVcw317aTxmirxU5f3ISFWlqiXjaUYGTWgYiYh9j1R6I2OfMTNMfDZiOF177KSrRu74x1C7nOvwIbA6gt0rvku/2brLQdynkcD3RvL+QFdWmX2GR+apW6cyLyH3bC0dGrp2bQiRITQIB9v0j1zT73a7O0a81b3oT/l7OvXfeUcNlVLqHKrGPXxpKZeu6ngWD8786uiPZCKstLSyLJSjkl2Pnvxzz6KKZl2Iu/tdHx/3Jp+m64KO4OCOSbCVk4JvNLnuEo9gxRNhgYUVk1EN/2e1qDAbeaARlaoay/1tsqi2wSFjzR92fL/IQdoZ8WX3L8H1puZC5T1ZWFhXdXX2VjzXIFV4w54HPuKlQprAM5TK2NjywMA430Ca4FHL6ERVx25PVGp1esci7+jooiJra2sfgVN+fnCwm7+dnXv3oh1F1hUOEqxliCQwxoeFlwEJUiisT0oLVFRvo+gzOP6yp6pT33lw16Z8R6GoyqWS9LHFXEoMTBpOkLKsqH7c+wdSteRQUIBJZH0hJjpslIyL1X4GPFoQuRw79t0LeGj6cDKWdC8X7ZzY7uhYWIAs7+JSFSExsOUN8HRiaUOCwkbPFjx4o9IWRSjS8ds7CmqrHNNP/mmXyKiNiOhH9AAjQ6Xqj5LJRKirhMgazPRiFxdGNWoFDFBJzzYIC5dq1ga+CVrH9l27Jk7Z6S3w8f61UIlUyqyG++Eog0ja1yjVSNjqughLSrARIRWR0EtU2N3t/v33dwv1ZoNEI5EMYBVeqx2oqUUJyMx8GnJQ5aobEUeIq1xw0XhxhnkO2jnU6LHqhRt8kcbF8bt1E/8flHJ1vVkEJ9647m7t2rrOsQBsIVqOSmdE4LP1OiwiwqSaEc0I/glLwq+rQzBprYNSPIJW1XpaQ9DjMYpIFBIi49U1jPA7OpFU01xbW1/PNIMbHdvbd62b+OgFeAm773z365WH3mBpsqO/nNDQnFBBcK5/bsmKnKa70Q+/K+xFmqDlCeQ+yoV0e0TreVjRw0IjM3qIw2534EmqfbHkCCq2EMke8GgbG7V092U2GkYaoa0Ui9K9yuPH23/96uF5LCEjoH0w3HzcMeCsKbqtre/CcMTnckmJv39OTkm+f2iuwCk4360En3JyLtu5W0efv9IOn9aLpVo8e6DuTSYzVf6UKNEtDQGRnr9BpBsso9EA52owJhqbm0MixPXKggLcCDi2f/fF3PP8wPJpwpi3a2qyu9zUBBzskdn5EM/duzjWZEdfXb4e6u9fkuvvn++2HQnCza0EtoLMLjQ0tAl4PkUPvnN0cKlpHkFcYc2C7lqQzWitnQJISwvbWNTGal9frdKhsH3ilK8eVgAi2vou+m1yp4t3pz3CYAx2OTl22DAk7OA4khTM3c4u1D/n7I0bofg+FI4jrPxggZMbh1WyoiR3RQ4ce/2sv3/ujYsXb9zIcb9rffP8iSvvtKNw9S3wxf1t+y5Ewq/f/Tpl584HEINcAiEus94uozfqnvpnCvBGB3AUja9Ywb7jjhMZtLLL8fe/fh0oyFFQxR9GWKRWLjPGh6M3/HNzQYnJiX7jX+KGSyjZHnzjxo3gG/nB+bn+Fy+WkNPxm7N03g2Snjq9fp227DuCy4EA/D4RwRhbDmkINLqSu9AyNB9Yofn5+bl27nahBMCw3HLz80GEDZ4K4g1HEW2w/Fz8JjSHc+8KXAc0pgPsqkHFXUtwMEhLct2AgwhYsaKkhEMYNY7MgkWnMj9yryY4Lj+/hDb5+XSM5ArNDRZsgFogykXkb4flsh9AoJLcfDf8mvmXXJwT6o+30NCSUPY5pwQ8wcF4juHk5BScS73S15Yfk2oIi98DMr0AyDuXCzpw5PpDLIjEsMiVhOWE1nHNTnhYsh3DMheCAYt8Cl/yDoaablCEegdtPnYhdAeAnJwmdTh1OOXyBDyW5VrQwApSEFrDyIVsOxp1CEuEUy4qP8LyJySmYihhOW2nq8Y1A8spuAS6BcObnGEnF75lOgILQZabn4uW3PKDnToYF2b5jg44nQdjkUhaw3BRwEessQhAzZKD8A4FHI1JFvxQB43BB/5Awy+YYdwhtiBTbrCTG3rYTnQsWjgsbNkO4VLcQTFQwq9QObgDdYeTEys+JgELPoSSFGQ0tBkRmIIpkqEVIiA3FJKRJJCPCYf+m5pIPjrGjnNYoPKnkQj/QSXmkWAI54ZdBgGF6OE4DI+bnBgWjVaWT+gcUDGsjo6OYN5tkBEPqGBuFBZoD1wloCWRMcqpa4tRlJELLUY6EpQdtIVa1DhrgMPiABkM42I7eBBGO6CiiKN/KDppEqKLw4LgnLFG2MlMeQpbNkyZMzGuybls4LBBS1ijSvFYdjR0CIuLXLT2PBYhMRrGRk/BmATsH0FPWhAQbSZ14J1JCQdyV0caB7MxigO5+D2phnRDLqWBTr4kHniNhizpBG9iYrZronSYi7y1mYuOSRs2YOO0mkIG3Yw9gB59bI+n9rQPVAy9jg0bOibRqZvZ+R0MAV+Q0a9oyzuYVw3OZSmFN6Jjccelvz/+kbYsGyMigzv+D5S2Bsxggm+bAAAAAElFTkSuQmCC \u0026#34;39182\u0026#34;)|![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAABQCAMAAADMbnx5AAABgFBMVEXw0J2jqau7wL7BycbW6OOJIgP///79z8lub3O+w7+uuMessrGYcG6mrLC1urlyDQD0lYvRdmWhPxm3iofN19T+vrV5IQUBAAHBxsTthXCfpKpEU1u3eHC4vbyXmZbNqaiEhog8SE/XjISUmaT+39LO3dpzeHxTZm/M1umegmmJVEqwt7RIXGTT4t/q/PtyTUv8pZwtO0i/x8C5wdOpsK/CzMmARC65aVjD0cbOXzLmtrSyt7b86eGOk5x8f4aJd3ojLjqywcGGipL/+NoVIiu6y8p9NByurXNQBAAhAgPeo5+ss7jgxsSuvb2/0eiVZFy+ydq3pqSbgICpmJ7q299vWWGoVj9HLSpgOD+6xMWwt7qtuLbJ0M7Sy9avxMQJEh6SlI2LnRHc7eu30ZDg1M+gjI7j9PHD4fK0vdC2yc+iq71kZ2mLjIqis7b+8u+coaG+x8jY9v43FhrMv8W2r7C1x8ZZW17AzsTEvLiuxNrEs66DYmKlusvBnJZoIxTEz9+JBbYUAAAAAWJLR0QAiAUdSAAAAAxjbVBQSkNtcDA3MTIAAAADSABzvAAAE99JREFUaEPtmolbGlmzxsWlaRUDLtBKI7LZGEQBF0iMQEuQgGhQUFwTnExQA7jEBZMQzb9+3zrdIGSZSWbmu/e7zzMvW7N1/7qqTp3qc06bGdIo6mOag3p7cSdNKnoGPVI0qqh9tJ3uTN0k9jLTqmGmjuEO3PH6E6r/qO2vY4FNxQJRO25fY138n2A1rMXM9a+1fjK2/rXWr7TEf631X2Ctv5ZNH9JWPT18lU3/RtrqoHT617Ba0tb3sunMX8+mfwOrJcmzHP8PW+vvmouc+D2uXzPXPHWZ/x194jypuQf/FkupH1gBoTZDtYJoKh+aCoim8oGKiBl4EP1iO4qLD6quullwsaICrxctBQQDatHt7ZMnt7cqKEK+uapRqBpY9aKmXtXUyxqqbOrlAyqWg4ODVejtpmvxbHFRq101GhdI7EOmIfwEtc1Mx/zB0ND40Pj4+BTU2fmG1NnZOTU+dACzzeyyhtSBkP+mHdapqM5SSq1vqZQ6a7j76sOnjY27u7tBSygU6h+8W1kwao1GLfA4jjtzufCGpIVcpM0DjfUcslrDh4cVmy0SkfhyVdyW4wVBwJ1JPqhjPXgQBaBirH1GRVhqAdjwoGKq0dHr3MbVRtGau9bMb46OzncMf/jQfjX86tXbTa3rbFHrd4SC99s7sixW+S3fjk+XHbwzasd86sGbXwqFgizXqQQBWE11aUtcMabmsrTFgd3tox2vhqa56S9HR2/edE9PH7yit3VdbGr9+e1qxFlKlzReN++OlUrOcDjCi5ceozHbAhaIKZLpU/tv9Nw+34zVEleNYlk11ihhwfP0PDza28FxB+3t14cxqSqKdnvALop7DaypD66V7bh59uXExMuXxyWv2+08hqa5ifW+wKVlcWG7CcwOT0Yithgz1m8Mq/eAYTW1QebAyaY2WKdSCnhWwXdrNFNHF4diFTTAEb04btU927DVUO7M74mcrM+STk7M+JrvmZ1NL3Ha9fWJdCDodxUfuAoxUMUiirV+C9LzOWGpcaVcW9QboerByaYLC4ICVvdoJTzllLyiWMXNC7lJuw0qrvLcmHH3qNrrMRO6s+fkJD37BZgvX7pTK1rXTh2MBxSownb6wKe/xPPh0NdYirEa1ztNFzvMgWh9MZsm7CYreenG5HZLEw9U15zLEjCflkp97F4quQOiXUqXXp68n56ePi71fIxdevxKhAXckbCqGOPcSeGJb8L6cb6qX4HBVMO9MSkt4eyZ7wiI2SrSRNW5yjl2wqDRlOiqymx2umWchdNcOn7/5d3EOr75GBZ0fu1YtDgYFaWYNRcrhmGyQMOxVWB9nd1hK2atRr5qptJEzsNwnwpV96D0/sFW3CfO73EzHFIYD0kOBAIR5b0TeKXS51ggazCuRG22mF2WA3Z3jJmM+bEg8wj5psgiB6ahPeirC1bmwe4PhzGNYqq6+5itWqiuOGPeTjAMCnKG3XEZyUv9yAlggHm9WYN/cGN6mpmo8AZ5f7zzqBy3dh+MTw01sFQXEhXDIq6Hi2iiah/OWZ0xMlWDSQn2SLOthlxaiywRjAJFkpArZRkGUYzHDMZ7yw6/v3+jonhu+f2bTqU3Gkc3dVDHUnvCBhRhtV7bd3/IVazuZvepbdB23OTB6c0zx04cWA3FYoQVj8v12GZcn912d9ZgMOT1SYpxoW8aPePU1PH40BB1nyqWkhqYqRRbfYPVfV202pRQV5ufShV7yO3AW3Q5PPEWrHAYCTwO8WQt1bGwoNcdNfj9fkd/lz4Y5c2EhQ57HFzNWOneOYWqjrX3YCw48JHGxkzF0qfKxjzYElcuztgfiscL7iZrYTPmDXjdaGq0abPZirm7lZVV6tG1Y9x7buTpiPFVrg/FBMwFrIP5ZmulW431QLXUvjtstlk3KlFbtpjb+PDqaBN6+2mMCpeFzUXjwibzostvMDhC+W10u6LES5IUjUSj0WKxmMsVi4OQg3S3ANcZDMa2EXoZ0R07E1367Nnmhx7NDbi+tVarsRRb7S49671G5ZK7wwmurPjVCmXxjOoW7ozkcp1xZ9pFjvMbVnAbjGYhXUZnsaggDMOBO9MCp3NYLC+ej1AlFOoP7Zjvk5e+zMpGboKj6FK5lATxEFl1H/Y8ejQ5eX1NQGMLbYvcopGMMQIZ6GYwPm8KdIopgHGcFj9i8vuBgfNYgLdW+i39uFsWNq6Kg8Unj98s/f7780xX1wBuXabLhB4y3es93DTaImEhuupYqgufpZ/t9eytLSHmrz99+vSWjvWcEbiec642bD1v02rrSAqLoudagMMcutzY2OrC6oLF0r9ytji2enaGTQuViUjmQeuL33+b0hxmXnq6IBMe+q6BgXyXHi1ykPvKWr3UEsmJvZN7PWuTG3eDdx/eHnE4utbFvMUtjjFCbC6g+UDGRYXtzGWEF7nniyhE0awsIUJgCsGLbGNw9SQcLma6crXo4xcvxl+Max7rSp6uBOyVfwrTj/T3w5/5u0TuqBFczFpzcyzge9M9aSA5HIN3C2SHMQfK4KtPb69eMYLNBXIRORCWYzL6jUa4a4R2G+p3UACFBgY8Ps/AwEDX4Kurq1fQxMRET/TeZNJnssXHh4/Tni992Wgp2JXIhygm8AcynF5/xxWPOo9ZjjgYUp2Ieiad3r++s4T6DWOfxnCad2OD+adQf//gyurixqsFC3tj8Ks+W0TLa3P5LSHaJQnuwPnr9PrLeIHe6ya+rENfvnyZmLiCabpqkReerK4YNDuzus+ePEOiP9E/6Q/cZvsbJXMN1bHS4NrfCD19OuK4Y4YPWe4IysBpR/pHBvEFQzSQT8+Mhn6D1m9sM/TnsV8FCQ96Snj0emT0AN5kWBnIwCYmKJRs0aznsS4bLGaz0Y93I/2wEv2ry5RMsh1wXDtLEcRVtxba4mA+/7Q/9HgwbwndrTjyA/3w1+pdP1zvYFAjCCgXAsgScmgJLT+AlIMdsu4jhdaEw3gG9HqUBBHdYJdn9oSwJshoExlTl6loi27x0VzQt+XTZTwDJpOpS48n1vng7/pVrlvNqA9Y6fMtU9dAyIFUspHb+J1Dl+IfGSGa0EBIl8g7XHfX3KIDTCGD1mgg8zPjdyXrVVKKTjkU1OvvA+JWV0IfPIG+WMvlioKVCCYA4aslQMhyAn6PTVDF4wzMwj1TE+qDEzWiMyBm8ePkDlL0Ycl9fHyZTCbvE55B7Qc+Bt8dO4/fazIhC/p9mISsT7sGVaHK815cIKRw9lk4Ub/jo8MS1rpE0Ln1CZ2+i6yTAJEpATxCgnA4IWDTaGwoAZMJ7qqdUsRDbPWt2exhu9PMah87byvLbme9WOTQbwEqxqHklmqWUD7j8VgsOo8HhyJbeV9/Pl07PRWJy1QkLEXAmu0ThKiGj+6+1JGLicxEJsMGzojg7gVZw0tu674d5spw3JCST+uxZZbFiChdkp9xNYMrh5h0ub19ebl9KTtLnzkuFhc/C+iiZb3ek83WqH/JotHpBaG6FonjauN0GVzJRDGrT9x7arXals8Da6XFysR6NTs7oSMiRQlGRlC4pQQpEvcGJB4WSSYXOWqKD1h7MSEubGeQcJ8aogFUsd5IiGUVg3FBEmQxEBcCBUGW4ym9yefRQRkPQgXGilcCIr4LHPJmXFGZgh69L1GrRWtbO8GTnp6TL+aqIPd9fPmY+azOhdhid5NJqPKBsuiWRWsF5vrEHTVjze3r8DMGdbYahbm8fK0fIwlKihrU6aI6XS0D1ZA60NOGkBgobE2CUJEEsYw/FOyHKDQROPrgjm7Hl3BvBfd6etJ2IR6dOzl5qVorQVJNRVRJ4bAcKJclb9h2HheSRe5svCm20tmBPBLzwFOHdrMSxfVAtZqn/I1BDdci5XuMKOC9wwCgvEfnCXp8aHEsXvvKZZkXxXKhEjmtwosJk4+v7Xh8PO85mV0/FArxKK5cX2bRDoNB9sBzw4spuSqXvXzl3CtrAkLSwx21YAUp/w8MhFYWtMUsrLWFniFPPUpDeVKCmUiXjUazDCsllANCpFyuShJf5Sswlyl4n9ja8m3h4bmYnS05S+FqDlg6BUhVIkGdEW6CXSpUbVazzWuVEPQZbro5y6drCerFQOY4G8uKAd4DRmZwRfem+8Q9pDYxX9DHGhx8aJPscUk6/3wuCWUrwlafSATBBAU9sxeU32Ni7mT2y9dYCdqXSS/Y4cJIhK+4yzyuxpIJjRrzLMvv19BtUBzr8663xShfRuigGbMGTWfVqiTe0gNYhYgslflTW+Rc4it8RcaOg5TFoWBm9qRCVz210uzsKx3s5PFk2M1T89zDj7QHAc3XVhXikt0tuYElRKdZcTPOsNZqOEyuqNN16UPcW4eHUSlMzUoqNHWZ7oUAj7Gfc3tcLIcFQYQfkix0KJASmWWrUCgI1RLy12wmEczodIMZ5JVatphlHkB/IJQrlUOYqSwLMl5SqRxKQbpkVLAoBQ1mc0V0JiE/NTOkYlXfsxWBwQvAcvKo2pGCAxFsOBWsWqZWy3gSmdmeclyMpGdvZtdnPYmELovKpqbT9WQyWYoIxERSKAuCxAd4iY/Hkb5TwuR71lkrWPtRHAf/YyUjK3+6cMbsvNlZ/UDAihTiAVsBWFI8ULUpWFmkk2gtUZt9fXL6+d1n0qlv5z6aVRIN2ovtkpRKpYRqXKrGzs1SwY0IEFKFIaWzVrEqdPxa1IczQHi3KKFEuyq1CbAPkQxlSYjz57y9KlXsQkEKCKngji8XrdX4qI//yIg+l0rmkg0dRhnXQTWej0YjkWoqVWCFg2C3YfwB46de2Sajw65Os8uMKQWrx0bh9n3pTRhxutfTXshoST1ZnxolnoWCjbcVqqXz09NytVLFgF5q+3IblOL2drxqg2MxXGsP4OoVV2nsCdH2MESKXcrRAo9Lz4JYOY9fY2ALV7FENcVGbNaiP8ZCK4aQCxQsAkvee3y+qO4eH0ZEQbR5+ViEF+xhNkKVajosGEgYgKDBERlZl+dlmZfKD7+x2eKibJcLVqvcIYidR2QtiAYp+3p+jEWpHKKnh2Z4XwOXz5dAbJSRI8piVapK9hirYuJitVwW7RFk2EhVRI0UiQQCfMzptBek0sdSpFCw45OG0QqRghsDATGzEOYupqfZKL2KpdnnU8kfOBEBT0TwYYrsxFIEHrRhCqaE+Ckfhxvs1XjZdoq2VBDEktP5uWzH8IfTWcbxYrxYQGIqu2UhTt5sjL6rMVO2edFg9nihncNYIY1b02gEpgvMmjlK2t8NLSpm9Ts7+NKnJlFGpgDe3yPjSIJd0SlyGIyFrgs+U93XEkctbx6Oxodt1r4yjMWogAUqYGF2pYIj3aO9pqjRpljrVbSDqw2dBVXMFuoYan5qqwQYE3aOsXZBjgcwFMOoLuNfm6MBgKiXA3Ar+sDeteVOpCxVMszMExUzFlF1spYoIoOkknDkDkYwxu6KvhoqOR1GE+7eYrhh8WrDtrUV5aP8VpT1Kzto7jgBdacVDSqTyPI7KshbGlpBtpd5CQORlcND67lmbvLm9slU55ujo2ncAIDm31BESVc08MZivg2XrX1SfWLjMpoFDE1/4KgFll3Y4eUCwtjtDlS/52neWerRIDlUD618tdlT/MbkKIYyMJjRO6eZm6MZAGXQMb2/dHOz3PkMPSJTXPNmHsNHmKQCl9IS15aW0nPPRp/hX5ghclptATZuz36tJJx6zoETkNMRO3axWq2W2fhr/YegCVihVm77IclKk09ERCPFj7pvbg+GMEx6dDQUltBepQjGdcPteH/EbAUs3Nt2l5aWRnd3l/ah09M5zblUP+ECz/ZageAI5UZbTJjeeggOgqui8PDVUQtxexWJlCff0UAjmWjy0ejMzC0m7mjODoNsy1Yag8MYJim2t/mGjZ0qxppqA9TSo32YGXaGwQ75JjfIiIpWkUXqOj9naZFFcvl8ZnIS5j7kqe+mORygx6x92KNZQ/MjtC4GA2btu7sX0O5Fx26v2Yp2Ql/3YaBhb1fxoaq2R48waIQhSgyP7O/3ma1sYkiRJMU0p3On6VOKCDaTRs/YVqbS+s5tuEYLV6zYt7lvbZ9+c+7EsWjCkGZP2VSuugpMHVBnM0dsjvbRs176em8PU1z4ZPdCCS5VbfsYqcEqMjpUb7pPY8YeyfLp/bXXa2uvX9/cvL55TZtra/t4LNEG3P769dLrpf3evv39taXdDjr9i92l0dHJ/UdrGEVcW6KhRPhBnb6qL0WDrQAAKfOR7Gu8694dvsAkNY2Z0sUYuyBj590svJvrRaAxAHC9Zgi4QTfQu+V3N8uKbt5dLGNy+eAAT7fzt7cztx23T5RbxzLmnZm/umd2h5VZ6w7wK2s28DIzPEOf0nt1Ept2VJcyn9gy10lzGdQAGBlZBg+m3d2bXTRsFep2eXke9/n5dYwNz2P2m6bAn9SFt+BiawiUw/7MIjx2itD8fGOu+qu1gSoamUxRExrwVHPhZf4CSwZo9rvjyTyjYkBMQFEXjvwkFhypqmkxS8uSRWXF4j7Fytpa0zQLTLaE+CBvIioopsgxHRfKWkWCwTNuUIe6PIPs9LNLFuuLEn60ZFHBqq+kpGkNNiKOJq5Eanc9erHR3T2Mx9fLKJXVD0pM/YewvrvA86slSd+upGxy4n/GWn+87pSA/mBJ0q848c/W2LQ68U+spXB948e/EPL/AFbzAq4/WpGkpIafSRB/viLpZ6zVWGbDVun+2Fo/nbceFgf9XEv8fmzVsRprh3+wpvl/F+thUdL/K2vV0+mvrAD/tXT6/ZbYGlv/yArwOtb/APsax/1DBP4JAAAAAElFTkSuQmCC \u0026#34;39255\u0026#34;)| | :- | -: | Inline text box ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAAAhCAYAAAAYlQP6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAmlJREFUeJztm82R4jAQhdtbkwKQBFlwdBCcuJqLuREAVXYYJgTfTBKYIMAE0XPYlapb/sEwkmFr3lflGiH081rzBroZQwSAIPr3k9+qAnwMX6bBDE/8dqIooj/vFgE+CxgCKGAIoIAhgAKGAAoYAiieNkSe5xRF0eB1Op28iszznPI8t4/NPpfLxes+z+Lq+l/WHuLjXyG22y3tdrt3y2gRUtc7Y37aEGmaEjMTM1Nd17bf9DEzrVYrryLB9PAr1HXN9Pdj787nsyyzzxMRV1XVOdf0V1Vl+5qm4SRJ1HwiUvNkm4i4KIqWhqZpWmv0xdCnw6VPV8iYp4DEvzBeWmDIEO7BdP3SzJg4jqUgO+aRIR6tLw976JAf6XDp0xUy5ikIZgj5VznUJ0TYyxyUwRxQlmWtOUmS2D73oOU4Odes5+7zSIeLqyt0zFNARBwkqTyfz7ZtKoL5fG77ZHVQVZWaezgcRu+z2Wxse71eExFRWZZ0v9/VHmma2vZ+v1fjfOggmi7m0AQxxPV6HT1WJqBxHNNyufSi4Xa72TUls9msNcaHjk+I2QdBy84kSVT1YS55ALLWLsuSjsejl70Xi4VdUyJfFcwYnzreGbNPXnrP6csh3EqAWSd4XeNkQiYze9PflUPI996f5BBjdLi4ukLHPAUUssroypbJybjjOFaBmzldyaI87K51zSXLvLFVxhgdLl26QsZs5sn4fBPUEMzDNXlRFINZuTxEd40+c7zyOcQzOly6YgsV81SGsPdUMm6h+/XgFjrQAoYAChgCKGAIoIAhgAKGAAoYAihgCKCAIYAC3/4GAPTzDQmhcZbTzxIuAAAAAElFTkSuQmCC) is here and inline ellipse ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGIAAAAgCAYAAADpNa1pAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAARFJREFUaIHtmkkSwyAMBLH//2dyCS5FQeySIJk+2ZilPH1CEALYgst5/ei8PsctD6uFs4HHuJeH6xLjUM9JY4GvdHcLvBdB0NLsVkz2kfLpobeSkTOV5ejgJ+1/Cb4GE9Oda88AhN/IiJSWTjEEhD8KkVLMuvQRAhZSE5JrhABFJCFcBCQYkJNBRUCCIVxGeoMEB6iMOz1Bgj0087vQDxgCEZsAEZsAEZvwiCjU4oESNHPsI5yQ9hEJyDCgtrNOQIYirbUmCoQsZKT6yoGQCVacR3BwQteI1gldDkhhWJ5ZS+AWx7tpar6ZwQI/KWZ18KqTCRxxyy/hddvPs64xbKImcbJc45LJqQWmmsRT/wt48wLi1GAlGhDvyAAAAABJRU5ErkJggg==) is here. New section that starts from a new page is here. It has portrait orientation and margins. # \u0026lt;a name=\u0026#34;_toc76372690\u0026#34;\u0026gt;\u0026lt;/a\u0026gt;**Fields** Merge field «FirstName» Page number 5 Hyperlink [Aspose.com](http://www.aspose.com) TOC [Font Formatting\t1](#_toc76372684) [Paragraph Formatting\t1](#_toc76372685) [Non-English Characters\t2](#_toc76372686) [Tables\t2](#_toc76372687) [Lists\t2](#_toc76372688) [Images\t4](#_toc76372689) [Fields\t5](#_toc76372690) # **Form Fields** Edit \u0026lt;a name=\u0026#34;text1\u0026#34;\u0026gt;\u0026lt;/a\u0026gt;test text Checkbox \u0026lt;a name=\u0026#34;check1\u0026#34;\u0026gt;\u0026lt;/a\u0026gt; Combobox \u0026lt;a name=\u0026#34;dropdown1\u0026#34;\u0026gt;\u0026lt;/a\u0026gt; # **Footnotes and Endnotes** This line has a footnote at the end.[^1] This line has an endnote at the end.[^2] [^1]: Footnote 1. [^2]: Endnote 1. Summary GroupDocs.Markdown for .NET helps you convert a wide range of document formats into semantic Markdown that is ready for LLM + RAG systems. It preserves document structure and meaning, runs on-premise, and supports common enterprise formats — making it a practical choice for organizations that need to prepare large document collections for AI consumption.\nLearn more Product home: https://products.groupdocs.com/markdown/net/ Documentation: https://docs.groupdocs.com/markdown/net/ License information: https://about.groupdocs.com/legal/ Downloads: https://releases.groupdocs.com/markdown/net/ Support \u0026amp; feedback For questions or technical assistance, please use our Free Support Forum — we’ll be happy to help.\n","permalink":"https://blog.groupdocs.com/markdown/groupdocs-markdown-for-net-first-public-release/","summary":"Introducing a .NET API to export popular document formats to clean Markdown.","title":"GroupDocs.Markdown for .NET — First Public Release"},{"content":"We’re happy to announce the release of GroupDocs.Merger for .NET 25.9, available as of September 2025.\nThis release has some fixes and features.\nFixes and features [Fix] SetLicense method does not support setting license from the current directory. (MERGERNET-2016) [Feature] Automatically create PDF document logical structure tags. (MERGERNET-1990) How to get the update You can get the latest version from NuGet or download it directly from the GroupDocs website.\nNuGet Choose the package for your target platform:\n.NET 6 Package .NET Framework 4.6.2 and .NET Standard 2.1 Packages Direct download Download assemblies for both .NET Standard and .NET Framework from the GroupDocs.Merger for .NET 25.9 page. Download cross-platform assemblies for .NET 6.0 from the GroupDocs.Merger for .NET 25.9 Cross-Platform page. Learn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/merger/groupdocs-merger-for-net-25-9/","summary":"GroupDocs.Merger for .NET 25.9 is here.","title":"GroupDocs.Merger for .NET 25.9 – September 2025 Release Highlights"},{"content":"We are pleased to announce the release of GroupDocs.Redaction for .NET 25.12, published in December 2025. In this release, we addressed several important issues and introduced valuable improvements to Presentation and WordProcessing document redaction.\nFixes and enhancements [Enhancement] Enhanced support for Presentation formats with newly added compatibility for POTM, POTX, and OTP files. (REDACTIONNET-696) [Bug] Fixed an issue where POTM files could not be opened after redaction. (REDACTIONNET-691) [Bug] Resolved a problem causing missing color redactions in WordProcessing documents when required fonts were not installed. (REDACTIONNET-693) [Bug] Corrected the incorrect definition and handling of Presentation output formats, ensuring consistent output. (REDACTIONNET-695) What’s New? This release brings important improvements and fixes focused on enhancing stability and expanding Presentation format support. The following changes have been implemented:\nExtended Presentation format support: GroupDocs.Redaction now works with POTM, POTX, and OTP files, ensuring a broader range of Presentation documents can be processed and redacted.\nCorrect handling of Presentation output formats: The logic responsible for defining and generating Presentation output formats has been corrected, resulting in stable and expected output files.\nReliable color redactions in WordProcessing documents: Color redaction issues caused by missing system fonts have been fixed, ensuring consistent rendering across different environments.\nHow to get the update NuGet – Upgrade to the latest GroupDocs.Redaction for .NET package via NuGet Direct Download – Download GroupDocs.Redaction assemblies from the GroupDocs.Redaction for .NET 25.12 page Learn more Full Release Notes Documentation GroupDocs.Redaction Free Support Forum ","permalink":"https://blog.groupdocs.com/redaction/groupdocs-redaction-for-net-25-12/","summary":"GroupDocs.Redaction for .NET 25.12 release notes.","title":"GroupDocs.Redaction for .NET 25.12 – December 2025 Release Notes"},{"content":"We’re pleased to announce the release of GroupDocs.Redaction for .NET 25.9, published in September 2025. GroupDocs.Redaction has been updated with support for .NET 6.0.\nFixes and enhancements [Enhancement] .NET 6.0 support. (REDACTIONNET-667) GroupDocs.Redaction Now Supports .NET 6.0 We are excited to announce that GroupDocs.Redaction has been updated with support for .NET 6.0. This enhancement ensures better compatibility, improved performance, and wider flexibility for developers working with the latest .NET applications.\nWhat’s New? With this release, you can now build and run your redaction solutions using .NET 6.0, alongside the already supported .NET Framework and .NET Core versions. This update makes it easier to integrate GroupDocs.Redaction into modern projects while taking advantage of long-term support provided by Microsoft.\nWhy This Matters Modern development – leverage the latest .NET 6.0 features in your applications.\nCross-platform support – run redaction workflows smoothly on Windows, Linux, and macOS.\nFuture-ready – stay aligned with Microsoft’s newest framework versions.\nHow to get the update NuGet – Upgrade to the latest GroupDocs.Redaction for .NET package via NuGet Direct Download – Download GroupDocs.Redaction assemblies from the GroupDocs.Redaction for .NET 25.9 page Learn more Full Release Notes Documentation GroupDocs.Redaction Free Support Forum ","permalink":"https://blog.groupdocs.com/redaction/groupdocs-redaction-for-net-25-9/","summary":"GroupDocs.Redaction for .NET 25.9 release notes.","title":"GroupDocs.Redaction for .NET 25.9 – September 2025 Release Notes"},{"content":"We’re happy to announce the release of GroupDocs.Viewer for .NET 25.8, available as of August 2025. This minor release delivers one bug fix and one improvement.\nFixes and enhancements [Fix] Exception during PDF to HTML conversion. (VIEWERNET-5378) [Enhancement] Support freeze top row while rendering Spreadsheet documents to HTML. (VIEWERNET-5475) How to get the update NuGet – Upgrade to the latest GroupDocs.Viewer for .NET package via NuGet. Choose the package for your target platform: Cross-platform .NET 6 Package or Windows-only .NET Framework 4.6.2 and .NET 6 Package Direct Download – Download assemblies for both .NET and .NET Framework from the GroupDocs.Viewer for .NET 25.8 page Learn more Full Release Notes Documentation GroupDocs.Viewer Free Support Forum ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-net-25-8/","summary":"GroupDocs.Viewer for .NET 25.8 is here.","title":"GroupDocs.Viewer for .NET 25.8 – August 2025 Release Highlights"},{"content":"We’re excited to introduce GroupDocs.Markdown for .NET, a new addition to the GroupDocs product family. GroupDocs.Markdown for .NET is a document processing API that enables you to export PDF, Word, Excel, and other formats to Markdown for seamless integration with the generative AI ecosystem.\nWhy Markdown? Markdown is lightweight, human-readable, and widely supported in developer workflows, content management systems, and generative AI pipelines. With direct export to Markdown, GroupDocs.Markdown for .NET helps you:\nAutomate document-to-Markdown conversions inside .NET applications. Prepare structured, plain-text content suitable for AI processing. Simplify content migration to Git-based workflows and static site generators. Features Export multiple document formats: Convert popular file types (PDF, DOCX, XLSX, EPUB, and more) to Markdown. Advanced Markdown formatting: Accurately export headings, paragraphs, lists, tables, links, images, blockquotes, and code blocks. Flexible image handling: Export images separately or embed them directly into the Markdown file. Local processing: No cloud or internet connection required. All processing happens securely on your machine. Intuitive API design: Simple, developer-friendly API created with ease of use in mind. Cross-platform support: Works on Windows and Linux with both .NET and .NET Framework assemblies included in the NuGet package. Supported File Types GroupDocs.Markdown supports conversion from the following formats:\nPDF Documents Microsoft Word (DOCX, DOC) Microsoft Excel (XLSX, XLS) Ebooks (EPUB, MOBI) Plain Text and Web files Usage Common scenarios for exporting documents to Markdown.\nExport PDF to Markdown Convert a PDF into clean Markdown in just a few lines of code. By default, images are embedded in the output file.\n// Import the namespace using GroupDocs.Markdown; // Set the license (optional) License.Set(\u0026#34;GroupDocs.Markdown.lic\u0026#34;); // Instantiate the converter var converter = new MarkdownConverter(\u0026#34;business-plan.pdf\u0026#34;); // Convert and save output to file converter.Convert(\u0026#34;business-plan.md\u0026#34;); The following screenshot shows input PDF file and output Markdown.\nSave images to a folder This example shows how to convert a DOCX file to Markdown while saving images to a separate folder.\n// Import the namespace using GroupDocs.Markdown; // Set the license (optional) License.Set(\u0026#34;GroupDocs.Markdown.lic\u0026#34;); // Instantiate the converter var converter = new MarkdownConverter(\u0026#34;annual-review.docx\u0026#34;); // Set image export strategy and output folder var convertOptions = new DocumentConverterOptions(); convertOptions.ImageExportStrategy = new ExportImagesToFileSystemStrategy(\u0026#34;./images\u0026#34;); // Convert and save output to file converter.Convert(\u0026#34;annual-review.md\u0026#34;); The following screenshot shows input DOCX file and output Markdown. The images are saved as a separate external resources in the ./images folder.\nRequirements .NET Framework 4.6.2+ (Windows) .NET 6.0+ (Windows or Linux) License See detailed legal information, including terms of use, copyright, EULA, and privacy policy:\nhttps://about.groupdocs.com/legal/\nSupport For questions or technical assistance, please use our Free Support Forum.\nRoadmap \u0026amp; Availability The very first version of our package is already built and going through internal testing, including unit, integration, and manual API checks. We’re making sure everything works smoothly so you can enjoy a reliable and powerful experience right from day one.\n🚀 Once the final reviews are complete, we’ll release the package on NuGet and the GroupDocs Releases website.\n👉 Want to be the first to know when it’s live? We’ll post a dedicated announcement here on the blog! In the meantime, you can also subscribe for updates via our Free Support Forum — check out the GroupDocs.Markdown Product Family category or the GroupDocs.Purchase category if you have sales-related questions.\n","permalink":"https://blog.groupdocs.com/markdown/groupdocs-markdown-for-net-announce/","summary":"Introducing a .NET API to export popular document formats to clean Markdown.","title":"Announcing GroupDocs.Markdown for .NET"},{"content":"We’re happy to announce the release of GroupDocs.Comparison for .NET 25.8, available as of August 2025.\nThis release delivers stability improvements and fixes that enhance reliability and performance.\nFixes and enhancements [Fix] License is not applied when comparing CAD documents. (COMPARISONNET-4507) [Enhancement] Enhance CAD document preview. (COMPARISONNET-4508) [Enhancement] Improve CAD comparison performance. (COMPARISONNET-4459) How to get the update You can get the latest version from NuGet or download it directly from the GroupDocs website.\nNuGet GroupDocs.Comparison for .NET 25.8\nDirect download Download assemblies for both .NET and .NET Framework from the GroupDocs.Comparison for .NET 25.8 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-for-net-25-8/","summary":"GroupDocs.Comparison for .NET 25.8 is here.","title":"GroupDocs.Comparison for .NET 25.8 – August 2025 Release Highlights"},{"content":"We’re excited to introduce GroupDocs.Conversion for .NET 25.8, packed with powerful features, performance enhancements, and essential bug fixes to deliver more reliable and optimized document conversions. You\u0026rsquo;ll find the full release notes here.\nMajor Features \u0026amp; Enhancements SVG Cropping Support – You can now crop visible SVG content during conversion, giving you tighter control over layout and cleaner output. Custom Email Attachment Icons – Want to include custom icons for email attachments during conversion? Use the new UseDefaultAttachmentIcons and AttachmentIcons options. Expanded SVGZ Conversion Support – Convert SVGZ files seamlessly into word processing, presentation, and spreadsheet formats. Extended Format Coverage – New conversion options include SVG/SVGZ to EPS and TeX (LaTeX). Plus, Web-to-PageDescriptionLanguage conversions are now faster thanks to eliminated intermediate steps. Performance Improvements – Enjoy significantly faster application startup and more responsive initialization. Key Bug Fixes We’ve addressed a range of issues to ensure smoother, more reliable conversion experiences:\nResolved low image quality when converting certain SVGs to raster formats. Fixed output inconsistencies in PDF to WordProcessing conversions—now correctly outputs DOCX/DOC formats. Eliminated exceptions during PDF to JPEG conversion processes (errors like GroupDocsConversionException and ObjectReferenceNotSet). Corrected formatting problems in RTF to PDF conversions. Fixed exceptions thrown in SVGZ to WordProcessing conversions :contentReference. Fixed “Index was outside the bounds of the array” errors when converting DWF to images. Fixed an issue where the SetLicense method could not locate the license file in the current directory. Enhanced compatibility for DOC to DOCX conversions :contentReference. Public API \u0026amp; Breaking Changes Here are the key API updates and new features:\nSvgLoadOptions Class – Now includes CropToContentBounds, allowing SVGs to be tightly cropped around visible content for cleaner conversion output: var loadOptions = new SvgLoadOptions { CropToContentBounds = true }; EmailLoadOptions Enhancements – Two new properties: UseDefaultAttachmentIcons – Toggle default attachment icons. AttachmentIcons – Provide custom icons for specific attachment types: using (var converter = new Converter(source, loadContext =\u0026gt; new EmailLoadOptions { UseDefaultAttachmentIcons = false, AttachmentIcons = new List\u0026lt;AttachmentIcon\u0026gt; { new AttachmentIcon(\u0026#34;jpg\u0026#34;, File.ReadAllBytes(\u0026#34;jpeg_icon.png\u0026#34;)), new AttachmentIcon(\u0026#34;pdf\u0026#34;, File.ReadAllBytes(\u0026#34;pdf_icon.png\u0026#34;)), new AttachmentIcon(\u0026#34;docx\u0026#34;, File.ReadAllBytes(\u0026#34;word_icon.jpg\u0026#34;)), new AttachmentIcon(\u0026#34;_default\u0026#34;, File.ReadAllBytes(\u0026#34;not_found_icon.png\u0026#34;)) } })) { var options = new PdfConvertOptions(); converter.Convert(\u0026#34;converted.pdf\u0026#34;, options); } How to Update NuGet – Upgrade to the latest GroupDocs.Conversion for .NET package via NuGet. Choose the package for your target platform: .NET 6 Package or .NET Framework 4.6.2 Package Direct Download – Download assemblies for both .NET and .NET Framework from the GroupDocs.Converison for .NET 25.8 page Learn More Check the full release notes for a detailed breakdown of each fix and feature. Explore the API documentation for samples and usage guidance. Need assistance? Visit our free support forum—we’re here to help! Thanks for following along! Be sure to check back each month for the latest updates, developer tips, and insights into GroupDocs.Conversion for .NET.\n","permalink":"https://blog.groupdocs.com/conversion/groupdocs-conversion-for-net-25-8/","summary":"GroupDocs.Conversion for .NET 25.8 introduces enhanced SVG support, including cropping of visible content and expanded SVGZ format conversions, along with customizable email attachment icons, performance optimizations, and numerous bug fixes for more reliable and flexible document conversions","title":"GroupDocs.Conversion for .NET 25.8 - August 2025 Release Highlights"},{"content":"We’re happy to announce the release of GroupDocs.Total for .NET 25.7, available as of August 2025.\nThis release updates several GroupDocs products, improves dependency handling, and introduces new documentation on running inside Docker.\nWhat’s new in this release The following products were updated in this version:\nGroupDocs.Conversion for .NET (25.6 → 25.7) GroupDocs.Viewer for .NET (25.6 → 25.7) GroupDocs.Comparison for .NET (25.6 → 25.7) GroupDocs.Merger for .NET (25.6 → 25.7) GroupDocs.Metadata for .NET (25.6 → 25.7) GroupDocs.Editor for .NET (25.5 → 25.7) GroupDocs.Parser for .NET (25.2 → 25.7) Fixes and enhancements [Fix] GroupDocs.Editor: Corrected inaccurate page numbering when saving PPTX files. (TOTALNET-206) [Enhancement] Dependencies: Removed reliance on external Autofac assemblies. (TOTALNET-276) [Enhancement] Dependencies: Eliminated dependency on Microsoft.Win32.Registry, simplifying integration. (TOTALNET-277) Documentation We added a new guide: Running in Docker. It explains how to install Linux dependencies and run GroupDocs.Total for .NET inside a Docker container.\n👉 For complete details about each product, check the release notes.\nHow to get the update You can get the latest version from NuGet or download it directly from the GroupDocs website.\nNuGet Choose the package for your target platform:\n.NET 6 Package .NET Framework 4.6.2 Package Direct download Download assemblies for both .NET and .NET Framework from the GroupDocs.Total for .NET 25.7 page.\nLearn more Full Release Notes Documentation Free Support Forum ","permalink":"https://blog.groupdocs.com/total/groupdocs-total-for-net-25-7/","summary":"GroupDocs.Total for .NET 25.7 is here with updates across multiple products, dependency simplifications, and new Docker documentation.","title":"GroupDocs.Total for .NET 25.7 – August 2025 Release Highlights"},{"content":"Table of contents Overview Use Cases Conclusion See Also Get a free trial Overview Managing document metadata across various file formats can be challenging. GroupDocs.Metadata for .NET simplifies this by providing a tagging system to unify common metadata properties (e.g. Title, Author, Created Date) under tags. In this how-to guide, we’ll explore how to find, add, copy, update, and remove metadata using tags with GroupDocs.Metadata for .NET.\nGroupDocs.Metadata uses tags to label important metadata properties in a file, regardless of the document’s format or metadata standard. Each tag belongs to a category that groups related tags for easier discovery. For example: Content Tags: Describe the content of a file (e.g. language, genre, subject, rating) Person Tags: Identify people or organizations related to the content (e.g. document creator, editor, company) Time Tags: Represent timestamps in the file’s lifecycle (e.g. creation date, last modified time, print date) (Other categories include Legal, Origin, Tool, etc., each grouping relevant tags.) Using these tags, you can search and manipulate metadata in a unified way across Word documents, PDFs, images, and more. For instance, a “Author” or Creator tag in the Person category will match the author property in a Word document or a PDF without you needing to know the format-specific metadata field name. This makes tags extremely useful for organizing files and automating metadata management tasks.\nUse Cases In this section, we will introduce different use cases that highlight the practical applications.\nFind Metadata Properties by Tag One common use case is finding metadata entries in a file by their tag. This is particularly helpful for improving searchability – you can fetch specific info from any document without worrying about its format.\nSteps Load the file into a Metadata object. Find properties using FindProperties() with a tag-based predicate. You can filter by a specific tag or an entire category. Iterate through results to inspect or use the metadata. // Load the source document (e.g., a PowerPoint file) using (Metadata metadata = new Metadata(\u0026#34;source.pptx\u0026#34;)) { // Find properties tagged as \u0026#34;last editor\u0026#34; or \u0026#34;last modified time\u0026#34; var properties = metadata.FindProperties(p =\u0026gt; p.Tags.Contains(Tags.Person.Editor) || p.Tags.Contains(Tags.Time.Modified)); // List the found properties and their values foreach (var property in properties) { Console.WriteLine($\u0026#34;Property name: {property.Name}, Value: {property.Value}\u0026#34;); } } Adding Metadata Properties by Tag Sometimes a file might be missing certain metadata (e.g. no “Last Printed Date” recorded). Using GroupDocs.Metadata, you can add a metadata property by specifying a tag, and the API will place it in the appropriate metadata package if the format supports it.\nSteps Load the file into a Metadata object. Call AddProperties() with a predicate to identify where to add, and provide the new property value. Check the return value to see how many properties were added. Save the document (if you want to persist the changes). For example, the code below adds a “Last Printed” date/time to a document if it doesn’t already have one:\nusing (Metadata metadata = new Metadata(\u0026#34;source.pdf\u0026#34;)) { if (metadata.FileFormat != FileFormat.Unknown \u0026amp;\u0026amp; !metadata.GetDocumentInfo().IsEncrypted) { // Add a \u0026#34;Last Printed\u0026#34; date property if it\u0026#39;s missing int affected = metadata.AddProperties( p =\u0026gt; p.Tags.Contains(Tags.Time.Printed), new PropertyValue(DateTime.Now)); Console.WriteLine(\u0026#34;Properties added: \u0026#34; + affected); metadata.Save(\u0026#34;output.pdf\u0026#34;); } } Here we use Tags.Time.Printed – the tag for “Printed” date under the Time category. The predicate p.Tags.Contains(Tags.Time.Printed) targets the known Printed metadata property. If the property is missing, AddProperties will add it with the value we provided (DateTime.Now in this case). The method returns the count of properties added (affected), which we output. Finally, we save the file to persist the new metadata.\nCopy Metadata Properties by Tag Sometimes, you may want to copy only specific types of metadata, such as author names or creation dates. The CopyTo method allows you to use a predicate to filter the properties to be copied. Here\u0026rsquo;s how to copy only metadata related to authors or creation dates:\nSteps Load both the source and the target files using the Metadata class. Use the CopyTo method to transfer metadata from source to target. Save the target file to apply the copied metadata. using (Metadata sourceMetadata = new Metadata(\u0026#34;source.xlsx\u0026#34;)) using (Metadata targetMetadata = new Metadata(\u0026#34;target.pptx\u0026#34;)) { // Copy only Author (Creator) and Creation Date metadata properties sourceMetadata.CopyTo(targetMetadata, p =\u0026gt; p.Tags.Contains(Tags.Person.Creator) || p.Tags.Contains(Tags.Time.Created)); // Save the changes targetMetadata.Save(); } In this example, only metadata with tags for Creator (author name) and Created Date will be copied from the Excel file (source.xlsx) to the PowerPoint presentation (target.pptx). This selective copying gives you precise control over your metadata, making it easy to ensure your documents only contain exactly the metadata you want.\nUpdating Metadata Properties by Tag Beyond adding new metadata, you often need to update existing metadata values (for instance, correcting an author name or standardizing dates). GroupDocs.Metadata provides the SetProperties() method for this. It uses tags to find the target properties and updates their values. If a targeted property is missing, SetProperties can add it – effectively combining update and add in one step.\nSteps Load the file into a Metadata object. Call SetProperties() with a tag-based filter and the new PropertyValue. Inspect the returned count of affected properties (updated or added). Save the changes to file if needed. For example, suppose we want to update the creation date and modified date of a document to the current date/time (this could be used to reset or standardize timestamps):\nusing (Metadata metadata = new Metadata(\u0026#34;source.pdf\u0026#34;)) { // Update all \u0026#34;Created\u0026#34; or \u0026#34;Modified\u0026#34; date properties to now int affected = metadata.SetProperties( p =\u0026gt; p.Tags.Contains(Tags.Time.Created) || p.Tags.Contains(Tags.Time.Modified), new PropertyValue(DateTime.Now)); Console.WriteLine(\u0026#34;Properties updated or added: \u0026#34; + affected); metadata.Save(\u0026#34;updated.pdf\u0026#34;); } In the predicate, Tags.Time.Created and Tags.Time.Modified are tags for the creation date and last modification date respectively. The code will find any metadata properties marked with either tag and set them to DateTime.Now. If, say, a Created date property didn’t exist in the file’s metadata, the library will add it (because it’s a known standard property for that format)\nRemoving Metadata by Tag For privacy or compliance, you may need to remove certain metadata (e.g. author names or personal info) from documents. Tags make it easy to target and remove such metadata across different formats. The RemoveProperties() method accepts a predicate like the others, and will strip out any matching metadata entries.\nSteps Load the file into a Metadata object. Call RemoveProperties() with a tag-based predicate identifying properties to remove. Review the count of removed properties returned by the method. Save the file to apply changes. using (Metadata metadata = new Metadata(\u0026#34;source.docx\u0026#34;)) { // Remove properties that are tagged as Creator or Editor, or any string containing \u0026#34;John\u0026#34; int removedCount = metadata.RemoveProperties(p =\u0026gt; p.Tags.Contains(Tags.Person.Creator) || p.Tags.Contains(Tags.Person.Editor) || (p.Value.Type == MetadataPropertyType.String \u0026amp;\u0026amp; p.Value.ToString().Contains(\u0026#34;John\u0026#34;)) ); Console.WriteLine(\u0026#34;Properties removed: \u0026#34; + removedCount); metadata.Save(\u0026#34;cleaned.docx\u0026#34;); } This predicate combines multiple criteria: any property tagged as Creator or Editor (both fall under the Person category) will be removed, and additionally any string metadata that contains \u0026ldquo;John\u0026rdquo; in its value will be removed. In a real scenario, you might use such logic to cleanse documents of personal data (like author names or client names).\nConclusion In this article, we demonstrated how GroupDocs.Metadata for .NET’s tagging feature allows you to add, copy, find, update, and remove metadata in a unified way across many document types. By leveraging tags like Content, Person, Time, etc., you can build workflows that organize files by consistent metadata, improve searchability (find all files by author or date, for example), and automate document categorization or cleanup.\nSee Also GroupDocs.Metadata for .NET Documentation GroupDocs.Metadata for .NET Product Overview GroupDocs.Metadata for .NET GitHub Examples GroupDocs.Metadata for .NET Release Notes Get a free trial You can download a free trial version of GroupDocs.Metadata for .NET from releases.groupdocs.com. You can also acquire a temporary license to try all features and functionalities without restrictions from here.\n","permalink":"https://blog.groupdocs.com/metadata/how-to-work-with-tag/","summary":"Explain how to work with Metadata tags using GroupDocs.Metadata for .NET","title":"How to Work with Metadata Tags"},{"content":"Why Compare Word Documents? (Real-World Scenarios) Think of comparing Word documents like having a super-smart assistant that can instantly spot every tiny change between two documents. Whether you\u0026rsquo;re a lawyer reviewing contracts, a student checking essay revisions, or a business owner tracking document changes, document comparison saves you hours of manual work and eliminates human error.\nWhen you absolutely need Word document comparison:\nLegal professionals: Compare contract versions and track negotiations in legal documents Content creators: Review document revisions and editorial changes with precision Business teams: Analyze proposal updates, policy modifications, and version control documents Students \u0026amp; researchers: Track thesis changes, citation updates, and collaborative editing Quality assurance: Verify document accuracy across versions using document comparison software What makes this tutorial perfect for beginners: We\u0026rsquo;ll show you automated Word document comparison - no more squinting at documents trying to find tiny changes. Our document comparison tool does all the hard work and gives you a beautiful comparison report showing exactly what changed, where it changed, and how it changed.\nBefore We Start: Super Easy Setup Install the Document Comparison Tool (Takes 30 Seconds!) Think of this like downloading a specialized app that\u0026rsquo;s built specifically for comparing documents. We need GroupDocs.Comparison - a professional document comparison software that makes file comparison effortless.\nSimple installation (choose one method):\nOn-Premise Solution (Recommended for most users)\npip install groupdocs-comparison-net Press Enter and wait. Done! The comparison tool is now ready to use.\nWhat you just installed:\nProfessional document comparison engine: Industry-grade difference checker and change detection Multi-format document support: Word docs (.docx, .doc), PDFs, Excel files, and more document types Customizable comparison settings: You control what gets compared and how with this powerful text comparison tool Practical Word Document Comparison Examples Example 1: Basic Word Document Comparison (Perfect for Beginners) Perfect for: Anyone who needs to quickly compare two documents and spot differences between Word files\nLet\u0026rsquo;s start with something simple - comparing two Word documents and generating a report that highlights all the differences. This is like having a highlighter that automatically marks every change, making it the perfect document diff tool.\nimport groupdocs.comparison as gc def compare_basic_word_documents(): \u0026#34;\u0026#34;\u0026#34; Compare two Word documents and generate a simple difference report Perfect for: Quick document reviews, version checking, text comparison \u0026#34;\u0026#34;\u0026#34; # Update with your actual file paths source_doc = \u0026#34;contract_v1.docx\u0026#34; # Original document target_doc = \u0026#34;contract_v2.docx\u0026#34; # Modified document output_doc = \u0026#34;comparison_report.docx\u0026#34; # Report with highlighted changes try: # Initialize the comparison engine with gc.Comparer(source_doc) as comparer: # Add the document to compare against comparer.add(target_doc) # Generate the comparison report comparer.compare(output_doc) print(f\u0026#34;✅ Word document comparison completed successfully!\u0026#34;) print(f\u0026#34;📊 Comparison report saved as: {output_doc}\u0026#34;) print(f\u0026#34;📂 Original file: {source_doc}\u0026#34;) print(f\u0026#34;📂 Modified file: {target_doc}\u0026#34;) print(f\u0026#34;💡 Open the report to see all differences highlighted!\u0026#34;) except Exception as e: print(f\u0026#34;❌ Error during comparison: {str(e)}\u0026#34;) print(\u0026#34;💡 Make sure both Word files exist and are not password-protected\u0026#34;) # Run the comparison compare_basic_word_documents() What just happened?\nWe loaded your original Word document (the \u0026ldquo;source\u0026rdquo;) Added the modified Word document (the \u0026ldquo;target\u0026rdquo;) for file comparison The system analyzed every word, paragraph, and formatting detail Generated a professional comparison report highlighting all document differences Why this document comparison tool works great:\nAutomatically detects text changes, additions, and deletions Highlights differences with different colors (added=blue, deleted=red, modified=green) Creates a professional report you can share with colleagues Works as a reliable word difference checker for any document type Sample source and target files:\nSample result file:\nExample 2: Compare Multiple Documents Against One Source (Perfect for Team Reviews) Perfect for: Project managers, editors, or anyone who needs to compare several document versions against a master copy\nImagine you\u0026rsquo;re a team lead and you\u0026rsquo;ve sent one document to three different people for review. Instead of comparing each version manually, this example lets you compare all of them at once against your original document. It\u0026rsquo;s like having a meeting where everyone\u0026rsquo;s changes are laid out on the table simultaneously!\nReal-world scenarios where this shines:\nEditorial teams: Compare multiple reviewer comments on the same article Legal departments: Review different lawyer\u0026rsquo;s edits on the same contract Academic collaboration: See how different co-authors modified the same research paper Business proposals: Compare feedback from different departments on the same proposal import groupdocs.comparison as gc def compare_multiple_documents(source_path, target_paths, result_path, output_directory, output_file_name): # Initialize the comparer with the source file comparer = gc.Comparer(source_path) # Add target files for target_path in target_paths: comparer.add(target_path) # Set comparison options and save options save_options = gc.options.SaveOptions() compare_options = gc.options.CompareOptions() # Perform the compare operation and save the result comparer.compare(output_file_name, save_options, compare_options) print(f\u0026#34;\\nDocuments compared successfully.\\nCheck output in {output_file_name}.\u0026#34;) compare_multiple_documents() How this multi-document comparison works:\nStart with your master document - this is your \u0026ldquo;source of truth\u0026rdquo; Add all the modified versions - as many as you need to compare Generate one comprehensive report - see everyone\u0026rsquo;s changes in a single document Color-coded differences - each person\u0026rsquo;s changes get different highlighting Why this saves you tons of time:\nNo more opening multiple documents side by side See all changes in one place instead of jumping between files Perfect for team collaboration and version control Creates a master comparison that shows the evolution of your document Conclusion: Transform Your Document Review Process Today Comparing Word documents manually is a thing of the past. With GroupDocs.Comparison for Python, you now have the power to:\n✅ Save hours of manual work - No more squinting at documents trying to spot tiny changes\n✅ Eliminate human error - Catch every single difference, no matter how small\n✅ Generate professional reports - Create beautiful comparison documents you can share with confidence\n✅ Handle any scale - From simple two-document comparisons to complex multi-reviewer scenarios\nYour next steps:\nStart with Example 1 if you\u0026rsquo;re new to document comparison - it\u0026rsquo;s perfect for getting familiar with the basics Move to Example 2 when you need to handle team reviews or multiple document versions Customize and expand based on your specific business needs Whether you\u0026rsquo;re a legal professional tracking contract changes, a content creator managing revisions, or a business owner maintaining document versions, GroupDocs.Comparison gives you the tools to work smarter, not harder.\nReady to revolutionize your document workflow? The examples above are just the beginning - GroupDocs.Comparison can handle PDFs, Excel files, presentations, and many other document formats with the same ease and precision.\nSee Also PDF Comparison in .NET: Inline, Side‑by‑Side, and Interleaved Modes\nGroupDocs.Comparison Documentation\nAPI Reference\nAdditional Articles\nGroupDocs.Comparison for .NET free NuGet download\nGroupDocs.Comparison for Java free Maven download\nGroupDocs.Comparison for Node.js via Java free NPM download\nDownload a Free Trial You can download a free trial of GroupDocs.Comparison from the releases page. Additionally, to test the library without restrictions, consider acquiring a temporary license at GroupDocs Temporary License.\nWith GroupDocs.Comparison for Node.js, integrating advanced document comparison capabilities into your applications has never been easier. Start enhancing your document processing workflow today!\n","permalink":"https://blog.groupdocs.com/comparison/compare-word-documents-using-python/","summary":"Learn how to compare Word documents with Python using GroupDocs.Comparison API. Find text changes, formatting differences, and generate comparison reports with 7 practical examples.","title":"Python Word Document Comparison Guide: Find Differences Between DOCX Files Instantly with GroupDocs.Comparison"},{"content":"Overview Many document formats are tightly bound with fonts. For example, when a user adds some text to the DOCX document, this text always has some defined font. Some document formats usually store the font data embedded in the document file itself, like PDF. But others, like Office family formats, usually rely on the fonts installed in the operating system.\nThere are also plenty of font formats. For example, most installed fonts are presented in TTF (TrueType) and OTF (OpenType) formats. Office Open XML documents also work with EOT (Embedded OpenType) format. On the web, however, WOFF and WOFF2 are the most used formats.\nTable of contents Overview Getting all used fonts Processing the missing fonts Specifying missing font Replacing the missing font Excluding the fonts for HTML Conclusion See also Get a free trial Getting all used fonts The most useful feature in the context of fonts is to list and return them. GroupDocs.Viewer provides a special method GetAllFonts() — when the document is loaded to the instance of the Viewer class, call this method to obtain a list of all fonts, used in this document. In the returned list every font will be presented as in instance of the type, which implements a IFontInfo interface. This interface contains common properties for every possible font: a family name, style, format, and a binary content.\nSpecific families of formats, like WordProcessing, Spreadsheet, Presentation, and PDF, have specialized implementations of the IFontInfo; these implementations provide more data that are specific to the particular formats family. For example, the WordProcessingFontInfo, PresentationFontInfo, and PdfFontInfo types contain the IsEmbedded boolean property — a flag that indicates where this font is stored (is it embedded in the loaded document body or installed in the OS). The SpreadsheetFontInfo type contain lot of Spreadsheet-specific font data: its color, whether it is underlined or is strikeout. WordProcessingFontInfo may contain the alternative family name. And so on.\nShort example is below:\nusing GroupDocs.Viewer; // ... const string filename = \u0026#34;sample.docx\u0026#34;; string inputPath = \u0026#34;\\full\\path\\\u0026#34; + filename; using (Viewer viewer = new Viewer(inputPath)) { Fonts.IFontInfo[] allFonts = viewer.GetAllFonts(); Console.WriteLine(\u0026#34;{0} fonts found in the \u0026#39;{1}\u0026#39; document\u0026#34;, allFonts.Length, filename); foreach (Fonts.IFontInfo font in allFonts) { Console.WriteLine(\u0026#34;Font \u0026#39;{0}\u0026#39; of \u0026#39;{1}\u0026#39; style has {2} bytes and is of \u0026#39;{3}\u0026#39; format\u0026#34;, font.FamilyName, font.Style, font.Content.Length, font.Format); } } Please note that font extraction is supported only for the WordProcessing, Spreadsheet, Presentation, and PDF families of formats, for all other document formats the GetAllFonts() method returns an empty array.\nProcessing the missing fonts The situation, when some document was created on the author’s machine and uses some font \u0026ldquo;AAA\u0026rdquo;, and then is processed using the GroupDocs.Viewer on some client’s machine, where font \u0026ldquo;AAA\u0026rdquo; is missing, is typical. In such case GroupDocs.Viewer tries to substitute this font using some complex font substitution rules: it analyzes the metadata of the document, alternative names of the missing font, settings of the document, settings of the OS, list of all available fonts, installed in the OS and so on. Finally, when by some reason the OS is “clean”, when it has no installed fonts at all, then GroupDocs.Viewer will substitute the missing font with the one, that is embedded inside the GroupDocs.Viewer assembly (DLL); this font will serve as a \u0026ldquo;last resort\u0026rdquo; in case when no other fonts are available. For example, for the WordProcessing family formats, the GroupDocs.Viewer internally stores the \u0026ldquo;Fanwood\u0026rdquo; free font.\nAt this moment the GroupDocs.Viewer does the font substitution operation “silently” during rendering of the document (when the Viewer.View() method is invoked) — there are no any messages or events when the font substitution mechanism is activated and which font is missing and onto which is replaced/substituted, and for which exact document. Such feature is hard to implement because it is too unclear, vague, and ambiguous what kind of notification should be emitted, in which form and how they can be utilizing on the client’s side.\nHowever, the GroupDocs.Viewer provides the users two possible ways to solve such a situation: manually specify the missing font and manually substitute the missing font.\nSpecifying missing font When the user initially knows that some document uses font \u0026ldquo;AAA\u0026rdquo;, and also knows that this font \u0026ldquo;AAA\u0026rdquo; is not installed on the target machine, where document should be rendered, and user has the binary content of this font \u0026ldquo;AAA\u0026rdquo;, he can specify it before calling the Viewer.View() method.\nIn order to specify one or many custom fonts, which are not installed in the target operating system, user should add custom font source(s). Font source is actually a folder, where one or many fonts are located. It is represented by a FolderFontSource class. And the FontSettings class has a method SetFontSources() for adding the font sources to the GroupDocs.Viewer.\nThe following code snippet demonstrates this. Let\u0026rsquo;s assume that the \u0026ldquo;sample.docx\u0026rdquo; document uses some rare font \u0026ldquo;AAA.ttf\u0026rdquo;, that is not installed on the target operating system. Then the user puts the file \u0026ldquo;AAA.ttf\u0026rdquo; to the \u0026quot;C:\\custom_fonts\u0026quot; folder and then creates an instance of the FolderFontSource class that points to this folder. Then this instance is passed to the FontSettings static class, and then the \u0026ldquo;sample.docx\u0026rdquo; file is rendered to HTML format. As a result, the \u0026ldquo;AAA\u0026rdquo; font will be used in the output HTML document.\nusing GroupDocs.Viewer; using GroupDocs.Viewer.Options; using GroupDocs.Viewer.Fonts; // ... // Specify the font source. FolderFontSource fontSource = new FolderFontSource(@\u0026#34;C:\\custom_fonts\u0026#34;, SearchOption.TopFolderOnly); FontSettings.SetFontSources(fontSource); using (Viewer viewer = new Viewer(\u0026#34;sample.docx\u0026#34;)) { // Create an HTML file. HtmlViewOptions viewOptions = HtmlViewOptions.ForEmbeddedResources(); viewer.View(viewOptions); } Replacing the missing font When the user initially knows that some document uses font “AAA”, and also knows that this font “AAA” is not installed on the target machine, where document should be rendered, but user has no access to the binary content of this font “AAA”, he can specify another font “BBB”, that will be used instead of the missing “AAA”. Unlike the previous case, this should be done using the view options, which then are passed to the Viewer.View() method.\nThis option is called a “DefaultFontName”, it is a property of a string type, declared in the abstract class BaseViewOptions, so it is common for all rendering options: HtmlViewerOptions, PdfViewOptions, PngViewOptions, and JpgViewOptions.\nWhen this option is specified, the GroupDocs.Viewer uses this font during rendering instead of any not available fonts. For example, if the document includes a font containing non-English characters, specify the default font name to ensure that GroupDocs.Viewer replaces any missing font with one which has the same character set. Of course, the font, which name is specified in the DefaultFontName property, should be installed on the operating system, where the GroupDocs.Viewer renders the document.\nThe following code snippet shows how to set the default font name:\nusing GroupDocs.Viewer; using GroupDocs.Viewer.Options; // ... using (Viewer viewer = new Viewer(\u0026#34;sample.pptx\u0026#34;)) { // Create options for rendering HTML document with embedded resources HtmlViewOptions viewOptions = HtmlViewOptions.ForEmbeddedResources(); // Specify a default font name is the options viewOptions.DefaultFontName = \u0026#34;Courier New\u0026#34;; // Render input PPTX to output HTML viewer.View(viewOptions); } Excluding the fonts for HTML When rendering the documents to the HTML format, GroupDocs.Viewer by default exports all used fonts to the HTML document. This ensures correct display regardless of the required fonts existing on the viewer device. Fonts can be stored in the resultant HTML document as external resources (HtmlViewOptions.ForExternalResources) or be embedded directly into HTML-markup using the data URI scheme through base64 encoding (HtmlViewOptions.ForEmbeddedResources). Font exporting to HTML format is supported by almost all document formats that support fonts itself: Microsoft Office (except Excel), OpenDocument formats, emails, PDF, eBooks and so on.\nHowever sometimes this feature is unwanted. Actually, when fonts are included, they significantly increase the size of the produced HTML document. So when the target machine or device, where the HTML document should be displayed, has all the used fonts to be installed, the browser can use these system-installed fonts.\nIn order to solve such demands the GroupDocs.Viewer has an ability to exclude fonts from the produced HTML document, and this can be done in two ways: exclude all fonts and exclude specific fonts only.\nBoth these options are represented in the HtmlViewOptions class as different properties:\nExcludeFonts is a flag that disables export of all used fonts to the produced HTML document, when enabled (true). By default this option is disabled (false). FontsToExclude is a list of string, each one represents one font name, that should be excluded from the produced HTML document. By default this list is empty — no fonts are excluded. Please note that this option works only if the ExcludeFonts property is disabled (false). Two code snippets below demonstrate both these possibilities: first one shows using the ExcludeFonts, while second — FontsToExclude.\nusing GroupDocs.Viewer; using GroupDocs.Viewer.Options; // ... using (Viewer viewer = new Viewer(\u0026#34;sample.docx\u0026#34;)) { // Create an HTML file. var viewOptions = HtmlViewOptions.ForEmbeddedResources(); viewOptions.ExcludeFonts = true; viewer.View(viewOptions); } using GroupDocs.Viewer; using GroupDocs.Viewer.Options; // ... using (Viewer viewer = new Viewer(\u0026#34;presentation.pptx\u0026#34;)) { // Create an HTML file. var viewOptions = HtmlViewOptions.ForEmbeddedResources(); viewOptions.FontsToExclude.Add(\u0026#34;Times New Roman\u0026#34;);// Exclude the Times New Roman font. viewOptions.FontsToExclude.Add(\u0026#34;Arial\u0026#34;);// Exclude the Arial font. viewer.View(viewOptions); } Conclusion The GroupDocs.Viewer is primarily focused on rendering documents of different formats into the commonly widespread “viewable” formats — HTML, PDF, JPEG, and PNG. But during the last period of time we added several useful features regarding font processing that allow to review and examine used fonts, tune-up their export and adjust font substitution.\nSee Also Getting all used fonts in the loaded document Set custom fonts Replace missing font Exclude fonts when rendering to HTML Get a free trial You can download a free trial version of GroupDocs.Viewer for .NET from releases.groupdocs.com. You can also acquire a temporary license to try all features and functionalities without restrictions from here.\n","permalink":"https://blog.groupdocs.com/viewer/working-with-fonts/","summary":"This article covers all topics and features, related to the fonts processing in GroupDocs.Viewer for .NET.","title":"Working with fonts in GroupDocs.Viewer for .NET"},{"content":"🚀 Introduction Ever had to watermark a bunch of documents and ended up with the same boring \u0026ldquo;CONFIDENTIAL\u0026rdquo; stamp on everything? Your top-secret financial report gets the same generic watermark as your lunch menu draft. Not exactly helpful, right?\nHere\u0026rsquo;s the thing: your documents are unique, so why shouldn\u0026rsquo;t their watermarks be too? What if your watermarks could actually read your documents and create something that makes sense for each one?\nDocument watermarking isn\u0026rsquo;t just about slapping text on files anymore. It\u0026rsquo;s about smart document security, professional branding, and legal protection that actually fits what you\u0026rsquo;re protecting. Whether you\u0026rsquo;re securing confidential business reports, protecting your intellectual property, or just making sure people know which version they\u0026rsquo;re looking at, the right watermark can save you from a lot of headaches.\nThat\u0026rsquo;s where AI assistance comes in. Instead of you having to think up watermark text for every single document type, AI can read your documents, understand what they\u0026rsquo;re about, and create watermarks that actually make sense. Think of it as having a really smart assistant who never gets tired of reading documents and always knows exactly what kind of watermark each one needs.\nIn this guide, we\u0026rsquo;ll show you how to protect your documents with smart watermarks using GroupDocs.Watermark for .NET combined with AI help. You\u0026rsquo;ll learn how to create watermarks that are actually useful, customize them for different situations, and even remove watermarks when you need to – all without breaking a sweat.\nWhat is GroupDocs.Watermark? GroupDocs.Watermark for .NET is a comprehensive C# library designed for enterprise-level document protection and watermark automation. This powerful API allows developers to add watermarks, search, remove watermarks, and edit watermarking across various document formats without requiring external software dependencies.\nSupported Document Formats The library supports an extensive range of formats for complete content protection with watermarking:\nMicrosoft Office: Word (DOC, DOCX), Excel (XLS, XLSX), PowerPoint (PPT, PPTX) PDF Documents: Full support for PDF watermarks Image Formats: JPEG, PNG, TIFF, BMP, GIF for image watermarks Email Formats: MSG, EML for communication security Specialized Formats: Visio, OneNote, and many others Key Capabilities Add watermarks with precise positioning and transparency control Create watermarks using custom fonts and styling options Remove watermarks and delete watermarks from existing documents Invisible watermarking for documents requiring subtle protection Enterprise watermark solutions with batch processing Search and identify existing watermarks across document collections What is AI Assistance and Why Use It with Watermarking? AI assistance in watermarking is like having a smart assistant that actually reads and understands your documents before adding watermarks. Instead of slapping the same generic \u0026ldquo;CONFIDENTIAL\u0026rdquo; stamp on everything, AI looks at what your document is about, who wrote it, when it was created, and what kind of document it is – then creates a watermark that actually makes sense.\nThe Old Way Was Frustrating Traditional watermarking tools make you pick between bad options:\nBoring, generic watermarks that say nothing useful about your document Spending hours manually creating watermarks for each document type Static text that doesn\u0026rsquo;t tell you if something is super important or just regular paperwork Systems that work fine for 10 documents but become a nightmare when you have hundreds How AI Makes It Better When you combine GroupDocs.Watermark with AI help, here\u0026rsquo;s what happens:\n✅ Smart text generation – AI reads your document and writes watermarks that actually fit\n✅ Adapts on the fly – Different document types get different watermark styles automatically\n✅ Better security – Watermarks include the right info for the right documents\n✅ Handles lots of documents – Works just as well for 1 document or 1,000\n✅ Stays consistent – Your company\u0026rsquo;s watermarking rules get followed every time\n✅ Saves you time – No more manually creating watermarks for every document\nWhat This Looks Like in Real Life Legal Documents: AI reads case files and creates watermarks with the right case numbers, confidentiality warnings, and legal notices – no more copy-pasting wrong case numbers! Financial Reports: Automatically adds the right compliance warnings, quarter info, and \u0026ldquo;who can see this\u0026rdquo; restrictions based on what\u0026rsquo;s actually in the report HR Documents: Looks at employee info and adds the right department tags, privacy notices, and how long to keep the document Marketing Materials: Checks campaign details and adds approval status, usage rights, and brand guidelines that match your current campaign Technical Docs: Reads your documentation and adds version numbers, security levels, and project codes that actually match what you\u0026rsquo;re working on 🔄 AI-Enhanced Watermarking Workflow Here\u0026rsquo;s What Happens Step by Step AI Reads Your Document: The AI actually looks at your document content, checks who made it, when it was created, and figures out what type of document it is AI Thinks About It: Based on what it found, the AI decides what kind of watermark makes sense – is this confidential? Public? Something in between? AI Writes the Watermark: Creates watermark text that fits your document\u0026rsquo;s actual purpose and follows your security rules AI Applies It Properly: Puts the watermark in the right spot with the right fonts and styling that works for your document type AI Double-Checks: Makes sure the watermark looks good and is readable before finishing up You Get Protected Documents: Your document is saved with a watermark that actually makes sense How AI Makes Smart Decisions The AI doesn\u0026rsquo;t just randomly generate text – it\u0026rsquo;s actually thinking about:\nWhat kind of document is this? – Automatically sorts documents into categories like confidential, public, internal use, etc. Who needs to see this? – Figures out the right audience and adjusts the watermark message What rules apply? – Follows industry requirements like HIPAA for medical docs or financial compliance rules Does this match our brand? – Keeps your company\u0026rsquo;s watermarking style consistent while adapting to each document Where should this go? – Picks the best spot for the watermark so it\u0026rsquo;s visible but doesn\u0026rsquo;t mess up your content Step-by-Step Process Document Analysis: Extract metadata including title, author, creation date, and document type AI Prompt Generation: Create contextual prompts based on extracted information Intelligent Content Creation: AI generates relevant, professional watermark text Watermark Application: Apply the generated content with custom fonts and styling Secure Output: Save the protected document with context-aware watermarking Here\u0026rsquo;s how the combined process works:\nSample Code: AI-Generated Watermark in C# Below is a comprehensive code example showing how to create watermarks intelligently by combining document analysis, AI generation, and professional application:\nusing System; using System.Drawing; using System.Threading.Tasks; using GroupDocs.Watermark; using GroupDocs.Watermark.Options; class Program { static async Task Main() { string inputFilePath = \u0026#34;email.pdf\u0026#34;; string outputFilePath = \u0026#34;result.pdf\u0026#34;; // Step 1: Extract document info IDocumentInfo documentInfo = GetDocumentInfo(inputFilePath); string title = \u0026#34;Kai Carter 777 LUCKY AVE, LAS VEGAS, NV 16171\u0026#34;; string documentType = \u0026#34;email\u0026#34;; DateTime creationDate = DateTime.Now; // Step 2: Create prompt for AI string prompt = $\u0026#34;Generate a clean, professional text watermark for a document titled \u0026#39;{title}\u0026#39; \u0026#34; + $\u0026#34;of type \u0026#39;{documentType}\u0026#39;, created on {creationDate:dd-MMM-yy h:mm tt}. \u0026#34; + $\u0026#34;The document has {documentInfo.PageCount} page\u0026#34; + $\u0026#34;{(documentInfo.PageCount \u0026gt; 1 ? \u0026#34;s\u0026#34; : \u0026#34;\u0026#34;)}. \u0026#34; + $\u0026#34;Include useful human-readable information like classification \u0026#34; + $\u0026#34;(e.g., Confidential), title, date, and page count. \u0026#34; + $\u0026#34;Do not mention file size or technical file type. \u0026#34; + $\u0026#34;Return the watermark text only, in a compact format with at most 5 lines.\u0026#34;; // Step 3: Generate watermark text via AI string watermarkText = await GenerateWatermarkTextAsync(prompt); // Step 4: Apply the generated watermark ApplyTextWatermark(inputFilePath, outputFilePath, watermarkText); Console.WriteLine(\u0026#34;Watermark applied and saved to: \u0026#34; + outputFilePath); } static IDocumentInfo GetDocumentInfo(string filePath) { using (Watermarker watermarker = new Watermarker(filePath)) { IDocumentInfo info = watermarker.GetDocumentInfo(); Console.WriteLine($\u0026#34;File type: {info.FileType}\u0026#34;); Console.WriteLine($\u0026#34;Number of pages: {info.PageCount}\u0026#34;); Console.WriteLine($\u0026#34;Document size: {info.Size} bytes\u0026#34;); return info; } } static async Task\u0026lt;string\u0026gt; GenerateWatermarkTextAsync(string prompt) { // This method should call your AI assistant (e.g., OpenAI, Azure OpenAI, // local model) // to generate watermark text based on the prompt. // Return only the watermark string without any extra explanation. throw new NotImplementedException(\u0026#34;Integrate your AI assistant here.\u0026#34;); } static void ApplyTextWatermark(string inputPath, string outputPath, string watermarkText) { using (Watermarker watermarker = new Watermarker(inputPath)) { Font font = new Font(\u0026#34;Arial\u0026#34;, 11, FontStyle.Bold | FontStyle.Italic); TextWatermark watermark = new TextWatermark(watermarkText, font) { ForegroundColor = Color.Red, Opacity = 0.2, TextAlignment = TextAlignment.Left, X = 250, Y = 580 }; watermarker.Add(watermark); watermarker.Save(outputPath); } } } Result:\nAdvanced Watermarking Techniques How to Customize Watermarks Beyond basic text application, you can customize watermarks extensively:\n// Example: Creating a customized watermark with advanced styling TextWatermark advancedWatermark = new TextWatermark(aiGeneratedText, customFont) { ForegroundColor = Color.FromArgb(128, 0, 0, 255), // Semi-transparent blue BackgroundColor = Color.FromArgb(50, 255, 255, 255), // Light background Opacity = 0.3, RotateAngle = -45, // Diagonal orientation TextAlignment = TextAlignment.Center, SizingType = SizingType.ScaleToParentDimensions, ScaleFactor = 0.8 }; How to Remove Watermarks Sometimes you need to remove watermarks from documents. Here\u0026rsquo;s how to delete watermarks programmatically:\npublic static void RemoveWatermarkFromDocument(string filePath) { using (Watermarker watermarker = new Watermarker(filePath)) { // Search for watermarks PossibleWatermarkCollection watermarks = watermarker.Search(); // Remove all found watermarks for (int i = watermarks.Count - 1; i \u0026gt;= 0; i--) { watermarks.RemoveAt(i); } watermarker.Save(); } } Why This Approach is Game-Changing Dynamic Content Protection No more generic \u0026ldquo;CONFIDENTIAL\u0026rdquo; stamps. Each watermark reflects the document\u0026rsquo;s actual context, purpose, and classification level.\nEnterprise Scalability Watermark automation for enterprise environments means processing hundreds of documents with consistent, intelligent marking.\nEnhanced Security Context-aware watermarks make it harder for unauthorized users to remove or ignore security markings because they\u0026rsquo;re document-specific.\nProfessional Appearance AI-generated watermarks maintain professionalism while providing maximum information density.\nCompliance Ready Automatically include required legal, regulatory, or corporate compliance information based on document type and metadata.\nBuilding Your Watermarking Service Implementation Roadmap Document Analysis Service\nExtract metadata using GroupDocs.Watermark\u0026rsquo;s document info capabilities Classify document types and determine security requirements Identify existing watermarks for removing watermarks when needed AI Integration Layer\nConnect to your preferred AI provider (OpenAI, Azure OpenAI, Claude) Create context-aware prompts based on business rules Generate professional, relevant watermark content Watermark Application Engine\nApply text watermarks with custom fonts and styling Support image watermarks for logos and complex graphics Handle invisible watermarking for metadata protection Batch Processing System\nProcess multiple documents simultaneously Customize watermarks based on folder structure or naming conventions Generate reports on watermarking operations Architecture Considerations API Gateway: RESTful endpoints for add watermark and remove watermark operations Queue Management: Handle large document batches efficiently Storage Integration: Support cloud storage (AWS S3, Azure Blob, Google Cloud) Audit Logging: Track all watermarking operations for compliance Performance and Best Practices ⚡ Optimization Tips Batch Processing: Group similar documents for more efficient AI prompt generation Caching: Store common watermark patterns to reduce AI API calls Format-Specific Handling: Optimize watermark placement for different document types Resource Management: Properly dispose of Watermarker objects to prevent memory leaks 🔒 Security Considerations API Key Management: Secure storage of AI service credentials Document Handling: Ensure temporary files are properly cleaned up Access Control: Implement proper authentication for watermarking services Audit Trail: Log all operations for security monitoring Advanced Use Cases 📄 Legal Document Protection // Example prompt for legal documents string legalPrompt = $\u0026#34;Create a watermark for legal document \u0026#39;{title}\u0026#39; \u0026#34; + $\u0026#34;with case number, confidentiality level \u0026#39;Attorney-Client Privileged\u0026#39;, \u0026#34; + $\u0026#34;date {DateTime.Now:MMM dd yyyy}, and page count {pageCount}. \u0026#34; + $\u0026#34;Include \u0026#39;NOT FOR DISTRIBUTION\u0026#39; warning.\u0026#34;; 💼 Financial Report Marking // Example for quarterly financial reports string financialPrompt = $\u0026#34;Generate watermark for Q{quarter} {year} financial report \u0026#34; + $\u0026#34;titled \u0026#39;{title}\u0026#39;. Include \u0026#39;CONFIDENTIAL - INTERNAL USE ONLY\u0026#39;, \u0026#34; + $\u0026#34;report date, and compliance notice. Format professionally.\u0026#34;; 👥 HR Document Classification // Employee document watermarking string hrPrompt = $\u0026#34;Create watermark for HR document \u0026#39;{title}\u0026#39; \u0026#34; + $\u0026#34;for employee {employeeName}, department {department}. \u0026#34; + $\u0026#34;Include confidentiality level, retention period, and HR compliance notice.\u0026#34;; Get Started Today Ready to revolutionize your document security with AI-powered watermarking? Here\u0026rsquo;s your action plan:\nGet a Free Trial You can try GroupDocs.Watermark APIs for free by downloading and installing the latest version from our release downloads website.\nFor unrestricted testing of all library functionalities, get a temporary license from our temporary license page.\nScale Your Solution Start Small: Begin with a single document type and expand gradually Monitor Performance: Track AI API usage and watermarking speeds Gather Feedback: Work with your team to refine watermark templates Expand Integration: Connect with your existing document management systems Additional Resources For comprehensive documentation and examples:\nGroupDocs.Watermark for .NET Examples - Complete code samples GroupDocs.Watermark for Java Examples - Java implementation guides GroupDocs.Watermark for Node.js Examples - JavaScript/Node.js solutions Download and try GroupDocs.Watermark APIs for free - Get started immediately Try GroupDocs.Watermark with full-access temporary license - Test all features Complete API Documentation - Technical reference Free Support Forum - Community help and expert assistance Conclusion The combination of GroupDocs.Watermark and AI Assistance represents the future of intelligent document protection. By leveraging AI to create watermarks that understand context, you can:\nProtect documents more effectively with relevant, professional markings Automate watermark processes across enterprise document workflows Customize watermarks dynamically without manual intervention Scale content protection while maintaining consistency and quality Whether you need to add watermarks to new documents, remove watermarks from existing files, or implement invisible watermarking for documents, this approach provides the flexibility and intelligence your organization needs.\nStart building your AI-powered watermarking solution today and transform how you protect documents with watermarks. The future of document security is intelligent, context-aware, and automated.\n","permalink":"https://blog.groupdocs.com/watermark/ai-driven-dynamic-watermarks/","summary":"Learn how to integrate AI with GroupDocs.Watermark to create intelligent, context-aware watermarks that automatically adapt to your document content. Perfect for enterprise document security and content protection.","title":"🤖 AI-Powered Watermarking: Protect Documents with Smart Context-Aware Marking"},{"content":"Overview GroupDocs.Metadata for .NET is a robust library designed to handle multiple types of metadata across various document types and file formats. The 25.6 release introduces a wealth of new features, enhancements, and bug fixes, making it a must-have tool for developers working on .NET applications. This article provides a comprehensive overview of the updates in GroupDocs.Metadata 25.6.\nTable of contents Overview Use Cases Conclusion See Also Get a free trial Use Cases In this section, we will introduce different use cases that highlight the practical applications of the updates in GroupDocs.Metadata 25.6 for .NET.\nReading glTF Properties One of the significant new features in the 25.6 release is improved support for glTF files. Below is a practical example demonstrating how to read glTF properties:\nSteps Create a Metadata object with the path to your glTF file. Retrieve the root package as a GltfRootPackage. Loop through each property table and print the table name. For each property in the table, print the property name, type, and value. // Read glTF properties using (Metadata metadata = new Metadata(\u0026#34;input.gltf\u0026#34;)) { var root = metadata.GetRootPackage\u0026lt;GltfRootPackage\u0026gt;(); foreach (var table in root.GltfPackage.PropertyTables) { Console.WriteLine(table.PropertyTableName); if (table.Properties != null) { foreach (var prop in table.Properties) { Console.WriteLine(prop.PropertyName); Console.WriteLine(prop.PropertyType); Console.WriteLine(prop.PropertyValue); } } } } Conclusion GroupDocs.Metadata 25.6 for .NET brings a powerful set of features and improvements for developers and businesses. With better support for glTF files and enhanced performance, the library continues to be a vital tool for handling metadata in various document types and file formats.\nSee Also GroupDocs.Metadata for .NET Documentation GroupDocs.Metadata for .NET Product Overview GroupDocs.Metadata for .NET GitHub Examples GroupDocs.Metadata for .NET Release Notes Get a free trial You can download a free trial version of GroupDocs.Metadata for .NET from releases.groupdocs.com. You can also acquire a temporary license to try all features and functionalities without restrictions from here.\n","permalink":"https://blog.groupdocs.com/metadata/read-gltf/","summary":"Here\u0026rsquo;s what\u0026rsquo;s new in GroupDocs.Metadata 25.6 for .NET. Explore the latest updates, new features, enhancements, and improvements. Learn how to read metadata properties from glTF file","title":"Read metadata properties from glTF file"},{"content":"Overview The GroupDocs.Metadata for .NET 25.5 release brings a host of new features, improvements, and bug fixes to enhance your document metadata management experience. This release focuses on providing better support for SVG files, including the ability to update and clean XMP packages. Whether you are a developer looking to integrate metadata management into your applications or a user seeking to manage document metadata efficiently, this release has something for you.\nTable of contents How to Clean XMP Package in SVG Files How to Update XMP Properties in SVG Files How to Clean XMP Package in SVG Files In this section, we will demonstrate how to clean the XMP package from an SVG file using GroupDocs.Metadata for .NET. This can be useful when you need to remove metadata from SVG files to ensure compliance with privacy policies or to reduce file size.\nSteps to Clean XMP Package in SVG Files Load the SVG file using the Metadata class. Retrieve the root package of the SVG file. Set the XMP package to null. Save the modified SVG file. Code Example // Clean XMP package using (Metadata metadata = new Metadata(\u0026#34;input.svg\u0026#34;)) { // Retrieve the root package of the SVG file var format = metadata.GetRootPackage\u0026lt;SvgRootPackage\u0026gt;(); // Set the XMP package to null to clean it format.XmpPackage = null; // Save the modified SVG file metadata.Save(); } How to Update XMP Properties in SVG Files In this section, we will show you how to update the XMP properties of an SVG file using GroupDocs.Metadata for .NET. This can be useful when you need to add or modify metadata properties in SVG files for better document management. For example when you want to edit XMP basic label field.\nSteps to Update XMP Properties in SVG Files Load the SVG file using the Metadata class. Retrieve the root package of the SVG file. Create a new XmpPacketWrapper object. Set the desired XMP properties. Assign the XmpPacketWrapper to the root package. Save the modified SVG file. Code Example // How to update XMP properties of a SVG file. using (Metadata metadata = new Metadata(\u0026#34;input.svg\u0026#34;)) { // Retrieve the root package of the SVG file var root = metadata.GetRootPackage\u0026lt;SvgRootPackage\u0026gt;(); // Print the XmpBasic Label before updating Console.WriteLine(\u0026#34;XmpBasic Label before: {0}\u0026#34;, \u0026#34;\u0026#34;); // Create a new XmpPacketWrapper object var xmpPacketWrapper = new XmpPacketWrapper(); // Create a new XmpBasicPackage object and set the Label property xmpPacketWrapper.Schemes.XmpBasic = new XmpBasicPackage(); xmpPacketWrapper.Schemes.XmpBasic.Label = \u0026#34;Architecture collection\u0026#34;; // Assign the XmpPacketWrapper to the root package root.XmpPackage = xmpPacketWrapper; // Save the modified SVG file metadata.Save(); } Getting Started with a Free Trial By default, the library operates in trial mode without a license, allowing you to explore its basic features and functionalities. You can download GroupDocs.Metadata for Python via .NET from the GroupDocs Releases page.\nAdditionally, you can acquire a temporary license from this link. The temp license allows you to use the library without any restrictions and fully explore its capabilities.\nSee also For more information, you can refer to the following resources:\nGroupDocs.Metadata for .NET Documentation GroupDocs.Metadata for .NET Products GroupDocs.Metadata for .NET GitHub Examples GroupDocs.Metadata for .NET Releases Free Support Forum Try GroupDocs.Metadata for .NET for Free You can download a free trial from releases.groupdocs.com and also acquire a temporary license on purchase.groupdocs.com/temporary-license/. The temporary license allows you to try our library without restrictions.\n","permalink":"https://blog.groupdocs.com/metadata/edit-and-clean-xmp-in-svg/","summary":"Explore the new features, improvements, and bug fixes in GroupDocs.Metadata for .NET 25.5. Learn how to update and clean XMP packages in SVG files.","title":"Edit and clean XMP metadata packages in SVG images"},{"content":"What Are Watermarks and Why You Need Them Think of watermarks like invisible name tags on your files. Just like putting your name on your lunch box at school, watermarks help people know who owns a document or photo.\nWhen you need watermarks:\nPhotographers: Put your name on photos before showing clients Small businesses: Mark documents as \u0026ldquo;CONFIDENTIAL\u0026rdquo; or add your logo Students \u0026amp; teachers: Protect your work from being copied Anyone sharing files: Show ownership and prevent theft What makes this tutorial perfect for beginners: We\u0026rsquo;ll show you tiling watermarks - these are watermarks that repeat all over your document like wallpaper. They\u0026rsquo;re much harder to remove than single watermarks.\nBefore We Start: Easy Setup Install the Watermark Tool (Super Easy!) Think of this like downloading an app. We need a special Python tool called GroupDocs.Watermark that does all the hard work for us.\nSimple installation: Open your command prompt (that black window) and type:\npip install groupdocs-watermark-net Press Enter and wait. Done! The tool is now ready to use.\nWhat you just installed:\nDigital watermarking library: Professional-grade protection tools Multi-format document watermarking: Works with PDFs, images, Word docs, and more Customizable watermarking solution: You control how it looks 7 Professional Watermark Templates: From Basic Protection to Maximum Security Example 1: Basic Confidential Text Watermark (Perfect for Beginners) Perfect for: Business owners who need to protect sensitive documents\nLet\u0026rsquo;s start with something simple - adding \u0026ldquo;CONFIDENTIAL\u0026rdquo; stamps across your important files. This creates a professional brick-like pattern that clearly shows the document is sensitive.\nimport groupdocs.watermark as gw import groupdocs.watermark.watermarks as gww def run(): # Update with the path to your files document_path = \u0026#34;business_report.pdf\u0026#34; output_document_path = \u0026#34;confidential_business_report.pdf\u0026#34; with gw.Watermarker(document_path) as watermarker: font = gww.Font(\u0026#39;Arial\u0026#39;, 14.0) watermark = gww.TextWatermark(f\u0026#39;CONFIDENTIAL\u0026#39;, font) watermark.foreground_color = gww.Color.red watermark.opacity = 0.5 watermark.text_alignment = gww.TextAlignment.CENTER tile_options = gww.TileOptions() tile_options.tile_type = gww.TileType.OFFSET watermark.tile_options = tile_options watermarker.add(watermark) watermarker.save(output_document_path) print(f\u0026#34;\\n✅ CONFIDENTIAL watermark added successfully!\u0026#34;) print(f\u0026#34;Protected file saved as: {output_document_path}\u0026#34;) protect_business_documents() Result:\nWhat just happened?\nWe opened your PDF Created red \u0026ldquo;CONFIDENTIAL\u0026rdquo; text in Arial font Made it repeat across your document in a brick pattern (OFFSET type) Saved it as a new protected file Why this works great:\nThe brick pattern looks professional \u0026ldquo;CONFIDENTIAL\u0026rdquo; is clear but doesn\u0026rsquo;t block your text Anyone who sees it knows this is sensitive information Example 2: Diagonal Draft Watermark (For Professional Presentations) Perfect for: Anyone creating presentations, reports, or materials that need clear status indication\nThis diagonal \u0026ldquo;DRAFT\u0026rdquo; watermark provides excellent document protection while maintaining readability. The 45-degree rotation and custom spacing make it ideal for draft documents and presentations.\nimport groupdocs.watermark as gw import groupdocs.watermark.watermarks as gww def run(): # Update with the path to your files document_path = \u0026#34;sample.pdf\u0026#34; output_document_path = \u0026#34;sample_with_watermark.pdf\u0026#34; with gw.Watermarker(document_path) as watermarker: font = gww.Font(\u0026#39;Arial\u0026#39;, 30.0) watermark = gww.TextWatermark(f\u0026#39;DRAFT\u0026#39;, font) watermark.foreground_color = gww.Color.red watermark.opacity = 0.5 watermark.rotate_angle = -45.0 watermark.text_alignment = gww.TextAlignment.CENTER line_spacing = gww.MeasureValue() line_spacing.measure_type = gww.TileMeasureType.PERCENT line_spacing.value = 12.0 watermark_spacing = gww.MeasureValue() watermark_spacing.measure_type = gww.TileMeasureType.PERCENT watermark_spacing.value = 10.0 tile_options = gww.TileOptions() tile_options.tile_type = gww.TileType.STRAIGHT tile_options.line_spacing = line_spacing tile_options.watermark_spacing = watermark_spacing watermark.tile_options = tile_options watermarker.add(watermark) watermarker.save(output_document_path) print(f\u0026#34;\\n✅ DRAFT watermark added successfully!\u0026#34;) print(f\u0026#34;Protected file saved as: {output_document_path}\u0026#34;) run() Result:\nWhy this is perfect for presentations:\nLarge, clear \u0026ldquo;DRAFT\u0026rdquo; text prevents confusion Diagonal pattern looks professional Custom spacing ensures readability Perfect for version control and document workflow Example 3: Maximum Security Grid Pattern (For Ultra-Sensitive Documents) Perfect for: Legal documents, proprietary research, academic papers, and any content requiring maximum security\nThis dense grid approach provides the highest level of document protection by creating a tight pattern with user identification, file tracking, and disclaimer text. Perfect for when you need comprehensive tracking and maximum security.\nimport groupdocs.watermark as gw import groupdocs.watermark.watermarks as gww def run(): # Update with the path to your files document_path = \u0026#34;sample.pdf\u0026#34; output_document_path = \u0026#34;sample_with_watermark.pdf\u0026#34; # Customize these for your needs USER_EMAIL = \u0026#39;useremail@mail.com\u0026#39; FILE_ID = \u0026#39;1234-4a04-935f-3c83c3079a47\u0026#39; DISCLAIMER = \u0026#39;Confidential - Do not distribute - Subject to NDA\u0026#39; with gw.Watermarker(document_path) as watermarker: font = gww.Font(\u0026#39;Arial\u0026#39;, 10.0) watermark = gww.TextWatermark(f\u0026#39;{USER_EMAIL}\\n{FILE_ID}\\n{DISCLAIMER}\u0026#39;, font) watermark.foreground_color = gww.Color.gray watermark.opacity = 0.4 watermark.rotate_angle = -45.0 watermark.text_alignment = gww.TextAlignment.CENTER line_spacing = gww.MeasureValue() line_spacing.measure_type = gww.TileMeasureType.PERCENT line_spacing.value = 5.0 watermark_spacing = gww.MeasureValue() watermark_spacing.measure_type = gww.TileMeasureType.PERCENT watermark_spacing.value = 3.0 tile_options = gww.TileOptions() tile_options.tile_type = gww.TileType.STRAIGHT tile_options.line_spacing = line_spacing tile_options.watermark_spacing = watermark_spacing watermark.tile_options = tile_options watermarker.add(watermark) watermarker.save(output_document_path) print(f\u0026#34;\\n✅ Maximum security grid watermark applied!\u0026#34;) print(f\u0026#34;Ultra-secured document saved as: {output_document_path}\u0026#34;) run() Result:\nMaximum security features:\nMulti-line watermark with user identification Unique file ID for tracking Legal disclaimer text Dense 3-5% spacing prevents removal Perfect for highly sensitive content Example 4: Company Logo Branding Watermark (For Professional Brand Protection) Perfect for: Small businesses who want to brand their documents and protect their materials\nThis puts your company logo across certificates, presentations, and official documents. The logo repetition makes unauthorized use immediately recognizable while maintaining professional appearance.\nimport groupdocs.watermark as gw import groupdocs.watermark.watermarks as gww def run(): # Update with the path to your files document_path = \u0026#34;sample.pdf\u0026#34; output_document_path = \u0026#34;sample_with_watermark.pdf\u0026#34; with gw.Watermarker(document_path) as watermarker: # Update with the path to your logo image watermark = gww.ImageWatermark(\u0026#34;logo.png\u0026#34;) watermark.opacity = 0.4 watermark.rotate_angle = -45.0 watermark.width = 90.0 watermark.height = 50.0 line_spacing = gww.MeasureValue() line_spacing.measure_type = gww.TileMeasureType.PERCENT line_spacing.value = 5.0 watermark_spacing = gww.MeasureValue() watermark_spacing.measure_type = gww.TileMeasureType.PERCENT watermark_spacing.value = 3.0 tile_options = gww.TileOptions() tile_options.tile_type = gww.TileType.STRAIGHT tile_options.line_spacing = line_spacing tile_options.watermark_spacing = watermark_spacing watermark.tile_options = tile_options watermarker.add(watermark) watermarker.save(output_document_path) print(f\u0026#34;\\n✅ Company logo watermark added!\u0026#34;) print(f\u0026#34;Branded document saved as: {output_document_path}\u0026#34;) run() Result:\nPro tip: Use PNG logo files with transparent backgrounds for the best results!\nSmart branding: Every document automatically promotes your business while staying protected!\nExample 5: Photography Protection for Social Media (Perfect for Photographers) Perfect for: Photographers, artists, anyone sharing photos online - especially for Instagram and social media\nThis protects your photos while promoting your social media. When people share your photos, they automatically promote your Instagram handle! Perfect for wedding photographers, portrait artists, and content creators.\nimport groupdocs.watermark as gw import groupdocs.watermark.watermarks as gww def run(): # Update with the path to your photo files document_path = \u0026#34;sample.png\u0026#34; # Works with JPG, PNG, etc. output_document_path = \u0026#34;sample_with_watermark.png\u0026#34; with gw.Watermarker(document_path) as watermarker: font = gww.Font(\u0026#34;Arial\u0026#34;, 10.0) # Change this to your actual Instagram handle! your_handle = \u0026#34;@your_photography_page\u0026#34; watermark = gww.TextWatermark(your_handle, font) watermark.foreground_color = gww.Color.gray watermark.opacity = 0.5 watermark.rotate_angle = -45.0 line_spacing = gww.MeasureValue() line_spacing.measure_type = gww.TileMeasureType.PERCENT line_spacing.value = 12.0 watermark_spacing = gww.MeasureValue() watermark_spacing.measure_type = gww.TileMeasureType.PERCENT watermark_spacing.value = 10.0 tile_options = gww.TileOptions() tile_options.tile_type = gww.TileType.OFFSET tile_options.line_spacing = line_spacing tile_options.watermark_spacing = watermark_spacing watermark.tile_options = tile_options watermarker.add(watermark) watermarker.save(output_document_path) print(f\u0026#34;\\n✅ Photo protected for social media!\u0026#34;) print(f\u0026#34;Protected photo saved as: {output_document_path}\u0026#34;) run() Result:\nSmart marketing: When people share your photos, they automatically promote your social media and bring you new clients!\nPhotography business benefits:\nPrevent unauthorized use and redistribution Free marketing through social media watermarks Professional client proofing and preview protection Maintain photo aesthetics while ensuring protection Example 6: Premium Basket Weave Security (For High-Value Documents) Perfect for: Important certificates, valuable documents, premium content requiring sophisticated protection\nThis creates a fancy basket-weave pattern that\u0026rsquo;s super hard to remove and looks distinctively professional. The BASKET_WEAVE pattern creates an interlocking design that\u0026rsquo;s nearly impossible to edit out cleanly.\nimport groupdocs.watermark as gw import groupdocs.watermark.watermarks as gww def run(): # Update with the path to your premium documents document_path = \u0026#34;sample.pdf\u0026#34; output_document_path = \u0026#34;sample_with_watermark.pdf\u0026#34; with gw.Watermarker(document_path) as watermarker: font = gww.Font(\u0026#39;Arial\u0026#39;, 10.0) watermark = gww.TextWatermark(f\u0026#39;CONFIDENTIAL\u0026#39;, font) watermark.foreground_color = gww.Color.red watermark.opacity = 0.5 watermark.rotate_angle = -45.0 watermark.text_alignment = gww.TextAlignment.CENTER line_spacing = gww.MeasureValue() line_spacing.measure_type = gww.TileMeasureType.PERCENT line_spacing.value = 12.0 watermark_spacing = gww.MeasureValue() watermark_spacing.measure_type = gww.TileMeasureType.PERCENT watermark_spacing.value = 10.0 tile_options = gww.TileOptions() tile_options.tile_type = gww.TileType.BASKET_WEAVE # The premium pattern! tile_options.line_spacing = line_spacing tile_options.watermark_spacing = watermark_spacing watermark.tile_options = tile_options watermarker.add(watermark) watermarker.save(output_document_path) print(f\u0026#34;\\n✅ Premium basket weave security applied!\u0026#34;) print(f\u0026#34;Secured document saved as: {output_document_path}\u0026#34;) run() Result:\nWhy basket weave rocks: It creates an interlocking pattern that\u0026rsquo;s nearly impossible to edit out without ruining the document. This is premium-level protection!\nExample 7: Ultimate Double-Layer Protection (Maximum Security) Perfect for: Super important documents, valuable intellectual property, when you need absolutely maximum security\nThis combines text and image watermarks with different patterns for ultimate protection. Two different watermark layers = super strong protection that\u0026rsquo;s extremely difficult to circumvent!\nimport groupdocs.watermark as gw import groupdocs.watermark.watermarks as gww def get_text_watermark(text: str) -\u0026gt; gww.TextWatermark: font = gww.Font(\u0026#39;Arial\u0026#39;, 10.0) watermark = gww.TextWatermark(text, font) watermark.foreground_color = gww.Color.red watermark.opacity = 0.5 watermark.rotate_angle = -45.0 watermark.text_alignment = gww.TextAlignment.CENTER watermark.tile_options = create_tile_options(12.0, 10.0, gww.TileType.STRAIGHT) return watermark def get_image_watermark(image_path: str) -\u0026gt; gww.ImageWatermark: watermark = gww.ImageWatermark(image_path) watermark.width = 60.0 watermark.height = 40.0 watermark.opacity = 0.4 watermark.rotate_angle = -45.0 watermark.tile_options = create_tile_options(15.0, 9.0, gww.TileType.OFFSET) return watermark def create_tile_options(line_spacing_val: float, watermark_spacing_val: float, tile_type: gww.TileType) -\u0026gt; gww.TileOptions: line_spacing = gww.MeasureValue() line_spacing.measure_type = gww.TileMeasureType.PERCENT line_spacing.value = line_spacing_val watermark_spacing = gww.MeasureValue() watermark_spacing.measure_type = gww.TileMeasureType.PERCENT watermark_spacing.value = watermark_spacing_val tile_options = gww.TileOptions() tile_options.tile_type = tile_type tile_options.line_spacing = line_spacing tile_options.watermark_spacing = watermark_spacing return tile_options def run(): # Update with the path to your files image_path = \u0026#34;icon1.png\u0026#34; # Your security logo/icon document_path = \u0026#34;sample.pdf\u0026#34; output_document_path = \u0026#34;sample_with_watermark.pdf\u0026#34; with gw.Watermarker(document_path) as watermarker: # Layer 1: Text watermark text_watermark = get_text_watermark(\u0026#34;DRAFT\u0026#34;) # Layer 2: Image watermark (different pattern) image_watermark = get_image_watermark(image_path) # Apply both layers watermarker.add(text_watermark) watermarker.add(image_watermark) watermarker.save(output_document_path) print(f\u0026#34;\\n✅ ULTIMATE PROTECTION ACTIVATED!\u0026#34;) print(f\u0026#34;Ultra-secured document saved as: {output_document_path}\u0026#34;) run() Result:\nMaximum security: Two different watermark layers with different patterns = the ultimate in document protection!\nUnderstanding Watermark Patterns (Simple Explanation) Here are the three main patterns you can use:\nSTRAIGHT Pattern What it looks like: Perfect rows and columns, like a checkerboard Best for: Professional business documents Why choose it: Clean and organized appearance\nOFFSET Pattern What it looks like: Like bricks in a wall - each row is shifted Best for: Photos and creative documents Why choose it: Better coverage, harder to remove\nBASKET_WEAVE Pattern What it looks like: Woven pattern like a basket Best for: High-security documents, certificates Why choose it: Most sophisticated and hardest to remove\nQuick Help: Fixing Common Problems Problem: \u0026ldquo;Can\u0026rsquo;t find my file\u0026rdquo; error Easy fix: Check your file path. Use this format:\n# Good examples: document_path = \u0026#34;C:/Users/YourName/Documents/file.pdf\u0026#34; # ✅ document_path = \u0026#34;file.pdf\u0026#34; # ✅ If file is in same folder as your script Problem: Watermark too dark or too light Easy fix: Change the opacity number:\nwatermark.opacity = 0.3 # Very light (barely visible) watermark.opacity = 0.5 # Perfect balance (recommended) watermark.opacity = 0.8 # Very visible (hard to miss) Problem: Watermarks too crowded Easy fix: Make the spacing numbers bigger:\nline_spacing.value = 20.0 # More space between rows watermark_spacing.value = 15.0 # More space between watermarks Problem: \u0026ldquo;Module not found\u0026rdquo; error Easy fix: Reinstall the library:\npip uninstall groupdocs-watermark-net pip install groupdocs-watermark-net Quick Copy-Paste Code Snippets Super Simple Text Watermark\nimport groupdocs.watermark as gw import groupdocs.watermark.watermarks as gww with gw.Watermarker(\u0026#34;input.pdf\u0026#34;) as watermarker: font = gww.Font(\u0026#39;Arial\u0026#39;, 16.0) watermark = gww.TextWatermark(\u0026#39;YOUR TEXT HERE\u0026#39;, font) watermark.foreground_color = gww.Color.red watermark.opacity = 0.5 tile_options = gww.TileOptions() tile_options.tile_type = gww.TileType.STRAIGHT watermark.tile_options = tile_options watermarker.add(watermark) watermarker.save(\u0026#34;output.pdf\u0026#34;) print(\u0026#34;Done!\u0026#34;) Super Simple Image Watermark\nimport groupdocs.watermark as gw import groupdocs.watermark.watermarks as gww with gw.Watermarker(\u0026#34;input.pdf\u0026#34;) as watermarker: watermark = gww.ImageWatermark(\u0026#34;logo.png\u0026#34;) watermark.opacity = 0.4 watermark.width = 80.0 watermark.height = 60.0 tile_options = gww.TileOptions() tile_options.tile_type = gww.TileType.OFFSET watermark.tile_options = tile_options watermarker.add(watermark) watermarker.save(\u0026#34;output.pdf\u0026#34;) print(\u0026#34;Logo watermark added!\u0026#34;) Frequently Asked Questions (Simple Answers) What file types can I watermark? Lots! This tool works with:\nPDFs: .pdf files Photos: .jpg, .png, .gif, .bmp Word documents: .docx, .doc Excel spreadsheets: .xlsx, .xls PowerPoint: .pptx, .ppt Will watermarks make my files bigger or slower? Slightly bigger files, but not noticeably slower. Dense patterns (lots of watermarks close together) create larger files.\nCan people remove my watermarks? Tiling watermarks are very hard to remove because they cover the entire document. Single watermarks can be cropped out, but tiling patterns would require editing every part of your document - nearly impossible!\nWhat opacity (transparency) works best? 0.4 to 0.6 is perfect for most situations:\n0.3-0.4: Subtle protection (barely noticeable) 0.5-0.6: Balanced visibility (recommended) 0.7+: Very obvious (good for \u0026ldquo;DRAFT\u0026rdquo; or \u0026ldquo;CONFIDENTIAL\u0026rdquo;) Can I use different fonts? Yes! But stick to common fonts like Arial, Times New Roman, or Calibri so they work on all computers.\nHow do I watermark many files at once? Use the batch processing example (#4 above) - it automatically processes all files in a folder.\nWhat\u0026rsquo;s Next? Keep Learning! Try These Next Steps:\nPractice with your own files using the examples above Change colors and fonts to match your style Combine text and image watermarks like Example 7 Create batch scripts to handle lots of files automatically Conclusion: You\u0026rsquo;re Now Ready to Protect Your Files! Congratulations! You now know how to protect your documents and photos like a pro. Here\u0026rsquo;s what you learned:\n✅ 7 easy watermarking techniques for different situations\n✅ Complete code examples you can copy and use right now\n✅ Simple solutions for common problems\n✅ Best practices for different types of files\n✅ Batch processing for handling multiple files\nStart protecting your files today! Pick one example above, change the file names to match yours, and run it. In just a few minutes, you\u0026rsquo;ll have professional document protection.\nRemember: Your creative work and business documents are valuable. Don\u0026rsquo;t let others steal or misuse them - protect them with watermarks!\nGet a Free Trial You can try GroupDocs.Watermark APIs for free by just downloading and installing the latest version on our release downloads website.\nYou can also get a temporary license to test all the library\u0026rsquo;s functionalities without any constraints. Head to the temporary license page to apply for a temporary license.\nSee Also For more information and additional resources, you may find the following links useful:\nGenerate a Tiling Watermark with .NET \u0026amp; Java GroupDocs.Watermark for .NET Examples GroupDocs.Watermark for Java Examples GroupDocs.Watermark for Node.js via Java Examples Download and try GroupDocs.Watermark APIs for free Try GroupDocs.Watermark with full-access temporary license Documentation of our APIs Free Support Forum ","permalink":"https://blog.groupdocs.com/watermark/tiling-watermark-python/","summary":"Learn how to create tiling watermarks in Python with 7 practical examples. Protect PDFs and images using GroupDocs.Watermark API with text, image, and advanced tiling patterns.","title":"Python Tiling Watermark Examples: How to Create Repeated Watermarks in Documents"},{"content":"Introduction to Digital Document Signing In today\u0026rsquo;s fast-paced digital world, the ability to electronically sign documents has become essential for businesses and individuals alike. No more printing, signing, and scanning - now you can sign documents digitally with just a few lines of Python code!\nThis comprehensive guide will walk you through creating three powerful types of electronic signatures using GroupDocs.Signature for Python via .NET:\nForm Field Signatures - Add interactive form fields to collect signatures Image-Based Signatures - Insert visual signature images into documents Stamp Signatures - Create official-looking seals and stamps Whether you\u0026rsquo;re building a document management system, automating business processes, or creating a secure signing platform, this tutorial has everything you need to implement professional e-signing capabilities.\n📝 Understanding E-Signature Types \u0026amp; Their Benefits Each e-signature method has unique advantages for different document signing scenarios:\nForm Field Signatures Interactive Data Collection: Capture signature information in structured format Validation Support: Add field validation to ensure proper completion PDF Compatibility: Works with standard PDF form capabilities Document Workflow Integration: Perfect for multi-step approval processes Image-Based Signatures Visual Authenticity: Preserves the look of handwritten signatures Branding Consistency: Include company logos or official seals Universal Compatibility: Works across virtually all document types Personalization: Allow users to upload their own signature images Stamp Signatures Official Appearance: Creates professional-looking document seals Customizable Elements: Include dates, names, titles and custom text Forgery Resistance: Can include specialized security elements Legal Documentation: Ideal for notarized or officially certified documents Electronic signatures offer many advantages over traditional paper-based signing:\nLegal Validity: Recognized in most countries worldwide Efficiency: Sign documents online instantly from anywhere Cost-Effective: Eliminate paper, printing, and shipping costs Traceability: Maintain detailed audit trails of signing processes Integration: Easily incorporate into existing document workflows ⚙️ Setting Up Your Python Environment Before we start signing documents, you\u0026rsquo;ll need to set up your Python environment correctly. Follow these simple steps to get ready:\nInstall GroupDocs.Signature for Python via .NET pip install groupdocs-signature-net Import Required Modules # Import the core GroupDocs.Signature library import groupdocs.signature as gs # Import options for configuring signature settings import groupdocs.signature.options as gso # Import domain classes for signature customization import groupdocs.signature.domain as gsd Now you\u0026rsquo;re ready to start implementing different signature methods in your Python applications!\n📝 How to eSign Document eSign Document with Form Field Signature What is a Form Field? A form field is an interactive element located on a document page that allows user data input through various control types like free input text boxes, multi-line text boxes, checkboxes, drop-down lists, etc. Different document types support a specific list of form field types. These elements are used to collect information from users on template form. Each Form Field element has a unique name, settings and value field. Form Fields should have unique names within the form.\n# This function demonstrates how to add a text form field signature to a PDF # Form fields create interactive areas where users can input signature information def add_form_field_signature(): # Define file paths for source and output documents sample_pdf = \u0026#34;sample.pdf\u0026#34; # Your source PDF document output_file_path = \u0026#34;form_signed.pdf\u0026#34; # Where to save the signed document # Open the document for signing with gs.Signature(sample_pdf) as signature: # Create a text form field signature with field name and default value # The field name is the identifier, while the value is the default text text_signature = gs.domain.TextFormFieldSignature(\u0026#34;SignatureField\u0026#34;, \u0026#34;Sign here\u0026#34;) # Configure form field options based on the text signature options = gso.FormFieldSignOptions(text_signature) # Set position and size of the form field options.top = 150 # Y-position on page options.left = 50 # X-position on page options.height = 50 # Height of field options.width = 200 # Width of field # Sign document (add form field) and save to file result = signature.sign(output_file_path, options) # Display success message with separate log entries print(f\u0026#34;\\nForm field signature added successfully.\u0026#34;) print(f\u0026#34;Total form fields added: {len(result.succeeded)}\u0026#34;) print(f\u0026#34;File saved at {output_file_path}.\u0026#34;) Form field signatures are powerful when you need to collect standardized information from signers or create interactive documents that guide users through the signing process.\nImage-Based Signatures: Adding Visual Signatures to Documents Image signatures provide a visual representation of a handwritten signature by embedding an image into your document. This method maintains the familiar look of traditional signatures while providing digital convenience.\n# This function shows how to add an image-based signature to documents # Perfect for adding handwritten signatures, company logos, or official seals def add_image_signature(): # Define file paths sample_file_path = \u0026#34;sample.pdf\u0026#34; # Your source document image_signature = \u0026#34;signature.png\u0026#34; # Your signature image file output_file_path = \u0026#34;image_signed.pdf\u0026#34; # Where to save the signed document # Open the document for signing with gs.Signature(sample_file_path) as signature: # Configure image signature options with the path to signature image options = gso.ImageSignOptions(image_signature) # Set position of the image signature options.left = 50 # X-position on page options.top = 50 # Y-position on page # Apply to all pages in the document options.all_pages = True # Sign document with image and save to file result = signature.sign(output_file_path, options) # Display success message with separate log entries print(f\u0026#34;\\nImage signature applied successfully.\u0026#34;) print(f\u0026#34;Total signatures applied: {len(result.succeeded)}\u0026#34;) print(f\u0026#34;Signed document saved at {output_file_path}.\u0026#34;) Image signatures are ideal when you want to maintain the visual authenticity of handwritten signatures while gaining the convenience of digital signing. They\u0026rsquo;re particularly useful for customer-facing documents where the familiar appearance of a signature is important.\nStamp Signatures: Creating Official-Looking Document Seals Stamp signatures create professional, official-looking seals on your documents. They\u0026rsquo;re perfect for notarized documents, contracts, and any scenario where you need to convey authority and formality in your electronic signatures.\n# This function demonstrates how to add an official-looking stamp signature # Ideal for creating notary-style seals, company stamps, or approval marks def add_stamp_signature(): # Import required libraries import groupdocs.signature as gs import groupdocs.signature.domain as gsd import groupdocs.signature.options as gso # Define file paths sample_file_path = \u0026#34;sample.pdf\u0026#34; # Your source document output_file_path = \u0026#34;stamp_signed.pdf\u0026#34; # Where to save the signed document # Open the document for signing with gs.Signature(sample_file_path) as signature: # Define stamp signature options options = gso.StampSignOptions() # Set position and size of the stamp options.left = 50 # X-position on page options.top = 150 # Y-position on page options.width = 200 # Width of stamp options.height = 200 # Height of stamp # Create outer circular line of text for the stamp # This creates the ring of text around the outside of the stamp outer_line = gsd.StampLine() outer_line.text = \u0026#34; * Official Document * \u0026#34; # Text with stars for decoration outer_line.text_repeat_type = gsd.StampTextRepeatType.FULL_TEXT_REPEAT # Repeat text around circle outer_line.font = gsd.SignatureFont() # Configure font outer_line.height = 22 # Height of text line outer_line.text_bottom_intent = 6 # Spacing from bottom options.outer_lines.append(outer_line) # Add to stamp options # Create inner line of text for the stamp (center text) # This creates the content in the middle of the stamp inner_line = gsd.StampLine() inner_line.text = \u0026#34;APPROVED\u0026#34; # Center text of stamp inner_line.font = gsd.SignatureFont() # Configure font inner_line.font.bold = True # Make text bold inner_line.height = 40 # Height of text line options.inner_lines.append(inner_line) # Add to stamp options # Optional: Add more inner lines with additional information date_line = gsd.StampLine() date_line.text = \u0026#34;May 13, 2025\u0026#34; # Date of approval date_line.height = 20 # Height of text line options.inner_lines.append(date_line) # Add to stamp options # Apply the signature and save document result = signature.sign(output_file_path, options) # Display success message with separate log entries print(f\u0026#34;\\nStamp signature applied successfully.\u0026#34;) print(f\u0026#34;Total signatures applied: {len(result.succeeded)}\u0026#34;) print(f\u0026#34;File saved at {output_file_path}.\u0026#34;) Stamp signatures are particularly effective for creating official-looking document seals and are widely used in legal, government, and corporate settings where formality matters.\nComparing Signature Methods: When to Use Each Type Choosing the right signature method depends on your specific document signing needs:\nSignature Type Best For Key Advantages Form Field Interactive forms, Multi-step approval processes Data collection, Validation, Structure Image Customer-facing documents, Personal signing Visual familiarity, Personalization, Simplicity Stamp Legal documents, Notarizations, Official approvals Professional appearance, Customization, Authority For maximum security and flexibility, consider using a combination of these methods in your document workflows.\nSecurity Best Practices for Document E-Signing When implementing e-signatures in your applications, consider these security best practices:\nCertificate Integration: For critical documents, combine with digital certificates Tamper Protection: Implement measures to detect document alterations Audit Trails: Maintain logs of all signature activities and changes Validation: Implement regular signature validation checks Multi-Factor Authentication: Require additional verification before signing Compliance: Ensure your implementation meets industry regulations (ESIGN, eIDAS, etc.) Data Privacy: Handle signer information according to privacy regulations Conclusion \u0026amp; Next Steps Electronic signatures with Python and GroupDocs.Signature offer tremendous advantages for streamlining document workflows:\nFast document signing process from anywhere Enhanced security with tamper detection capabilities Cross-platform compatibility for all operating systems Support for multiple document formats (PDF, Word, Excel, and more) Mobile-friendly signing options Significant time and cost savings over paper processes By mastering the three signature methods covered in this guide - form fields, images, and stamps - you now have the tools to implement professional e-signing capabilities in your Python applications.\nStart transforming your document workflows today with these powerful electronic signature techniques!\nGet Started with Free Trial Ready to start e-signing documents? Get your free trial of GroupDocs.Signature for Python via .NET:\nFree Trial: GroupDocs Releases Temporary License: Get Temporary License Online App: Sign Documents Online 🔗 Additional Resources \u0026amp; Documentation GroupDocs.Signature Documentation Python via .NET Examples API Reference Support Forum ","permalink":"https://blog.groupdocs.com/signature/sign-documents-with-form-field-python/","summary":"Master electronic document signing in Python with GroupDocs.Signature - learn how to create professional digital signatures using stamps, images, and form fields","title":"Complete Guide to E-Sign Documents with Python: Stamp, Image \u0026 Form Field Digital Signatures Made Easy"},{"content":"\rIntroduction Protecting sensitive information in PDFs is crucial. Passwords and permissions are essential security measures to prevent unauthorized access and ensure document integrity. Passwords can be set at different levels, including document-level and permission-level, to control who can open or edit a document.\nPermissions determine what actions users can perform on a document, such as printing, editing, copying, or annotating. By setting permissions, you can control how users interact with your PDFs and prevent unauthorized actions. In this article, we\u0026rsquo;ll explore how to implement password protection and permissions using GroupDocs.Signature, and discuss best practices for securing your PDF documents.\n🔒 Password Protection To secure a document, protecting PDF documents is essential in today\u0026rsquo;s digital landscape, where sensitive information is often shared. While digital signatures ensure authenticity, they don\u0026rsquo;t prevent unauthorized actions like editing or copying. Here\u0026rsquo;s why securing PDFs matters:\nSecure Sensitive Data\nPDFs often contain critical information like contracts, financial reports, or proprietary content. Adding protection prevents unauthorized changes, keeping your data safe.\nPreserve Document Integrity\nUnauthorized edits can compromise a document\u0026rsquo;s trustworthiness. Applying restrictions ensures the original content remains intact and reliable.\nControl Access and Compliance\nRestricting actions like printing or copying helps prevent misuse, protects intellectual property, and ensures compliance with data protection standards like GDPR or HIPAA.\nBy combining digital signatures with password and permission settings, you can confidently secure a document. To achieve this using GroupDocs.Signature, follow these simple steps to protect your signed PDF:\nInitialize the Signature Class Create a new instance of the Signature class, passing the source document path or stream as a parameter. Setup options Define the required signature options, such as QR codes, text, or images, depending on the signature type. Configure Save Options Instantiate a SaveOptions object and set the Password property with your desired password. Optionally, disable if necessary. Sign and Save Call the Sign method, providing the signature options and save options to secure the output document. Note that you can also change permissions or remove password as needed, but for now, let\u0026rsquo;s focus on securing the document with a password. The following example demonstrates how to save a signed document with a password:\n// Example: Adding QR code signature and password-protecting the document using (Signature signature = new Signature(\u0026#34;sample.pdf\u0026#34;)) { // Create QRCode option with predefined QRCode text QrCodeSignOptions signOptions = new QrCodeSignOptions(\u0026#34;JohnSmith\u0026#34;) { // Setup QRCode encoding type EncodeType = QrCodeTypes.QR, // Set signature position Left = 100, Top = 100 }; // Configure save options with password protection SaveOptions saveOptions = new SaveOptions() { // Set document password Password = \u0026#34;1234567890\u0026#34;, // Don\u0026#39;t use original password if document was previously protected UseOriginalPassword = false }; // Sign document and save to output file signature.Sign(\u0026#34;result.pdf\u0026#34;, signOptions, saveOptions); } Note that If the file is already password-protected, you must load the file using specific load options(see \u0026ldquo;Best Practices\u0026rdquo; section) and set the corresponding password in these options to access and process the file successfully.\nAs a result, anyone attempting to open the file will encounter the following message:\n🛡️ Access Control with Permissions 🔐 How to secure PDF documents with permissions\nThe Signature class enables you to save signed documents with permission settings and password protection. You can control both access and modification using the PermissionsPassword and Permissions properties of the PdfSaveOptions class when calling the Sign method.\nHere\u0026rsquo;s how to secure a PDF document:\nCreate a new instance of the Signature class, passing your document path or stream as a parameter. Instantiate required signature options. Create a PdfSaveOptions object and set the PermissionsPassword property (optional). Use Permissions to set user restrictions like denying printing or modification. Call the Sign method on your Signature instance, providing both textSignOptions and PdfSaveOptions. The following example demonstrates how to save signed documents with permissions.\n// Example: Adding text signature with permission restrictions using (Signature signature = new Signature(\u0026#34;sample.pdf\u0026#34;)) { // Create text signature options TextSignOptions textSignOptions = new TextSignOptions(\u0026#34;JohnSmith\u0026#34;) { // Configure signature appearance Left = 0, Top = 100, Width = 100, Height = 100, AllPages = true, ForeColor = Color.Black }; // Create PDF save options with permission restrictions PdfSaveOptions saveOptions = new PdfSaveOptions(); saveOptions.OverwriteExistingFiles = false; // Set permissions to deny printing and modification saveOptions.Permissions = Permissions.DenyPrinting | Permissions.DenyModification; // Set password required to change permissions (optional) saveOptions.PermissionsPassword = \u0026#34;0987654321\u0026#34;; // Sign the document and save with permission restrictions signature.Sign(\u0026#34;result.pdf\u0026#34;, textSignOptions, saveOptions); } Best Practices 📝 How to load PDF documents with permissions\nWith GroupDocs.Signature, you can load PDF documents while preserving specific permissions that remain enforced even after signing. This is achieved using the LoadOptions class, where the Permissions property is configured to define restrictions. These settings ensure that the permissions applied when loading the document are retained in the signed output.\nTo load a PDF document with permissions and maintain them throughout the signing process, follow these steps:\nCreate a new instance of LoadOptions and configure the Permissions property to specify restrictions, such as denying printing, editing, or data extraction. Use this LoadOptions instance to initialize the Signature class with the document path or stream. Configure the required signature options, such as TextSignOptions, to define the signature\u0026rsquo;s appearance and position. Call the Sign method of the Signature class, passing in the signature options. The document will retain the permissions set during loading, ensuring consistent restrictions in the signed file. The following example demonstrates how to load a PDF document with permissions:\n// Example: Loading a document with restricted permissions // Set up load options with specific permissions, denying all actions LoadOptions loadOptions = new LoadOptions() { // Configure to deny all operations (printing, modification, extraction) Permissions = Permissions.DenyAll }; // Initialize Signature with document path and configured load options using (Signature signature = new Signature(\u0026#34;sample.pdf\u0026#34;, loadOptions)) { // Create text signature options TextSignOptions textSignOptions = new TextSignOptions(\u0026#34;JohnSmith\u0026#34;) { // Configure signature appearance Left = 0, Top = 100, Width = 100, Height = 100 }; // Sign document - permissions from loadOptions will be preserved signature.Sign(\u0026#34;result.pdf\u0026#34;, textSignOptions); } By following these steps, you can ensure that your document\u0026rsquo;s permissions are preserved from loading to the final signed output.\n** Use Strong Passwords for Permissions**\nEnsure that the passwords set for PDF permissions and access are complex and secure. Avoid common patterns or easily guessable passwords to enhance protection against unauthorized access.\n** Leverage Permissions Combinations**\nUse a combination of permission settings to meet specific security requirements. For instance:\nDeny printing for sensitive financial documents. Deny editing for legal agreements. Allow limited actions for collaboration while securing critical elements. ** Test Document Accessibility**\nAfter applying permissions, test the document to confirm that the desired restrictions are in place. Use different PDF readers to ensure cross-platform compatibility and consistent permissions enforcement.\n** Sign on All Pages for Visibility**\nFor multi-page documents, consider applying signatures to all pages to ensure visibility and security throughout the document. This is particularly useful for contracts or agreements.\n** Watermark Signed Documents**\nAdd watermarks alongside signatures to provide additional context, such as ownership, confidentiality level, or validity duration. Watermarks help reinforce the document\u0026rsquo;s intended purpose.\n📑 Conclusion In today\u0026rsquo;s digital age, securing signed PDFs is crucial to maintaining their authenticity and protecting sensitive information. By combining digital signatures with permissions and password protection, you can prevent unauthorized actions like editing or copying, ensuring document integrity and compliance with regulations such as GDPR and HIPAA.\nTo secure a document, it\u0026rsquo;s essential to setup permissions that control access and modification. Additionally, you may need to change permissions as needed to adapt to different scenarios. Furthermore, knowing how to remove password protection can be useful in certain situations. Throughout this article, we\u0026rsquo;ve explored the importance of password protection and permissions in securing PDF documents using GroupDocs.Signature. We\u0026rsquo;ve also discussed best practices for loading PDF documents with permissions, using strong passwords, leveraging permission combinations, testing document accessibility, signing on all pages, and watermarking signed documents.\nGroupDocs.Signature simplifies the process of securing a document by providing an easy-to-use interface for setting up permissions, changing permissions, and managing password protection. With its robust features, you can confidently protect your PDFs and maintain their integrity.\nBy following the steps outlined in this article and using GroupDocs.Signature, you can:\nSecure sensitive data and prevent unauthorized changes Preserve document integrity and ensure compliance with regulations Control access and permissions to prevent misuse Get a Free Trial You can try GroupDocs.Signature APIs for free by just downloading and installing the latest version on our release downloads website.\nYou can also get a temporary license to test all the library\u0026rsquo;s functionalities without any constraints. Head to the temporary license page to apply for a temporary license.\n🔗 See Also For more information and additional resources, you may find the following links useful:\nGroupDocs.Signature for .NET Examples GroupDocs.Signature for Java Examples GroupDocs.Signature for Node.js via Java Examples Download and try GroupDocs.Signature APIs for free Try GroupDocs.Signature with full-access temporary license Documentation of our APIs Free Support Forum ","permalink":"https://blog.groupdocs.com/signature/protect-signed-pdf-document/","summary":"Learn to implement robust PDF security using GroupDocs.Signature with password protection and permission controls to safeguard sensitive information in your documents","title":"🛡️ How to Protect PDF Documents with Access Control and Password Security"},{"content":"\rIntroduction to Digital Document Signing Electronic signatures have revolutionized how businesses and individuals handle document workflows. No more printing, signing, and scanning - now you can sign documents digitally with just a few lines of Python code!\nThis comprehensive guide will walk you through creating electronic signatures for PDF, Word, and Excel documents using GroupDocs.Signature for Python via .NET. Whether you\u0026rsquo;re building a document management system, automating business processes, or creating a secure signing platform, this tutorial has you covered.\nUnderstanding E-Signatures \u0026amp; Their Benefits An electronic signature is more than just a digital representation of a handwritten signature. It\u0026rsquo;s a secure method of verifying a document\u0026rsquo;s authenticity and the signer\u0026rsquo;s identity. Key benefits include:\nLegal Validity: Recognized in most countries worldwide Security: Cryptographically protected against tampering Efficiency: Sign documents online instantly from anywhere Traceability: Detailed audit trails of signing processes Cost-Effective: Eliminate paper, printing, and shipping costs Integration: Easily incorporate into existing document workflows 🛠️ Setting Up Your Python Environment Before we start signing documents, you\u0026rsquo;ll need to set up your Python environment correctly. Follow these simple steps to get ready:\nInstall GroupDocs.Signature for Python via .NET pip install groupdocs-signature-net Import Required Modules # Import the core GroupDocs.Signature library import groupdocs.signature as gs # Import options for configuring signature settings import groupdocs.signature.options as gso # Import appearance settings for customizing how signatures look import groupdocs.signature.options.appearances as appearances 📝 How to E-Sign PDF Documents with Python PDF is one of the most common document formats requiring digital signatures. Below is a complete example showing how to add a professional e-signature to your PDF files with full customization options.\n# This function demonstrates how to add a digital signature to a PDF document # The signature includes both a digital certificate and visual elements def sign_pdf_document(): # Define file paths sample_file_path = \u0026#34;sample.pdf\u0026#34; # Your source PDF document certificate_pfx = \u0026#34;MrSmithSignature.pfx\u0026#34; # Digital certificate file image_handwrite = \u0026#34;signature_handwrite.jpg\u0026#34; # Optional handwritten signature image output_file_path = \u0026#34;signed.pdf\u0026#34; # Where to save the signed document # Open the document for signing with gs.Signature(sample_file_path) as signature: # Configure digital signature options options = gso.DigitalSignOptions(certificate_pfx) # Set visual appearance properties options.image_file_path = image_handwrite # Add handwritten signature image options.left = 450 # X-position on page options.top = 150 # Y-position on page options.page_number = 1 # Which page to sign options.password = \u0026#34;1234567890\u0026#34; # Certificate password # Add metadata to the signature options.appearance = appearances.DigitalSignatureAppearance( \u0026#34;John Smith\u0026#34;, # Signer name \u0026#34;Title\u0026#34;, # Signer title \u0026#34;jonny@test.com\u0026#34; # Signer email ) options.reason = \u0026#34;Document Approval\u0026#34; # Why the document is being signed options.contact = \u0026#34;JohnSmith\u0026#34; # Contact information options.location = \u0026#34;Office1\u0026#34; # Where the signing took place # Apply the signature and save document result = signature.sign(output_file_path, options) # Display success message with two separate log entries print(f\u0026#34;\\nSource document signed successfully.\u0026#34;) print(f\u0026#34;Total signatures applied: {len(result.succeeded)}\u0026#34;) print(f\u0026#34;File saved at {output_file_path}.\u0026#34;) Result output:\nAdding Digital Signatures to Excel Files Excel spreadsheets often contain important financial data that requires authentication. Here\u0026rsquo;s how to securely sign Excel files using Python to verify their authenticity and prevent unauthorized changes.\n# This function demonstrates how to digitally sign an Excel spreadsheet # Perfect for financial documents, reports, and other sensitive data def sign_excel_document(): # Define file paths sample_file_path = \u0026#34;sample.xlsx\u0026#34; # Your source Excel document certificate_pfx = \u0026#34;MrSmithSignature.pfx\u0026#34; # Digital certificate file output_file_path = \u0026#34;signed.xlsx\u0026#34; # Where to save the signed document # Open the Excel document for signing with gs.Signature(sample_file_path) as signature: # Configure digital signature options with certificate options = gso.DigitalSignOptions(certificate_pfx) # Set position of the signature in the Excel document options.left = 450 # X-position on page options.top = 150 # Y-position on page options.page_number = 1 # Which sheet to sign (first sheet) options.password = \u0026#34;1234567890\u0026#34; # Certificate password # Add signer information to the signature metadata options.appearance = appearances.DigitalSignatureAppearance( \u0026#34;John Smith\u0026#34;, # Signer name \u0026#34;Title\u0026#34;, # Signer title \u0026#34;jonny@test.com\u0026#34; # Signer email ) # Apply the signature and save document result = signature.sign(output_file_path, options) # Display success message with two separate log entries print(f\u0026#34;\\nExcel document signed successfully.\u0026#34;) print(f\u0026#34;Total signatures applied: {len(result.succeeded)}\u0026#34;) print(f\u0026#34;Signed Excel file saved at {output_file_path}.\u0026#34;) Implementing Barcode Signatures for Document Security Barcode signatures provide an additional layer of document verification, allowing for quick scanning and validation. This approach is particularly useful for documents that need to be verified in physical environments.\n# This function adds a scannable barcode signature to documents # Great for inventory documents, certificates, or tracking documents def add_barcode_signature(): # Import required libraries import groupdocs.signature as gs import groupdocs.signature.domain as gsd import groupdocs.signature.options as gso # Define file paths sample_file_path = \u0026#34;sample.xlsx\u0026#34; # Your source document output_file_path = \u0026#34;barcode_signed.xlsx\u0026#34; # Where to save the signed document # Open the document for signing with gs.Signature(sample_file_path) as signature: # Create barcode signature options with the text to encode options = gso.BarcodeSignOptions(\u0026#34;GroupDocs.Signature\u0026#34;) # Set barcode type - CODE128 is widely used and reliable options.encode_type = gsd.BarcodeTypes.CODE128 # Configure barcode appearance and position options.left = 50 # X-position on page options.top = 150 # Y-position on page options.width = 100 # Width of barcode options.height = 50 # Height of barcode # Apply the signature and save document result = signature.sign(output_file_path, options) # Display success message with two separate log entries print(f\u0026#34;\\nDocument signed with barcode successfully!\u0026#34;) print(f\u0026#34;Total signatures applied: {len(result.succeeded)}\u0026#34;) print(f\u0026#34;File saved at {output_file_path}.\u0026#34;) Result output:\nCreating QR-Code Signatures for Mobile Verification QR codes are perfect for mobile verification scenarios, allowing anyone with a smartphone to quickly verify document authenticity or access additional information linked to the document.\n# This function adds a QR code signature to documents # Perfect for mobile verification and linking to online resources def add_qrcode_signature(): # Import required libraries import groupdocs.signature as gs import groupdocs.signature.domain as gsd import groupdocs.signature.options as gso # Define file paths sample_file_path = \u0026#34;sample.pdf\u0026#34; # Your source document output_file_path = \u0026#34;qrcode_signed.pdf\u0026#34; # Where to save the signed document # Open the document for signing with gs.Signature(sample_file_path) as signature: # Create QR code options with the data to encode # This could be verification URL, document ID, or other data options = gso.QrCodeSignOptions(\u0026#34;GroupDocs.Signature\u0026#34;) # Set QR code type - standard QR code is most widely supported options.encode_type = gsd.QrCodeTypes.QR # Configure QR code appearance and position options.left = 50 # X-position on page options.top = 150 # Y-position on page options.width = 100 # Width of QR code options.height = 100 # Height of QR code options.rotation_angle = 45 # Optional: rotate the QR code # Apply the signature and save document result = signature.sign(output_file_path, options) # Display success message with two separate log entries print(f\u0026#34;\\nDocument signed with QR code successfully!\u0026#34;) print(f\u0026#34;Total signatures applied: {len(result.succeeded)}\u0026#34;) print(f\u0026#34;File saved at {output_file_path}.\u0026#34;) Result output:\nSecurity Best Practices for E-Signatures When implementing e-signatures in your applications, consider these security best practices:\nCertificate Management: Store certificates securely with proper access controls Password Protection: Use strong passwords for certificate access Time Stamping: Include timestamp services to prove when documents were signed Audit Trails: Maintain logs of all signature activities Validation: Implement regular signature validation checks Multi-Factor Authentication: Require additional verification before signing Compliance: Ensure your implementation meets industry regulations (ESIGN, eIDAS, etc.) 📑 Conclusion \u0026amp; Next Steps Electronic signatures with Python and GroupDocs.Signature offer:\nFast document signing and processing High-security verification and tamper protection Cross-platform compatibility for all operating systems Support for multiple document formats (PDF, Word, Excel, and more) Mobile-friendly verification options with QR codes Streamlined document workflows and approval processes Start transforming your document workflows today by implementing secure, efficient electronic signatures with Python!\nGet Started with Free Trial Ready to dive in? Get your free trial of GroupDocs.Signature for Python via .NET:\nFree Trial: GroupDocs Releases Temporary License: Get Temporary License Online App: Sign Documents Online Additional Resources \u0026amp; Documentation GroupDocs.Signature Documentation Python via .NET Examples API Reference Support Forum ","permalink":"https://blog.groupdocs.com/signature/sign-documents-electronically-with-python/","summary":"Learn how to easily implement digital signature solutions in Python with GroupDocs.Signature - comprehensive e-signing guide for developers","title":"📝 Ultimate Guide to E-Sign Documents with Python: Create Digital Signatures for PDF, Excel \u0026 More"},{"content":"Introduction to Digital Signature Verification Need to check if a document\u0026rsquo;s signature is real? Digital signatures are like electronic fingerprints that help prove who signed a document and show if anyone changed it after signing. Unlike paper signatures, digital signatures use special encryption that makes them much more secure.\nThis guide shows you how to verify different types of signatures in documents using Python and the GroupDocs.Signature library. Whether you need to check digital signatures, barcodes, or QR codes in PDF, Word, or Excel files, we\u0026rsquo;ve got you covered with simple, ready-to-use code examples.\nWhat Are Digital Signatures? Digital signatures work like a high-tech version of handwritten signatures but with extra security features. Here\u0026rsquo;s what makes them special:\nThey prove identity - They show who really signed the document They protect content - They show if anyone changed the document after signing They can\u0026rsquo;t be denied - The signer can\u0026rsquo;t claim they didn\u0026rsquo;t sign it When someone signs a document digitally, they use a private key that only they have. Anyone can check the signature with a public key to make sure it\u0026rsquo;s real. This checking process is what we\u0026rsquo;ll learn in this guide.\nThink of digital signatures like a special lock that only one person can close, but anyone can verify if it\u0026rsquo;s properly locked.\nHow to Verify Digital Signatures Digital signature verification is a critical process for ensuring document authenticity and integrity in today\u0026rsquo;s digital landscape. When you verify digital signatures in documents, you\u0026rsquo;re essentially checking two main things: whether the signature is authentic and whether the document has been modified since it was signed.\nUnderstanding the Digital Signature Verification Process The signature verification process involves several key steps that work together to validate electronic signatures:\nCertificate Chain Validation: Every digital signature contains a certificate that identifies the signer. During verification, the system checks if this certificate is valid, not expired, and issued by a trusted Certificate Authority (CA). This step ensures that the person claiming to have signed the document actually has the authority to do so.\nCryptographic Hash Verification: Digital signatures use cryptographic hash functions to create a unique fingerprint of the document at the time of signing. When verifying signatures, the system recalculates this hash and compares it to the original. If they match, the document hasn\u0026rsquo;t been tampered with.\nTimestamp Validation: Many electronic signatures include timestamps that prove when the document was signed. This timestamp verification helps establish the signing order and ensures the signature was created when the certificate was still valid.\nWhy Digital Signature Verification Matters Document signature verification serves multiple crucial purposes in modern business workflows:\nLegal Compliance: Many industries require verified electronic signatures to meet regulatory standards. Proper signature verification ensures your documents hold up in legal proceedings and comply with laws like eIDAS in Europe or ESIGN Act in the United States.\nSecurity Assurance: Verifying digital signatures protects against document forgery and unauthorized modifications. This is especially important for contracts, financial documents, and sensitive business agreements.\nWorkflow Integrity: In automated document processing systems, signature verification ensures that only properly signed documents move through your business processes, preventing errors and maintaining quality control.\nTypes of Signatures You Can Verify Modern document signing solutions support various signature types, each serving different use cases:\nPKI-Based Digital Signatures: These use Public Key Infrastructure and are the most secure option. They\u0026rsquo;re ideal for high-value transactions, legal documents, and scenarios requiring non-repudiation.\nBiometric Signatures: These capture unique biological characteristics like handwriting patterns or fingerprints. They\u0026rsquo;re excellent for scenarios where you need to prove the physical presence of the signer.\nSimple Electronic Signatures: These include basic email confirmations, checkbox acceptance, or typed names. While less secure, they\u0026rsquo;re suitable for low-risk agreements and internal workflows.\n✅ Verify Barcode Signature Barcodes can store signature information in documents. Here\u0026rsquo;s how to check if a barcode signature is valid:\nGet the right tools: Import the GroupDocs.Signature modules Set up your document: Tell the program which file to check Check the barcode: Use special options to verify the barcode Get the results: See if the signature is valid Here\u0026rsquo;s the code that does all this:\nimport groupdocs.signature as gs import groupdocs.signature.options as gso import groupdocs.signature.domain as gsd import os def run(): # The path to your signed document file_path = \u0026#34;sample.pdf\u0026#34; # Open the document to check with gs.Signature(file_path) as signature: options = gso.BarcodeVerifyOptions() options.all_pages = True # Check all pages options.text = \u0026#34;12345\u0026#34; options.match_type = gsd.TextMatchType.CONTAINS # Verify the signature result = signature.verify(options) if result.is_valid: print(f\u0026#34;\\nDocument {file_path} signature is valid!\u0026#34;) else: print(f\u0026#34;\\nDocument {file_path} signature check failed.\u0026#34;) if __name__ == \u0026#34;__main__\u0026#34;: run() ✅ Verify Digital Signature Digital signatures are the most secure type because they use special certificates. Here\u0026rsquo;s how to verify them:\nGet the right tools: Import the needed modules Set up your document: Point to your signed file Set verification options: Tell the program what to check for Run the check: Verify the signature See the results: Find out if it passed the test Here\u0026rsquo;s the code to make it happen:\nimport groupdocs.signature as gs import groupdocs.signature.options as gso import os def run(): # The path to your signed document file_path = \u0026#34;sample.pdf\u0026#34; certificate_pfx = \u0026#34;path to certificate\u0026#34; # Open the document to check with gs.Signature(file_path) as signature: options = gso.DigitalVerifyOptions(certificate_pfx) options.contact = \u0026#34;Mr.Smith\u0026#34; options.password = \u0026#34;1234567890\u0026#34; # Verify the signature result = signature.verify(options) if result.is_valid: print(f\u0026#34;\\nDocument {file_path} signature is valid!\u0026#34;) for item in result.succeeded: print(f\u0026#34;\\nFound a valid signature.\u0026#34;) else: print(f\u0026#34;\\nDocument {file_path} signature check failed.\u0026#34;) if __name__ == \u0026#34;__main__\u0026#34;: run() ✅ Verify QR-Code Signature QR codes are those square patterns you can scan with your phone. They can also store signature info. Here\u0026rsquo;s how to check them:\nGet your tools ready: Import the needed modules Choose your document: Set the file path Set up QR verification: Create the right options Check the QR code: Run the verification See if it passed: Check the results Here\u0026rsquo;s the code that does the job:\nimport groupdocs.signature as gs import groupdocs.signature.options as gso import groupdocs.signature.domain as gsd import os def run(): # The path to your signed document file_path = \u0026#34;sample.pdf\u0026#34; # Open the document to check with gs.Signature(file_path) as signature: options = gso.QrCodeVerifyOptions() options.all_pages = True # Check all pages options.text = \u0026#34;John\u0026#34; options.match_type = gsd.TextMatchType.CONTAINS # Verify the signature result = signature.verify(options) if result.is_valid: print(f\u0026#34;\\nDocument {file_path} signature is valid!\u0026#34;) else: print(f\u0026#34;\\nDocument {file_path} signature check failed.\u0026#34;) if __name__ == \u0026#34;__main__\u0026#34;: run() 📝 Conclusion Verifying digital signatures is essential for ensuring document security in today\u0026rsquo;s digital world. With GroupDocs.Signature for Python via .NET, you can easily check different types of signatures in your documents:\n✔️ Barcode signatures for tracking and automated systems ✔️ Digital signatures with certificate-based security ✔️ QR code signatures for mobile-friendly verification The code examples in this guide show how simple it is to add signature verification to your Python applications. By implementing these verification methods, you can:\nMake sure documents haven\u0026rsquo;t been tampered with Verify the identity of document signers Create more secure document workflows Build trust in your digital document processes Start implementing digital signature verification today and take your document security to the next level!\nGet a Free Trial Want to try these signature verification features yourself? You can download a free trial of GroupDocs.Signature for Python via .NET from releases.groupdocs.com. You can also get a temporary license at https://purchase.groupdocs.com/temporary-license/ to test all the features without limitations.\nSee Also GroupDocs.Signature Documentation GroupDocs.Signature Products Page GitHub Examples API Reference ","permalink":"https://blog.groupdocs.com/signature/verify-digital-signature-in-documents-using-python/","summary":"Learn to check digital signatures in PDF, Word, and Excel files with simple Python code","title":"How to Verify Digital Signatures in Documents Using Python - Easy Guide"},{"content":"Introduction PDF files are essential in various industries, and ensuring their authenticity and integrity through digital signatures is a critical security measure. Digital signatures provide legal validity and protect documents from tampering. This comprehensive guide walks you through implementing .NET PDF signing by creating a secure PDF digital signature service using Azure Key Vault and GroupDocs.Signature for .NET.\nElectronic document signatures have become increasingly important for businesses transitioning to paperless workflows. GroupDocs.Signature for .NET offers a powerful C# PDF digital signature solution that meets digital signature compliance requirements across various regulatory frameworks. Whether you\u0026rsquo;re new to PDF signing in .NET applications or looking to enhance your existing implementation, this tutorial covers everything you need to know.\nAzure Key Vault is a cloud-based key management service that allows secure storage and management of cryptographic keys and certificates. GroupDocs.Signature for .NET is a powerful, secure PDF signing API that enables developers to programmatically apply digital signatures to PDF files. By integrating these technologies, you can build a robust and efficient PDF digital signature service.\nOne of the most powerful features we\u0026rsquo;ll explore is custom hash signing, which provides exceptional flexibility for your signing workflow. This approach allows you to connect external signing devices like hardware security modules (HSMs), smart cards, or any other cryptographic devices to your application. With custom hash signing, developers can write their own sign services that interface with proprietary systems, legacy infrastructure, or specialized security hardware while maintaining compatibility with the GroupDocs.Signature framework. This makes it an ideal solution for organizations with specific security requirements or existing investment in cryptographic infrastructure.\n🔐 Create an Azure key vault and certificate Let’s begin by setting up an Azure Key Vault and generating a certificate.\nStep 1: Provision the Key Vault\nCreate a new Azure Key Vault resource using the Azure portal. For detailed instructions, please check out this quick-start guide.\n💡If you don’t have an active Azure subscription, you can sign up for a 1-month free trial to get started.\nStep 2: Generate or Import Your Certificate\nOnce your key vault is up and running, navigate to its dashboard, select the Certificates tab, and click on Generate/Import to add your certificate.\nStep 3: In the Method of Certificate Creation field, select Generate to automatically create a new certificate. For this example, we’re opting for a Self-signed certificate as the certificate authority type.\nNote: If you prefer to use an existing certificate, you can select Import to load one from your local device.\nStep 4: Then, go to Advanced Policy Configuration and set the Private Key Export option to No.\nStep 5: Finally, click Create. The certificate will now be added to your key vault.\nTo view its details, simply click on the certificate to open its properties.\n⚙️ Register the application to enable access to the Azure Key Vault To allow the Web API to access the Azure Key Vault, you need to register it in Azure Active Directory:\nStep 1: Navigate to Azure Active Directory, choose App registrations, and click New registration.\nStep 2: Enter your application name and register.\nAfter registration, you\u0026rsquo;ll receive key details—copy the Client ID and Tenant ID for use in your application.\nStep 3: Next, select API Permissions from the side menu and click Add Permission. Choose Azure Key Vault, select Full Access, and finalize the process by clicking Add Permissions.\nStep 4: Select the Certificate \u0026amp; secrets and click New client secret to create a new secret key. Copy this key to access it from your .NET application.\n🔐 Assign the Access Policy to the Azure Key Vault In the previous steps, we created and registered the application. Now, we need to grant the newly registered application access to the Azure Key Vault:\nStep 1: Navigate to the Azure Key Vault, select Access Policies, and click Create.\nStep 2: Select the necessary permissions and click Next.\nStep 3: In this window, choose the application we registered earlier, GroupDocs.Signature.Service, and click Create.\nThe application will now appear in the Access Policies section.\n📑 How to use Azure Key Vault with GroupDocs.Signature for .NET PDF Signing This comprehensive guide explains how to sign PDF documents using the GroupDocs.Signature API in .NET with custom hash signing that leverages Azure Key Vault. We\u0026rsquo;ll break down the process into clear steps—from configuring your C# environment to implementing a custom hash signer that meets digital signature compliance requirements.\nOverview of Secure PDF Signing with Custom Hash Implementation The custom hash signing approach offers exceptional flexibility for implementing electronic document signatures in your .NET applications. Here\u0026rsquo;s what we\u0026rsquo;ll cover:\nSet up your .NET application to work with GroupDocs.Signature for PDF digital signatures Configure professional digital signing options with proper certificate management Implement a custom hash signing mechanism for maximum flexibility Integrate Azure Key Vault to securely retrieve the public certificate and sign the document Follow security best practices throughout the implementation For additional background, refer to the GroupDocs.Signature documentation on digital signing with custom hash.\n🚀Benefits of Custom Hash Signing for .NET PDF Applications Before diving into implementation, it\u0026rsquo;s important to understand why custom hash signing represents a significant advancement in digital signature technology:\nIntegration with External Signing Devices: Custom hash signing enables seamless connection with hardware security modules (HSMs), smart cards, biometric devices, and other specialized cryptographic hardware that your organization may already use. Flexible Architecture for Enterprise Solutions: Organizations can write their own sign services that interface with existing infrastructure, legacy systems, or proprietary signing solutions while maintaining compatibility with GroupDocs.Signature. Enhanced Security Compliance: By separating the hash generation from the actual signing process, you maintain better control over cryptographic operations, helping meet stringent regulatory requirements like eIDAS, ESIGN Act, and industry-specific compliance standards. Support for Cloud-Based Key Management: Integration with Azure Key Vault allows certificates to be securely stored and managed in Microsoft\u0026rsquo;s certified secure infrastructure rather than on local machines. Signature Process Customization: Implement custom approval workflows, multi-party signing sequences, or specialized validation rules that go beyond standard digital signature implementations. Step 1. Configuring the C# PDF Digital Signature Environment Start by defining your file paths and initializing the GroupDocs.Signature object in your C# application. In this example, we specify the source PDF file and the output location for the signed document.\npublic static void SignDocument() { // Define paths for the source and output documents string sampleFilePath = \u0026#34;sample.pdf\u0026#34;; string sampleOutputFilePath = \u0026#34;signed.pdf\u0026#34;; using (Signature signature = new Signature(sampleFilePath)) { // Code continues in the next steps... } } 📌Annotation:\nThis step creates a new Signature instance that loads the PDF document you want to sign, establishing the foundation for secure PDF signing in your .NET application.\nStep 2. Configuring Digital Signature Options Next, set up your digital signature options. These options include certificate details, visual appearance, and the hash algorithm. The custom hash signing will be plugged in later.\n// Initialize digital signing options DigitalSignOptions options = new DigitalSignOptions() { Signature = new DigitalSignature(), Password = \u0026#34;1234567890\u0026#34;, // Certificate password Reason = \u0026#34;Sign\u0026#34;, // Signing reason Contact = \u0026#34;JohnSmith\u0026#34;, // Contact information Location = \u0026#34;Office1\u0026#34;, // Signing location AllPages = true, // Apply signature on all pages Width = 80, Height = 60, VerticalAlignment = VerticalAlignment.Bottom, HorizontalAlignment = HorizontalAlignment.Right, Margin = new Padding() { Bottom = 10, Right = 10 }, HashAlgorithm = HashAlgorithm.Sha256 // Specify SHA-256 for hashing }; 📌Annotation:\nConfigure basic digital signature properties such as appearance, positioning, and hashing to ensure your electronic document signatures meet professional standards.\nSecurity note: In production, avoid hardcoding sensitive values (like passwords); instead, use secure configuration methods consistent with digital signature compliance requirements.\nStep 3. Implementing Custom Hash Signing Now, assign your custom hash signer to the options. This custom signer implements the ICustomSignHash interface and will be used to sign the hash with Azure Key Vault or any other external signing device you wish to integrate.\nvar azureSigner = new AzureSigner(); options.CustomSignHash = azureSigner; options.Signature.Certificate = azureSigner.GetPublicCertificateFromAzureStorage(); 📌Annotation:\nHere, an instance of AzureSigner is created. Its CustomSignHash method will be invoked during the signing process, and it also retrieves the public certificate from Azure Key Vault.\nStep 4. Signing the Document Finally, call the Sign method to generate the signed PDF document using your custom hash signing implementation.\nsignature.Sign(sampleOutputFilePath, options); 📌Annotation:\nThis method applies your digital signature to the document using the previously configured options, including your custom hash signer. The resulting PDF will contain a cryptographically secure signature that can be validated using standard PDF readers or programmatically with GroupDocs.Signature\u0026rsquo;s validation features.\nStep 5. Detailed Implementation of Azure Certificate Signing Below is the complete implementation of the custom signer using Azure Key Vault for Azure certificate signing. This class demonstrates professional Azure certificate signing practices by retrieving Azure credentials, fetching the public certificate, and securely signing the document hash.\npublic class AzureSigner : ICustomSignHash { public byte[] CustomSignHash(byte[] hash, HashAlgorithm hashAlgorithm, SignatureContext signatureContext) { // Delegate the signing operation to Azure return SignWithAzure(hash); } private static byte[] SignWithAzure(byte[] signableHash) { // Retrieve Azure credentials var credential = GetAzureSecretCredential(); // Specify your Key Vault certificate key identifier var certificateKeyId = \u0026#34;https://groupdocskeyvault.vault.azure.net/keys/GroupDocsSignatureCertificate/\u0026gt;\u0026#34;; CryptographyClient client = new CryptographyClient(new Uri(certificateKeyId), credential); // Sign the hash using RS256 var result = client.Sign(SignatureAlgorithm.RS256, signableHash); return result.Signature; } static ClientSecretCredential GetAzureSecretCredential() { // Provide your Azure AD tenant, client, and secret details string tenantId = \u0026#34;your tenant id\u0026#34;; string clientId = \u0026#34;your client id\u0026#34;; string secret = \u0026#34;your secret\u0026#34;; ClientSecretCredential credential = new ClientSecretCredential(tenantId, clientId, secret); return credential; } public X509Certificate2 GetPublicCertificateFromAzureStorage() { // Define the Key Vault URI string vaultUri = \u0026#34;https://groupdocskeyvault.vault.azure.net/\u0026gt;\u0026#34;; var credential = GetAzureSecretCredential(); X509Certificate2 pubCertificate = GetPublicCertificateFromAzureStorage(credential, vaultUri); return pubCertificate; } static X509Certificate2 GetPublicCertificateFromAzureStorage( ClientSecretCredential credential, string uri) { // Create a certificate client for the Key Vault CertificateClient certificateClient = new CertificateClient(new Uri(uri), credential); // Retrieve the certificate with the public key KeyVaultCertificateWithPolicy certificate = certificateClient.GetCertificateAsync(\u0026#34;GroupDocsSignatureCertificate\u0026#34;).Result; return new X509Certificate2(certificate.Cer); } } 📌Annotations:\nAzure Credentials:\nThe GetAzureSecretCredential method creates a credential using your tenant ID, client ID, and secret. Security note: Ensure you store these credentials securely (for example, using Azure Key Vault or a secure configuration store) to maintain the integrity of your .NET PDF signing implementation. Signing with Azure:\nThe SignWithAzure method uses the CryptographyClient from Azure SDK to sign the hash with the certificate stored in Azure Key Vault, demonstrating a professional approach to certificate management that follows digital signature compliance best practices. Public Certificate Retrieval:\nThe method GetPublicCertificateFromAzureStorage connects to your Azure Key Vault and retrieves the certificate necessary for signature verification, ensuring your electronic document signatures can be validated appropriately. Step 6. Azure Key Vault Implementation Steps for PDF Digital Signatures To integrate Azure Key Vault with your custom sign services, follow these steps:\nSetup Azure Key Vault: Create an Azure Key Vault instance. Upload your signing certificate to the Key Vault. Configure access policies for your application. Configure Azure Credentials: Register your application in Azure Active Directory. Retrieve your tenant ID, client ID, and client secret. Create a ClientSecretCredential for accessing Key Vault. Retrieve the Certificate: Use the CertificateClient to fetch the certificate containing the public key from Azure Key Vault. This certificate is used to verify the digital signature. Implement Custom Signing: Use the Azure SDK’s CryptographyClient to sign the hash of the document. Specify the appropriate signature algorithm (e.g., RS256). 📌Annotation:\nEach of these steps is critical to ensure that your signing process is secure and that sensitive keys remain protected in the cloud while offering the flexibility to implement your own sign services for specialized requirements.\n🧩 Extending Your Custom Signing Implementation The beauty of GroupDocs.Signature\u0026rsquo;s custom hash signing approach is that you can adapt it to work with virtually any external signing device or service. Here are some examples of how you might extend this implementation:\nHardware Security Modules (HSMs): Implement a custom signer that communicates with physical HSMs for maximum security. Smart Card Integration: Create a signer that interfaces with smart card readers for corporate environments that require physical authentication. Biometric Authentication: Build a signing service that requires fingerprint or facial recognition before authorizing signature creation. Multi-Party Approval: Implement a custom signing workflow where multiple parties must approve before the final signature is applied. Cloud Service Providers: Adapt the example to work with AWS KMS, Google Cloud KMS, or other cloud key management services. By implementing your own sign services through the ICustomSignHash interface, you maintain complete control over your cryptographic operations while leveraging the powerful document handling capabilities of GroupDocs.Signature for .NET.\n✨ Final Thoughts on Electronic Document Signatures This guide demonstrated how to integrate GroupDocs.Signature with Azure Key Vault for creating compliant electronic document signatures for PDF files in a secure manner. Electronic document signatures created through this method meet industry standards for authenticity and integrity. By following this step-by-step approach and observing security best practices (such as secure credential handling), you can implement a robust digital signing solution in your .NET application that works across your entire document workflow.\nFor further details and advanced scenarios, consult the official documentation.\nGet a Free Trial You can try GroupDocs.Signature APIs for free by just downloading and installing the latest version on our release downloads website.\nYou can also get a temporary license to test all the library\u0026rsquo;s functionalities without any constraints. Head to the temporary license page to apply for a temporary license.\n🔗 See Also For more information and additional resources, you may find the following links useful:\nGroupDocs.Signature for .NET Examples GroupDocs.Signature for Java Examples GroupDocs.Signature for Node.js via Java Examples Download and try GroupDocs.Signature APIs for free Try GroupDocs.Signature with full-access temporary license Documentation of our APIs Free Support Forum ","permalink":"https://blog.groupdocs.com/signature/custom-hash-sign-with-azure-key-vault/","summary":"Learn how to implement secure PDF digital signatures using Azure Key Vault and GroupDocs.Signature for .NET in this comprehensive step-by-step developer guide.","title":"📄 Digitally Sign PDFs with Azure Key Vault \u0026 GroupDocs.Signature for .NET | Complete Guide"},{"content":"Overview Merging PowerPoint presentations is a common task, especially for professionals who need to compile information from multiple files into a single cohesive document. The PPTX format is widely used for presentations, and with the right tools, merging these files can be accomplished swiftly and effectively. In this guide, we will explore how to merge PPTX presentations in Node.js using the GroupDocs.Merger for Node.js via Java API.\nHow to merge PPTX presentations in Node.js Merging PPTX presentations in Node.js is straightforward with the GroupDocs.Merger for Node.js via Java API. Below are the necessary steps to effectively merge multiple PPTX files into a single PPTX file.\nSteps to Merge PPTX Presentations Initialize the Merger:\nCreate an instance of the Merger class and provide the path to the first PPTX file you want to merge. Add Additional PPTX Files:\nUse the join method to add other PPTX files that you want to include in the merged document. Save the Merged PPTX:\nInvoke the save method on the Merger instance to save the resultant merged PPTX file to your desired location. Here’s a code snippet illustrating how to follow these steps:\n// Import the GroupDocs.Merger library const GroupDocs = require(\u0026#34;groupdocs-merger\u0026#34;); async function mergePptx(groupdocs, inputFilePath) { // Step 1: Initialize the merger with the first PPTX file const merger = new groupdocs.merger.Merger(inputFilePath); const outputPath = `${groupdocs.outputFolder}/MergedPptx.pptx`; console.log(`Merged presentation will be saved to: ${outputPath}`); // Step 2: Add additional PPTX files to merge merger.join(inputFilePath); // Add another PPTX file // Step 3: Save the merged PPTX file return merger.save(outputPath); } // Example usage (async () =\u0026gt; { const groupdocs = { outputFolder: \u0026#34;/path/to/output\u0026#34; }; // Define output folder const inputFilePath = \u0026#34;/path/to/input/file1.pptx\u0026#34;; // Define input file await mergePptx(groupdocs, inputFilePath); })(); Code Explanation: Import the Library: The GroupDocs.Merger library is imported to utilize its functionalities. Merge Function: The mergePptx function initializes the merger, adds files, and saves the merged output. Logging: Console logs are used to inform the user where the merged presentation will be saved. Asynchronous Handling: The function is designed to be asynchronous for efficient file operations. Code Example In this example, we demonstrated how to merge multiple PPTX files into a single file. You can test this code in your Node.js environment.\nImportant Notes Make sure to install the necessary GroupDocs.Merger package before running the code. Adjust the paths for both input files and output locations as per your project requirements. See also GroupDocs.Merger for Node.js Documentation GroupDocs.Merger API Reference GitHub Examples Download Free Trial You can download a free trial from releases.groupdocs.com and also acquire a temporary license at purchase.groupdocs.com/temporary-license. The temporary license allows you to use our library without restrictions during the trial period.\nExamples In addition to merging PPTX files, the GroupDocs.Merger provides a variety of examples to demonstrate its functionalities. Below are a few examples of how to merge presentations using various approaches in Node.js.\nExample 1: Merging Multiple PPTX Files You can merge multiple PPTX files seamlessly using the join method by iterating through an array of file paths.\n// Import the GroupDocs.Merger library const GroupDocs = require(\u0026#34;groupdocs-merger\u0026#34;); async function mergeMultiplePptx(groupdocs, inputFiles) { // Step 1: Initialize the merger with the first PPTX file const merger = new groupdocs.merger.Merger(inputFiles[0]); const outputPath = `${groupdocs.outputFolder}/MergedMultiplePptx.pptx`; console.log(`Merged presentation will be saved to: ${outputPath}`); // Step 2: Iterate through the array of PPTX files and merge for (let i = 1; i \u0026lt; inputFiles.length; i++) { await merger.join(inputFiles[i]); // Add each PPTX file } // Step 3: Save the merged PPTX file return merger.save(outputPath); } // Example usage (async () =\u0026gt; { const groupdocs = { outputFolder: \u0026#34;/path/to/output\u0026#34; }; // Define output folder const inputFiles = [ \u0026#34;/path/to/input/file1.pptx\u0026#34;, \u0026#34;/path/to/input/file2.pptx\u0026#34;, \u0026#34;/path/to/input/file3.pptx\u0026#34; ]; // Define input files await mergeMultiplePptx(groupdocs, inputFiles); })(); Explanation of the Example: Array of Files: A list of file paths is provided to merge multiple PPTX files. Looping through Files: The loop iterates through the array starting from the second file, joining them in the merger instance. Example 2: Handling Errors During Merging It\u0026rsquo;s important to manage potential errors during the merging process to ensure that your application runs smoothly. Below is an example demonstrating how to implement error handling:\n// Import the GroupDocs.Merger library const GroupDocs = require(\u0026#34;groupdocs-merger\u0026#34;); async function safeMergePptx(groupdocs, inputFilePath) { try { // Step 1: Initialize the merger const merger = new groupdocs.merger.Merger(inputFilePath); const outputPath = `${groupdocs.outputFolder}/SafeMergedPptx.pptx`; console.log(`Merged presentation will be saved to: ${outputPath}`); // Step 2: Attempt to join additional PPTX files await merger.join(inputFilePath); // Add another PPTX file // Step 3: Save the merged PPTX file return merger.save(outputPath); } catch (error) { console.error(\u0026#34;An error occurred while merging PPTX files:\u0026#34;, error); } } // Example usage (async () =\u0026gt; { const groupdocs = { outputFolder: \u0026#34;/path/to/output\u0026#34; }; // Define output folder const inputFilePath = \u0026#34;/path/to/input/file1.pptx\u0026#34;; // Define input file await safeMergePptx(groupdocs, inputFilePath); })(); Error Handling Explanation: Try-Catch block: Wrapping the merging process in a try-catch block allows you to handle any errors gracefully. Error Logging: The error is logged to the console for easier debugging. See Also For more information and examples on how to utilize the GroupDocs.Merger for Node.js via Java, check out the following resources:\nGroupDocs.Merger for Node.js Documentation GroupDocs.Merger API Reference GitHub Examples Download Free Trial You can download a free trial of GroupDocs.Merger for Node.js via Java from releases.groupdocs.com. Additionally, you can acquire a temporary license at purchase.groupdocs.com/temporary-license. This temporary license allows you to evaluate our library without restrictions for a limited period.\n","permalink":"https://blog.groupdocs.com/merger/merge-pptx-in-nodejs/","summary":"Learn how to efficiently merge PPTX presentation files in Node.js using GroupDocs.Merger for Node.js via Java. This guide covers all the key steps with practical code examples.","title":"Merge PPTX in Node.js"},{"content":"Overview Merging Microsoft Word documents is a common task that can be crucial for many applications, especially in document management systems. Whether you are consolidating report files, combining project documents, or preparing legal papers, the ability to programmatically merge files can save time and increase efficiency.\nIn this article, we will explore how to merge DOCX files in Node.js using the GroupDocs.Merger for Node.js via Java library. We will provide step-by-step instructions and code examples to demonstrate how to achieve this seamlessly.\nHow to merge DOCX files Merging DOCX files in Node.js can be accomplished easily with the GroupDocs.Merger for Node.js via Java API. Below are the key steps involved in merging multiple DOCX files into a single document:\nInitialize the Merger: Create an instance of the Merger class using the path of the first source DOCX file. Join Additional Documents: Use the join method of the Merger class to add other DOCX files you wish to merge. Save the Result: Call the save method to store the merged document in the specified output path. Here is a code snippet demonstrating how to merge multiple DOCX files:\n// Importing the necessary library const groupdocs = require(\u0026#39;groupdocs-merger\u0026#39;); // Function to merge DOCX files async function mergeDocx(groupdocs, inputFilePath) { // Step 1: Initialize the Merger with the first file const merger = new groupdocs.merger.Merger(inputFilePath); // Step 2: Specify the output path const outputPath = `${groupdocs.outputFolder}/MergeDocx.docx`; console.log(`Merged to ${outputPath}`); // Step 3: Join additional DOCX files merger.join(\u0026#34;path/to/secondfile.docx\u0026#34;); // Add your second file path here // Step 4: Save the merged document return merger.save(outputPath); } module.exports = mergeDocx; Merge Word documents with pre-defined Compliance mode In some cases, you may need to merge Word documents while ensuring compliance with specific standards. The GroupDocs.Merger for Node.js via Java library allows you to set a compliance mode when merging documents.\nKey Steps: Initialize the Merger: Create an instance as usual. Set Compliance Mode: Define the compliance level you need (e.g., ISO/IEC 29500:2008 Strict). Join and Save: Merge the documents while taking the compliance into account and save the result. Here’s how to do this in code:\n// Function to merge Word documents with Compliance mode async function mergeWordDocumentsWithPredefinedComplianceMode(groupdocs, inputFilePath) { // Step 1: Initialize the Merger const merger = new groupdocs.merger.Merger(inputFilePath); // Step 2: Set output path const outputPath = `${groupdocs.outputFolder}/MergeWordDocumentsWithPredefinedComplianceMode.docx`; console.log(`Merged to ${outputPath}`); // Step 3: Define Compliance level const wordJoinOptionsCompliance = groupdocs.merger.WordJoinCompliance.Iso29500_2008_Strict; const wordJoinOptions = new groupdocs.merger.WordJoinOptions(); wordJoinOptions.Compliance = wordJoinOptionsCompliance; // Step 4: Join additional files and save the merged document merger.join(\u0026#34;path/to/secondfile.docx\u0026#34;, wordJoinOptions); // Add your second file path here return merger.save(outputPath); } module.exports = mergeWordDocumentsWithPredefinedComplianceMode; Handling multiple DOCX files You can easily handle multiple DOCX files when merging them by iterating through an array of file paths. This eliminates the need for repetitive code and makes your application more efficient.\nSteps to Merge Multiple Files: Create an Array of File Paths: Set up an array that contains the paths of the DOCX files to be merged. Initialize the Merger: Start with the first file. Loop Through the Array: Use a loop to join each file to the Merger instance. Save the Merged Document: Save the final output file. Example code:\n// Function to merge multiple DOCX files async function mergeMultipleDocx(groupdocs, filePaths) { // Step 1: Initialize the Merger with the first file const merger = new groupdocs.merger.Merger(filePaths[0]); // Step 2: Join the rest of the files in the array for (let i = 1; i \u0026lt; filePaths.length; i++) { merger.join(filePaths[i]); } // Step 3: Save the merged document const outputPath = `${groupdocs.outputFolder}/MergedMultipleDocx.docx`; console.log(`Merged to ${outputPath}`); return merger.save(outputPath); } module.exports = mergeMultipleDocx; See also For further reading and to expand your skills, check out the following useful links:\nGroupDocs.Merger Documentation API Reference GitHub Examples Releases Information Download a Free Trial You can download a free trial of GroupDocs.Merger for Node.js via Java from releases.groupdocs.com. Additionally, you can acquire a temporary license at Temporary License, allowing you to use the library without any restrictions during the trial period.\nExamples Here are some practical examples demonstrating how to utilize the GroupDocs.Merger for Node.js via Java SDK to merge DOCX files efficiently:\nExample 1: Basic DOCX Merge This example shows how to easily merge two DOCX files into one.\n// Importing the necessary library const groupdocs = require(\u0026#39;groupdocs-merger\u0026#39;); // Function to merge two DOCX files async function mergeTwoDocxFiles(inputFile1, inputFile2, outputFolder) { // Initialize the Merger with the first file const merger = new groupdocs.merger.Merger(inputFile1); // Specify the output path const outputPath = `${outputFolder}/MergedDoc.docx`; // Adding the second DOCX file to merge merger.join(inputFile2); // Saving the merged document await merger.save(outputPath); console.log(`Merged document saved at: ${outputPath}`); } // Call the merge function mergeTwoDocxFiles(\u0026#34;path/to/firstfile.docx\u0026#34;, \u0026#34;path/to/secondfile.docx\u0026#34;, \u0026#34;path/to/outputFolder\u0026#34;); Example 2: Merging Multiple DOCX Files In this example, you can see how to merge multiple files with simpler code by using an array of file paths.\n// Function to merge multiple DOCX files async function mergeMultipleDocx(inputFiles, outputFolder) { // Initialize the Merger with the first file const merger = new groupdocs.merger.Merger(inputFiles[0]); // Join the rest of the files in the array for (let i = 1; i \u0026lt; inputFiles.length; i++) { merger.join(inputFiles[i]); } // Specify the output path const outputPath = `${outputFolder}/MergedAllDocx.docx`; // Saving the merged document await merger.save(outputPath); console.log(`All documents merged and saved at: ${outputPath}`); } // Call the function to merge multiple files mergeMultipleDocx([\u0026#34;path/to/file1.docx\u0026#34;, \u0026#34;path/to/file2.docx\u0026#34;, \u0026#34;path/to/file3.docx\u0026#34;], \u0026#34;path/to/outputFolder\u0026#34;); Example 3: Merging DOCX with Compliance Mode This example demonstrates how to merge documents while ensuring compliance with specific document standards.\n// Function to merge documents with Compliance mode async function mergeWithCompliance(inputFile1, inputFile2, outputFolder) { const merger = new groupdocs.merger.Merger(inputFile1); // Compliance mode set to ISO/IEC 29500:2008 Strict const wordJoinOptions = new groupdocs.merger.WordJoinOptions(); wordJoinOptions.Compliance = groupdocs.merger.WordJoinCompliance.Iso29500_2008_Strict; const outputPath = `${outputFolder}/MergedWithCompliance.docx`; // Join the second file with compliance options merger.join(inputFile2, wordJoinOptions); // Save the resulting document await merger.save(outputPath); console.log(`Merged document saved with compliance at: ${outputPath}`); } // Call the function mergeWithCompliance(\u0026#34;path/to/firstfile.docx\u0026#34;, \u0026#34;path/to/secondfile.docx\u0026#34;, \u0026#34;path/to/outputFolder\u0026#34;); See also For more information and resources, explore the following links:\nGroupDocs.Merger Documentation API Reference GitHub Examples Releases Information How to integrate GroupDocs.Merger into your application Download a Free Trial You can download a free trial of GroupDocs.Merger for Node.js via Java from releases.groupdocs.com. Additionally, you can acquire a temporary license at Temporary License, which allows you to use the library without any restrictions during the trial period.\n","permalink":"https://blog.groupdocs.com/merger/merge-docx-in-nodejs/","summary":"Learn how to merge Microsoft Office Word documents in Node.js applications using GroupDocs.Merger for Node.js via Java.","title":"Merge DOCX in Node.js"},{"content":"Overview Merging PDF files is a common requirement for developers working with document processing. In this blog post, we’ll explore how to merge multiple PDF files into a single document using GroupDocs.Merger for Node.js via Java. This library allows you to combine PDF files programmatically without needing any third-party software, streamlining your workflow and enhancing productivity.\nIn our step-by-step guide, you’ll learn how to:\nInitialize the merger class with a source PDF file. Add additional PDF files to the merger. Save the combined PDF file. How to merge PDF files in Node.js To merge PDF files in Node.js, you first need to instantiate the Merger class with the path to the source PDF file. After that, you can add other PDF files that you want to include in the merged document, and finally save the resulting PDF file.\nSteps to merge PDF files: Load the source PDF file - Create an instance of the Merger class using the path of the first PDF. Add other PDF files - Use the join method to include additional PDF files in the merger. Save the resulting PDF file - Call the save method to output the final merged document to your desired location. Here’s an illustrative code snippet demonstrating these steps:\n// Import the GroupDocs.Merger for Node.js library const GroupDocs = require(\u0026#34;groupdocs-merger\u0026#34;); // Function to merge PDF files async function mergePdf(groupdocs, inputFilePath) { // Create a new Merger instance with the source PDF file const merger = new groupdocs.merger.Merger(inputFilePath); // Define the output file path for the merged PDF const outputPath = `${groupdocs.outputFolder}/MergePdf.pdf`; console.log(`Merged to ${outputPath}`); // Add another PDF file to merge merger.join(\u0026#34;path/to/your/secondPDF.pdf\u0026#34;); // Save the merged PDF to the specified output path await merger.save(outputPath); } // Example usage mergePdf(GroupDocs, \u0026#34;path/to/your/firstPDF.pdf\u0026#34;); Code example for merging PDFs In the code example provided above, we perform the following major steps:\nImport the necessary library: This step ensures that GroupDocs.Merger is available in your application. Instantiate the Merger class: The first PDF file\u0026rsquo;s path is passed to the Merger constructor to initialize the merging process. Join additional PDFs: Each additional PDF file is joined using the join method. This method allows you to combine multiple PDF documents into a single file. Save the final document: By calling the save method, we write the new merged PDF to disk. Using bookmarks while merging PDFs If you want to maintain bookmarks in the merged PDF, you can configure the merging process to include this feature using certain options.\nThe example below demonstrates how to merge PDF files while keeping bookmarks:\n// Import the GroupDocs.Merger for Node.js library const GroupDocs = require(\u0026#34;groupdocs-merger\u0026#34;); // Function to merge PDFs with bookmarks async function mergePdfWithBookmarks(groupdocs, inputFilePath) { // Create a new Merger instance const merger = new groupdocs.merger.Merger(inputFilePath); // Define output file path const outputPath = `${groupdocs.outputFolder}/MergePdfWithBookmarks.pdf`; // Create options to use bookmarks const pdfJoinOptions = { useBookmarks: true // Enable bookmarks }; console.log(`Merged to ${outputPath}`); // Add second PDF with bookmarks merger.join(\u0026#34;path/to/your/secondPDF.pdf\u0026#34;, pdfJoinOptions); // Save the merged PDF to the specified output path await merger.save(outputPath); } // Example usage mergePdfWithBookmarks(GroupDocs, \u0026#34;path/to/your/firstPDF.pdf\u0026#34;); In this updated example, we specify options to retain bookmarks when merging PDFs. The addition of useBookmarks: true ensures the bookmarks from the original files are retained in the merged document.\nConclusion Merging PDF files in Node.js using GroupDocs.Merger for Node.js via Java is a straightforward process that can significantly streamline your document management tasks. Whether you need to combine various documents for reporting or send multiple files as a single attachment, this library provides the necessary tools to perform these tasks programmatically, without the need for third-party software.\nSee also Documentation for GroupDocs.Merger for Node.js API Reference GitHub Examples Releases for GroupDocs.Merger Don\u0026rsquo;t forget that you can download a free trial from releases.groupdocs.com and acquire a temporary license here. A temporary license allows you to try our library without any restrictions.\nExamples To facilitate your understanding of merging PDF files using GroupDocs.Merger for Node.js via Java, here are a couple of practical examples that showcase the library\u0026rsquo;s capabilities in action.\nBasic PDF Merging Example In this example, we will merge two simple PDF files into one.\n// Import the GroupDocs.Merger for Node.js library const GroupDocs = require(\u0026#34;groupdocs-merger\u0026#34;); // Function to merge two PDF files async function mergeTwoPdfFiles(groupdocs) { // Define paths for the source PDF files const firstPdfPath = \u0026#34;path/to/your/firstPDF.pdf\u0026#34;; const secondPdfPath = \u0026#34;path/to/your/secondPDF.pdf\u0026#34;; // Create a new Merger instance for the first PDF const merger = new groupdocs.merger.Merger(firstPdfPath); // Merge the second PDF into the first one merger.join(secondPdfPath); // Define the output path for the merged PDF const outputPath = `${groupdocs.outputFolder}/MergedTwoPdfFiles.pdf`; // Save the result into the specified output path await merger.save(outputPath); console.log(`Merged files saved to: ${outputPath}`); } // Example usage mergeTwoPdfFiles(GroupDocs); Merging with Multiple Files Example In this scenario, we will merge three PDF files into a single document.\n// Import the GroupDocs.Merger for Node.js library const GroupDocs = require(\u0026#34;groupdocs-merger\u0026#34;); // Function to merge multiple PDF files async function mergeMultiplePdfFiles(groupdocs) { // Define paths for the source PDF files const pdfPaths = [ \u0026#34;path/to/your/firstPDF.pdf\u0026#34;, \u0026#34;path/to/your/secondPDF.pdf\u0026#34;, \u0026#34;path/to/your/thirdPDF.pdf\u0026#34; ]; // Create a new Merger instance with the first PDF const merger = new groupdocs.merger.Merger(pdfPaths[0]); // Loop through and merge all additional PDFs for (let i = 1; i \u0026lt; pdfPaths.length; i++) { await merger.join(pdfPaths[i]); } // Define the output path for the merged PDF const outputPath = `${groupdocs.outputFolder}/MergedMultiplePdfFiles.pdf`; // Save the result into the specified output path await merger.save(outputPath); console.log(`Merged multiple files saved to: ${outputPath}`); } // Example usage mergeMultiplePdfFiles(GroupDocs); These examples show you how to efficiently merge one or more PDF documents using GroupDocs.Merger for Node.js via Java. The flexibility of the library allows developers to customize the merging process according to their specific needs.\nSee also Documentation for GroupDocs.Merger for Node.js API Reference GitHub Examples Releases for GroupDocs.Merger Free Trial Download and Temporary License Information You can get started with GroupDocs.Merger for Node.js via Java by downloading a free trial from releases.groupdocs.com. A free trial allows you to explore the library\u0026rsquo;s features without limitations.\nIf you wish to test the library without restrictions, you can acquire a temporary license by visiting this link. The temporary license enables you to utilize our library fully during your evaluation period.\n","permalink":"https://blog.groupdocs.com/merger/merge-pdf-in-nodejs/","summary":"Learn how to merge multiple PDF files into a single file programmatically in Node.js using GroupDocs.Merger for Node.js via Java.","title":"Merge PDF in Node.js"},{"content":"Overview In the world of data management, handling Comma Separated Values (CSV) files is a common requirement. These files are widely used for storing tabular data such as spreadsheets or databases due to their simplicity and easy readability. The ability to merge and split CSV files programmatically can save time and streamline workflows, especially when dealing with large volumes of data.\nThis article provides a step-by-step guide on how to merge and split CSV files using the GroupDocs.Merger for .NET library.\nHow to Merge CSV Files Merging multiple CSV files into a single document can significantly simplify data handling and reporting. In C#, the GroupDocs.Merger for .NET library makes this process straightforward and efficient, eliminating the need for manual data manipulation. Below are the key steps to merge CSV files using C#:\nLoad your source CSV file: Create an instance of the Merger class, passing the file path of the first CSV file as a parameter. Add additional CSV files: Use the Join method to add other CSV files that you want to merge into the first document. Save the merged result: Call the Save method to write the combined data to a new CSV file. Here\u0026rsquo;s an example illustrating these steps:\n// Import necessary namespaces using System; using System.IO; namespace GroupDocs.Merger.Examples.CSharp.BasicUsage { /// \u0026lt;summary\u0026gt; /// This example demonstrates how to merge multiple CSV files into a single file. /// \u0026lt;/summary\u0026gt; internal static class MergeCsv { public static void Run() { Console.WriteLine(\u0026#34;=======================================================================\u0026#34;); Console.WriteLine(\u0026#34;Example Basic Usage: MergeCsv\u0026#34;); Console.WriteLine(); // Define the output folder and file name string outputFolder = Constants.GetOutputDirectoryPath(); string outputFile = Path.Combine(outputFolder, \u0026#34;merged.csv\u0026#34;); // Load the source CSV file using the Merger class using (var merger = new GroupDocs.Merger.Merger(Constants.SAMPLE_CSV)) { // Add another CSV file to merge merger.Join(Constants.SAMPLE_CSV_2); // Merge CSV files and save the result to \u0026#39;merged.csv\u0026#39; merger.Save(outputFile); } Console.WriteLine(\u0026#34;CSV files merge completed successfully.\u0026#34;); Console.WriteLine($\u0026#34;Check output in {outputFolder}\u0026#34;); } } } In this code snippet:\nThe Merger class is instantiated with the path of the first CSV file. The Join method is called to include another CSV file. The final merged file is saved with the Save method. How to Split CSV Files Splitting a large CSV file into smaller, manageable pieces is equally essential for data governance and analysis. This is especially useful when you need to isolate data points or manage file sizes for processing. With the GroupDocs.Merger for .NET library, splitting CSV files is as easy as merging. Below are the steps for splitting a CSV file into separate documents:\nDefine the output format: Specify the naming convention for the output files (for example, line_1.csv, line_2.csv, etc.). Use the Split method: Apply this method from the Merger class, alongside the appropriate options that dictate how the splitting should occur. Manage output: After splitting, you will have each line or specified segment as its own separate file. Here\u0026rsquo;s how you can achieve this with C#:\n// Import necessary namespaces using System; using System.IO; using GroupDocs.Merger.Domain.Options; namespace GroupDocs.Merger.Examples.CSharp.BasicUsage { /// \u0026lt;summary\u0026gt; /// This example demonstrates how to split a CSV file into separate documents. /// \u0026lt;/summary\u0026gt; public class SplitCsv { public static void Run() { Console.WriteLine(\u0026#34;=======================================================================\u0026#34;); Console.WriteLine(\u0026#34;Example Basic Usage: SplitCsv\u0026#34;); Console.WriteLine(); // Define the path to the CSV file string filePath = Constants.SAMPLE_CSV; // Define the output path with a naming pattern string filePathOut = Path.Combine(Constants.GetOutputDirectoryPath(), \u0026#34;line_{0}.csv\u0026#34;); // Create split options to define how to split TextSplitOptions splitOptions = new TextSplitOptions(filePathOut, new int[] { 1, 2, 3 }); using (Merger merger = new Merger(filePath)) { // Split the CSV file according to the specified options merger.Split(splitOptions); } Console.WriteLine(\u0026#34;Source document was split successfully.\u0026#34;); Console.WriteLine($\u0026#34;Check output at {filePathOut}.\u0026#34;); } } } In this example:\nThe script segments the data based on specified line numbers and saves each segment as a new CSV file. The TextSplitOptions class allows for flexible configuration of how the split occurs. See also For more information and resources, check out the following links:\nGroupDocs.Merger for .NET Documentation API Reference for GroupDocs.Merger GitHub Examples for GroupDocs.Merger Releases of GroupDocs.Merger for .NET You can download a free trial from releases.groupdocs.com and obtain a temporary license here to try our library without restrictions.\nCode Examples To give you a better understanding of how to effectively use the GroupDocs.Merger for .NET library, here are some practical examples showcasing merging and splitting CSV files. These snippets can easily be adapted to fit your specific data processing needs.\nExample: Merging Multiple CSV Files This example demonstrates merging multiple CSV files into a single file by using the GroupDocs.Merger package. Ensure that the paths to your sample files are correctly set.\nusing System; using System.IO; namespace GroupDocs.Merger.Examples.CSharp.BasicUsage { internal static class MergeMultipleCsvFiles { public static void Run() { Console.WriteLine(\u0026#34;Merging multiple CSV files.\u0026#34;); // Define the output folder and output file name for the merged CSV string outputFolder = Constants.GetOutputDirectoryPath(); string outputFile = Path.Combine(outputFolder, \u0026#34;merged_result.csv\u0026#34;); // Start merging process using (var merger = new GroupDocs.Merger.Merger(Constants.SAMPLE_CSV)) { merger.Join(Constants.SAMPLE_CSV_2); // Add second CSV file merger.Join(Constants.SAMPLE_CSV_3); // Add third CSV file merger.Save(outputFile); // Save combined result } Console.WriteLine($\u0026#34;Successfully merged CSV files into {outputFile}\u0026#34;); } } } Example: Splitting a CSV File into Individual Lines In this snippet, we will split a large CSV file into multiple smaller files, each containing specified lines. This can be useful for processing large datasets or distributing workload.\nusing System; using System.IO; using GroupDocs.Merger.Domain.Options; namespace GroupDocs.Merger.Examples.CSharp.BasicUsage { public class SplitCsvToLines { public static void Run() { Console.WriteLine(\u0026#34;Splitting a CSV file into individual line files.\u0026#34;); // Specify the path of the source CSV file string filePath = Constants.SAMPLE_CSV; // Define output file naming pattern for split result string outputFilePath = Path.Combine(Constants.GetOutputDirectoryPath(), \u0026#34;line_{0}.csv\u0026#34;); // Set up split options based on desired line numbers TextSplitOptions splitOptions = new TextSplitOptions(outputFilePath, new int[] { 1, 2, 3 }); using (Merger merger = new Merger(filePath)) { merger.Split(splitOptions); // Split the file based on options } Console.WriteLine($\u0026#34;Successfully split the source document into individual line files.\u0026#34;); } } } See also For more information and technical resources, check out the links below:\nGroupDocs.Merger for .NET API Documentation API Reference Documentation for GroupDocs.Merger Explore GitHub Examples for GroupDocs.Merger Check Latest Releases of GroupDocs.Merger for .NET Free Trial and Temporary License Information You can download a free trial version of GroupDocs.Merger from releases.groupdocs.com. For those considering a more extensive evaluation, you can also acquire a temporary license from here. This temporary license allows you to test our library without any limitations, ensuring you can fully explore its capabilities.\n","permalink":"https://blog.groupdocs.com/merger/merge-and-split-csv-using-csharp/","summary":"Learn how to merge and split CSV files programmatically in C# using GroupDocs.Merger for .NET library.","title":"Merge and split CSV using C#"},{"content":"Overview In the digital world of today, EPUB (Electronic Publication) is a popular file format for eBooks and digital publications. It allows for a flexible layout and rich media support, making it a preferred choice for authors and publishers. However, managing multiple EPUB files can be challenging, especially when dealing with large collections or creating compilations.\nWith GroupDocs.Merger for .NET, it\u0026rsquo;s possible to programmatically merge and split EPUB files using C#. This not only simplifies the process but also enhances your ability to organize and share digital content more efficiently.\nHow to Merge EPUB Files in C# Merging EPUB files can be essential for creating comprehensive eBooks or combining related documents. With GroupDocs.Merger for .NET, this can be done effortlessly in a few steps using C#. Here is how you can do it:\nCreate an instance of the Merger class: Use the constructor to load your main EPUB file. Join additional EPUB files: Utilize the Join method to add other files to be merged. Save the merged result: Call the Save method to save the new merged EPUB file. Here is an example demonstrating the process of merging EPUB files:\nusing System; using GroupDocs.Merger; namespace GroupDocs.Merger.Examples.CSharp { internal static class MergeEpub { public static void Run() { // Specify output folder string outputFolder = Constants.GetOutputDirectoryPath(); string outputFile = System.IO.Path.Combine(outputFolder, \u0026#34;merged.epub\u0026#34;); // Load the main EPUB file using (var merger = new Merger(@\u0026#34;C:\\path\\to\\your\\first.epub\u0026#34;)) { // Add other EPUB files to merge merger.Join(@\u0026#34;C:\\path\\to\\your\\second.epub\u0026#34;); merger.Join(@\u0026#34;C:\\path\\to\\your\\third.epub\u0026#34;); // Add more if needed // Merge and save result merger.Save(outputFile); } Console.WriteLine(\u0026#34;EPUB files merged successfully. Check output in: {0}\u0026#34;, outputFolder); } } } In this code snippet:\nWe define a Merger instance for the primary EPUB file. We add more EPUBs using the Join method and save the final output. How to Split EPUB Files in C# Splitting EPUB files can be useful when you need to extract individual chapters or sections from a larger publication. This can be done similarly using the GroupDocs.Merger library. Here is a quick guide on how to split an EPUB file into separate sections.\nLoad the EPUB file: Use the Merger class to access your EPUB file. Specify split options: Define how you want to split the document, such as by page numbers. Execute the split: Call the Split method to create separate EPUB files. Here is an example demonstrating how you can achieve this:\nusing System; using GroupDocs.Merger.Domain.Options; namespace GroupDocs.Merger.Examples.CSharp { public class SplitEpub { public static void Run() { // Specify the EPUB file to split string sourceFilePath = @\u0026#34;C:\\path\\to\\your\\document.epub\u0026#34;; string outputFolder = Constants.GetOutputDirectoryPath(); string outputFilePath = System.IO.Path.Combine(outputFolder, \u0026#34;chapter_{0}.epub\u0026#34;); // Define split options (for example, split by chapter numbers) SplitOptions splitOptions = new SplitOptions(outputFilePath, new int[] { 1, 2, 3 }); // specify chapters or page numbers // Load the EPUB and split it using (Merger merger = new Merger(sourceFilePath)) { merger.Split(splitOptions); } Console.WriteLine(\u0026#34;EPUB file split successfully. Check output in: {0}\u0026#34;, outputFolder); } } } In this snippet:\nWe set up SplitOptions indicating the output naming pattern and the chapters to extract. The Merger object conducts the split process. Why Use GroupDocs.Merger for EPUB Management? GroupDocs.Merger for .NET streamlines the management of EPUB files, providing developers with a robust API to merge and split documents efficiently. With this library, you can handle large volumes of EPUB files seamlessly, automate workflows, and provide better user experiences in applications that manage digital content.\nThe benefits include:\nEase of Use: The API is straightforward and well-documented, making it easy to implement. Flexibility: Supports a wide range of workflows, including merging multiple files and splitting large documents. Quality Preservation: Retains the formatting and quality of your documents. See Also For additional information, consider reviewing the following resources:\nGroupDocs.Merger Documentation API Reference GitHub Examples Release Notes Additionally, feel free to check out other articles on EPUB and document management features in C#.\nDownload Free Trial You can download a free trial from the GroupDocs Releases Page and explore all the powerful features of GroupDocs.Merger for .NET. To enhance your experience, acquire a temporary license at this link, which allows you to try our library without restrictions.\nCode Examples The following examples showcase additional use cases for merging and splitting EPUB files using GroupDocs.Merger for .NET. These examples highlight various functionalities provided by the library to enhance document management workflows.\nExample: Merging Multiple EPUB Files This example demonstrates how to merge multiple EPUB files into a single document, as detailed previously. This could be particularly useful for authors compiling multiple works into one collection or for publishers needing to create a single comprehensive eBook from several sources.\nusing System; using GroupDocs.Merger; namespace GroupDocs.Merger.Examples.CSharp { internal static class MergeMultipleEpubs { public static void Run() { // Specify the output folder for merged EPUB string outputFolder = Constants.GetOutputDirectoryPath(); string outputFile = System.IO.Path.Combine(outputFolder, \u0026#34;combined.epub\u0026#34;); // Create an instance of the Merger class to merge EPUB files using (var merger = new Merger(@\u0026#34;C:\\path\\to\\your\\first.epub\u0026#34;)) { // Merge multiple EPUB files merger.Join(@\u0026#34;C:\\path\\to\\your\\second.epub\u0026#34;); merger.Join(@\u0026#34;C:\\path\\to\\your\\third.epub\u0026#34;); // Save the merged EPUB merger.Save(outputFile); } Console.WriteLine(\u0026#34;Merged EPUB files successfully into: {0}\u0026#34;, outputFile); } } } Example: Splitting EPUB into Sections This example illustrates how to split an EPUB file into chapter-specific files. This feature can be beneficial for educational content providers who want to distribute chapters separately.\nusing System; using GroupDocs.Merger.Domain.Options; namespace GroupDocs.Merger.Examples.CSharp { public class SplitEpubByChapters { public static void Run() { // Define the path to the EPUB file to split string sourceFilePath = @\u0026#34;C:\\path\\to\\your\\document.epub\u0026#34;; string outputFolder = Constants.GetOutputDirectoryPath(); string outputFileFormat = System.IO.Path.Combine(outputFolder, \u0026#34;chapter_{0}.epub\u0026#34;); // Set split options to separate chapters SplitOptions splitOptions = new SplitOptions(outputFileFormat, new int[] { 1, 2, 3 }); // Example: chapters 1, 2, and 3 // Load the EPUB and perform the split using (Merger merger = new Merger(sourceFilePath)) { merger.Split(splitOptions); } Console.WriteLine(\u0026#34;EPUB file split into chapters successfully. Check output in: {0}\u0026#34;, outputFolder); } } } Through these examples, developers can quickly adapt the functionality of GroupDocs.Merger for various EPUB file management tasks, improving both the quality and efficiency of their document workflows.\nSee Also For further reading and resources related to EPUB management and the GroupDocs.Merger library, consider exploring the following links:\nGroupDocs.Merger Documentation API Reference for GroupDocs.Merger GitHub Examples Repository Release Notes and Updates Understanding EPUB File Format These resources provide additional insights into utilizing GroupDocs.Merger effectively for EPUB files and other document types.\nDownload Free Trial and Temporary License Experience the capabilities of GroupDocs.Merger for .NET by downloading a free trial from the GroupDocs Releases Page. This trial enables you to explore the vast features of our library.\nAdditionally, if you require extended testing or evaluation capabilities, consider acquiring a temporary license available at this link. This temporary license allows you to try our library without any restrictions, ensuring you make the most out of your document management solutions.\n","permalink":"https://blog.groupdocs.com/merger/merge-and-split-epub-using-csharp/","summary":"Discover how to efficiently merge and split EPUB files in C# using GroupDocs.Merger for .NET. Streamline your document management workflow with this comprehensive guide.","title":"Merge and split EPUB using C#"},{"content":"Overview Merging PowerPoint presentations can streamline your workflow, especially when dealing with multiple files. In this article, we will explore how to effectively merge PPTX files using the GroupDocs.Merger for Python via .NET library. This powerful API allows you to combine PowerPoint presentations effortlessly without relying on external software like Microsoft PowerPoint or Open Office.\nBy the end of this guide, you will understand the essential steps involved in merging PPTX files programmatically, as well as some practical code snippets to demonstrate the functionality.\nHow to merge PPTX presentations Merging PPTX files can be accomplished using the GroupDocs.Merger for Python via .NET library. Here, we will outline the steps required to merge multiple PPTX presentations into a single document seamlessly.\nLoad the Source PPTX File: First, create an instance of the Merger class and specify the path of the source PPTX file. Add Other PPTX Files: Use the join method to add additional PPTX files that you want to merge. Save the Merged File: Finally, call the save method to specify the path where the merged PPTX file will be saved. Code Example: Basic Merging In this code snippet, we will demonstrate how to merge two PPTX files using a basic approach.\nimport groupdocs.merger as gm import constants def run(): # Print message indicating the start of the merge operation print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(f\u0026#34;[Example Basic Usage] # Merge : PPTX\u0026#34;) # Load the first PPTX file into the Merger instance with gm.Merger(constants.sample_pptx) as merger: # Print success message print(f\u0026#34;Document info retrieved successfully\u0026#34;) # Join another PPTX file to merge into the current document merger.join(constants.sample_pptx) # Save the merged PPTX file to the output path merger.save(constants.output_pptx) # Print the output file path print(f\u0026#34;Merge to: {constants.output_pptx}\u0026#34;) print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) Code Example: Advanced Usage For more complex scenarios, such as loading a document from a stream, you can use the following advanced code example.\nfrom turtle import update import groupdocs.merger as gm import constants def run(): # Indicate the start of loading and merging documents from stream print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(f\u0026#34;[Example Advanced Usage] # LoadDocumentFromStream\u0026#34;) # Get the file stream from a specific document stream = get_file_stream() # Load the document from the stream using the Merger instance with gm.Merger(stream) as merger: # Print success message after document is loaded print(f\u0026#34;Document loaded from stream successfully\u0026#34;) print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) def get_file_stream(): # Open the target file in binary read mode to get the stream file_path = constants.sample_pptx return open(file_path, \u0026#34;rb\u0026#34;) See also For further information and related topics, you might find the following resources useful:\nGroupDocs.Merger for Python via .NET Documentation API Reference for GroupDocs.Merger GitHub Examples Learn more about different file formats supported by GroupDocs.Merger Download a Free Trial You can download a free trial version of GroupDocs.Merger for Python via .NET from releases.groupdocs.com. Additionally, you can acquire a temporary license at https://purchase.groupdocs.com/temporary-license/, allowing you to explore the full range of features without any restrictions.\nExamples When working with presentations in Python, the GroupDocs.Merger for Python via .NET library provides a straightforward API for merging PPTX files. Below are two examples showcasing basic and advanced usage scenarios for merging PPTX documents.\nExample 1: Merging Two PPTX Documents In this example, we demonstrate a simple merging operation where we combine two PPTX files using the join method.\nCreate a new Merger instance with the first PPTX document. Add the second PPTX document using the join method. Save the final merged document. import groupdocs.merger as gm import constants def run(): print(\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(\u0026#34;[Example Basic Usage] # Merge PPTX Files\u0026#34;) # Create a Merger instance with the first PPTX file with gm.Merger(constants.sample_pptx) as merger: print(\u0026#34;Document info retrieved successfully\u0026#34;) # Merge with the second PPTX file merger.join(constants.second_sample_pptx) # Specify the output file for the merged document merger.save(constants.output_pptx) print(f\u0026#34;Merged document saved as: {constants.output_pptx}\u0026#34;) print(\u0026#34;----------------------------------------------------------------------------\u0026#34;) Example 2: Merging PPTX from a Stream In more advanced scenarios, you might need to load documents from a binary stream. Below is an example of merging PPTX files where one of the documents is obtained from a stream.\nRetrieve the PPTX file stream. Create a Merger instance with the stream. Save the merged PPTX document. import groupdocs.merger as gm import constants def run(): print(\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(\u0026#34;[Example Advanced Usage] # Merge PPTX Files from Stream\u0026#34;) # Get the file stream for merging stream = get_file_stream() # Create the Merger instance using the stream with gm.Merger(stream) as merger: print(\u0026#34;Document loaded from stream successfully\u0026#34;) # Join another PPTX file for merging merger.join(constants.second_sample_pptx) merger.save(constants.output_pptx_from_stream) print(f\u0026#34;Merged document saved as: {constants.output_pptx_from_stream}\u0026#34;) print(\u0026#34;----------------------------------------------------------------------------\u0026#34;) def get_file_stream(): # Open the document file in binary read mode file_path = constants.sample_pptx return open(file_path, \u0026#34;rb\u0026#34;) See also Here are some useful resources to further enhance your knowledge and skills with GroupDocs.Merger for Python via .NET:\nGroupDocs.Merger for Python via .NET Documentation API Reference for GroupDocs.Merger GitHub Examples Repository Explore additional file formats supported by GroupDocs.Merger Download a Free Trial Ready to take your PowerPoint presentation management to the next level? You can download a free trial version of GroupDocs.Merger for Python via .NET from releases.groupdocs.com.\nAdditionally, consider obtaining a temporary license at https://purchase.groupdocs.com/temporary-license/, which allows you to use the full power of the library without any restrictions during your evaluation period.\n","permalink":"https://blog.groupdocs.com/merger/merge-pptx-in-python/","summary":"Learn how to merge PPTX presentation files using Python with GroupDocs.Merger. Efficiently combine your PowerPoint presentations without third-party software.","title":"Merge PPTX in Python"},{"content":"Replacing text in business documents is a common task. This article explains how to find and replace content in PDF documents using AI and C#. You\u0026rsquo;ll learn how to apply custom redactions and integrate AI to modify PDF content.\nThe following topics are covered in this article:\nRegular way to replace text Steps to redact PDF using AI tools via C# Common C# code to use GroupDocs.Redaction functionality Custom redaction C# code Example of AI prompt GroupDocs.Redaction feature for Replacing Text GroupDocs.Redaction allows you to replace text in various supported file formats. This method relies on regular expressions to identify the text that needs to be replaced. However, working with regular expressions can require additional effort, especially in more complex scenarios. For more information, see our documentation.\nSteps to redact PDF using AI tools via C# You can use this feature to hide sensitive information or to generate a customized document from a template. The following steps show how to use AI to replace specific text in a PDF document within a .NET application.\nLoad the PDF file using the Redactor class. Provide a custom redaction handler by implementing your AI logic through the ICustomRedactionHandler interface. Process the document text, using PageAreaRedaction along with ReplacementOptions. Apply the redaction using the Apply() method. Save the processed document to a new location using the Save() method. Common C# code to use GroupDocs.Redaction functionality The following code uses AI to find and replace credit card numbers in a document. This code snippet includes the main method that initializes the Redactor and applies redactions by calling the Apply() method.\npublic async Task Redaction_Custom_AI() { // Usually, this regex is used to find text for replacement // To provide all possible text for custom redaction, use a regex like in the example Regex regex = new Regex(\u0026#34;.*\u0026#34;); //Define target pages and replacement text for redactions ReplacementOptions optionsText = new ReplacementOptions(\u0026#34;[replaced]\u0026#34;); optionsText.Filters = new RedactionFilter[] { new PageRangeFilter(PageSeekOrigin.Begin, 0, 2) }; //Provide a custom redaction handler implementation optionsText.CustomRedaction = new TextRedactor() { Test = this }; var textRedaction = new PageAreaRedaction(regex, optionsText); var redactions = new Redaction[] { textRedaction }; //Process the document using (var redactor = new Redactor(\u0026#34;source.pdf\u0026#34;)) { //Apply redactions to the document RedactorChangeLog result = redactor.Apply(redactions); if (result.Status != RedactionStatus.Failed) { redactor.Save(new GroupDocs.Redaction.Options.SaveOptions(false, \u0026#34;Result\u0026#34;)); } } } Custom redaction C# code The ICustomRedactionHandler implementation allows users to define their own logic for redacting text paragraphs in PDF files. Using such classes enables flexible algorithms tailored to specific business needs.\npublic class TextRedactor : ICustomRedactionHandler { public Redaction_Custom Test { get; set; } public CustomRedactionResult Redact(CustomRedactionContext context) { CustomRedactionResult result = new CustomRedactionResult(); if (!String.IsNullOrEmpty(context.Text)) { var response = Process_AI(context.Text, \u0026#34;[redacted-custom]\u0026#34;).GetAwaiter().GetResult(); if (response.Result != \u0026#34;none\u0026#34;) { result.Apply = true; result.Text = response.Result; } } return result; } } Example of AI prompt The final part is the AI integration code. The provided prompt is quite sophisticated, as not all AI tools can process sensitive data, such as credit card numbers.\npublic async Task\u0026lt;OpenAIResult\u0026gt; Process_AI(string text, string replacement) { string prompt = \u0026#34;Hey, I’ve got a piece of a document here. \u0026#34; + \u0026#34;Could you help me swap out any parts that look like digital blocks, such as \u0026#39;XXXX-\u0026#39;? \u0026#34; + \u0026#34;These blocks are just numbers and dashes. \u0026#34; + \u0026#34;Each entry I want to replace might have anywhere from one to four of these blocks. \u0026#34; + $\u0026#34;Please replace the entire block with \u0026#39;{replacement}\u0026#39; in the text. \u0026#34; + \u0026#34;I don\u0026#39;t need any of your comments. \u0026#34; + \u0026#34;Return as result only text with replaced entries or just word \u0026#39;none\u0026#39; if there weren\u0026#39;t anything to replace \u0026#34; + $\u0026#34;Here’s the text to work with \\n\\n {text}\u0026#34;; // User AI integration code, which depends of the used AI tool return await RequestToAI(prompt); } The output of the code above is as follows:\nConclusion In this article, we learned how to use custom redactions and AI integrations to process PDFs. AI tools can greatly simplify text processing but may take more time and be less predictable compared to regular tools.\nFor more information about our product, visit the documentation. If you have any queries, feel free to contact us via the forum.\nTry our free web app Explore the capabilities of GroupDocs.Redaction using our online web application. Test core features directly in your browser without installing anything.\nSee Also Find and Replace Text in PDF using C# Redact PDF Scanned Documents in C# Documentation Examples Pricing details Get a temporary license Download from NuGet ","permalink":"https://blog.groupdocs.com/redaction/custom-ai-redactions-in-pdf-for-net/","summary":"Replacing sensitive text in business documents is a common task. This article explains \u003cstrong\u003ehow to find and replace text and words in PDF documents using AI and C#\u003c/strong\u003e. Learn how to apply custom redactions to PDF files by integrating AI.","title":"Integrating custom AI-based redactions for PDF documents in .NET"},{"content":"Need to open a PowerPoint presentation but don’t have MS PowerPoint installed? No worries! With our free online PowerPoint Viewer, you can instantly open and view PPT and PPTX files directly in your browser. It works on any device—Windows, Mac, or mobile!\nBut what if you’re a developer and want to view presentations programmatically? We’ve got you covered with GroupDocs.Viewer APIs for C#, Java, Python, and Node.js.\nOnline Tool: View PPT/PPTX Presentations Instantly The GroupDocs Viewer Online App allows you to open and read PowerPoint presentations in your browser:\nNo installation required Compatible with all platforms Fast and secure Just upload your PPT or PPTX file to start viewing.\nThe Online PowerPoint Viewer also provides a smooth and interactive experience with:\nZoom In \u0026amp; Out Print Download as PDF Present Mode (Full Screen) Programmatic Approach: View Presentations Using an API If you\u0026rsquo;re building an app and need to automate presentation rendering or add custom viewing features, GroupDocs.Viewer has SDKs for all major platforms.\nWhy Choose the API? Feature Online Tool SDK/API No installation ✅ Yes Requires integration Bulk processing ❌ No ✅ Yes File privacy Files auto-delete ✅ Full control Automation \u0026amp; custom logic ❌ No ✅ Yes GroupDocs.Viewer Product Family Explore the GroupDocs.Viewer Product Family for multi-platform support:\n.NET SDK – for C# developers Java SDK – for Java-based apps Python SDK – for Python integrations Node.js SDK – for JavaScript projects Let’s walk through examples for each language.\nView PowerPoint Presentations in C# You can render PowerPoint files in C# applications using GroupDocs.Viewer for .NET. This library makes it easy to convert presentations into PDF or HTML formats without needing Microsoft PowerPoint installed.\nIt’s a great solution for integrating document viewing into ASP.NET, Windows Forms, WPF, or console applications.\nFollow the steps:\nInstall the GroupDocs.Viewer NuGet package. Load the .pptx file using the Viewer class. Call the .View() method with PdfViewOptions. Check the output PDF to confirm rendering. More .NET Examples are available at GitHub Repository\nView PowerPoint Presentations in Java Using GroupDocs.Viewer for Java, you can render PowerPoint presentations easily into PDF or HTML formats. The API is platform-independent and can be integrated into any Java-based solution like Spring Boot, JavaFX, or command-line apps.\nIt’s ideal for building document viewing functionality in enterprise applications.\nYou may follow the following steps with code snippet:\nAdd the GroupDocs.Viewer JARs to your project (via Maven or manual download). Load the .pptx presentation using the Viewer class. Convert it to PDF using the view() method with PdfViewOptions. Confirm rendering by checking the generated file. More Java Examples at GitHub Repository\nView PowerPoint Presentations in Python With GroupDocs.Viewer for Python, you can easily render PowerPoint presentations to formats like PDF.\nHere are the simple steps with sample code to follow:\nInstall GroupDocs.Viewer for Python via pip. Load the .pptx presentation file using the Viewer class. Render the file to PDF using PdfViewOptions. Confirm the successful PDF output after rendering. More Python Examples at GitHub Repository\nView PowerPoint Presentations in Node.js You can easily render PowerPoint files in Node.js using GroupDocs.Viewer for Node.js via Java. This API allows you to view documents in PDF or HTML format with minimal effort.\nThis approach is ideal when you want to integrate PowerPoint viewing capabilities into your Node.js application or web service without relying on Microsoft PowerPoint or Office Interop.\nHere are the simple steps with code snippet to follow:\nInstall the groupdocs-viewer package for Node.js. Load the .pptx presentation file using the Viewer class. Render the presentation to PDF using PdfViewOptions. Use console.log() to confirm successful rendering. More Node.js Examples at GitHub Repository\nConclusion Need to quickly view a presentation? Use our Online PowerPoint Viewer.\nDevelopers can use GroupDocs.Viewer APIs for automation, privacy, and presentation rendering features in their own applications.\nSee more GroupDocs.Viewer Documentation Ways to Open Word Documents without MS Word - Word Viewer ","permalink":"https://blog.groupdocs.com/viewer/view-powerpoint-presentations/","summary":"Explore how to open and view PowerPoint presentations online or automate presentation viewing in .NET, Java, Python, and Node.js using GroupDocs.Viewer.","title":"Presentation Viewer – Open \u0026 Read PPT, PPTX Files Instantly"},{"content":"Managing metadata is an important part of document automation, especially for applications that work with different document formats. In this article, we will look at how to manage metadata in Python applications, with a focus on extracting, modifying, and removing metadata.\nIn this guide, we will explore the following sections:\nWhat is GroupDocs.Metadata and how it helps? How to install Quick start guide Key Features Common Use Cases Use Case 1: Retrieve metadata from an image Use Case 2: Clean up metadata from a document Use Case 3: Update document metadata Getting Started with a Free Trial See Also What is GroupDocs.Metadata and how it helps? GroupDocs.Metadata for Python via .NET is a powerful library designed to help developers manage metadata across various document formats in Python applications. While Python provides native methods to extract basic metadata such as file size, type, and attributes, these methods fall short when dealing with more complex metadata associated with specific file formats.\nGroupDocs.Metadata fills this gap by allowing users to retrieve, update, and remove metadata from files such as PDFs, Microsoft Office formats, images, audio, video, and many others. It also enables access to detailed information such as the author, title, specific properties of file formats, including GPS location data, and many others. With a straightforward API, GroupDocs.Metadata allows you to manipulate metadata effectively to cover many document automation and data processing scenarios.\nHow to install GroupDocs.Metadata for Python via .NET can be easily installed using pip. You can reference our API in your Python project by installing it with the following command:\npip install groupdocs-metadata-net Quick start guide Getting started with GroupDocs.Metadata for Python via .NET is quick and straightforward with our examples project. Here\u0026rsquo;s a simple guide to help you set up:\nClone the Repository: Clone the example repository to your local machine.\ngit clone https://github.com/groupdocs-metadata/GroupDocs.Metadata-for-Python-via-.NET.git Navigate to the Examples Folder:\ncd ./GroupDocs.Metadata-for-Python-via-.NET/ Install Necessary Packages:\npip install groupdocs-metadata-net Run the Examples:\npython run_examples.py This will execute a series of example scripts demonstrating various functionalities of the GroupDocs.Metadata library.\nKey Features GroupDocs.Metadata for Python via .NET is equipped with a range of features that make it a useful API for developers dealing with document metadata. Here are some of the key features:\nRich Set of Metadata Management Features: Read, update, and remove metadata from various document formats. Targeted Property Manipulation: Search, update, and delete specific metadata properties that meet certain criteria. Unified Property Management: Utilize tags for easy manipulation of common metadata properties in a consistent manner. Support for Password-Protected Documents: Work with documents that are secured, ensuring flexibility even with sensitive data. Insight into Document Properties: Extract detailed information about hidden pages, digital signatures, user comments, revisions, and more. Compatibility with Popular Standards: Work with leading metadata standards such as IPTC, XMP, EXIF, and Image Resources. Multimedia Metadata Handling: Manipulate native metadata properties in various formats and extract technical information from multimedia files. Document Statistics Calculation: Calculate common document statistics like word count and character count for your documents. File Format Detection: Identify the format and MIME type of a file based on its internal structure. Support for Audio Tags: Manage various audio tags, including ID3, Lyrics, and APE. Common Use Cases Below are some common use cases for GroupDocs.Metadata in Python applications, along with corresponding code snippets.\nUse Case 1: Retrieve metadata from an image In this example, we will fetch metadata properties of an image file (e.g., image.jpg) based on specific criteria.\nInitialize the Metadata Object: Create a new instance of the Metadata class with your file. Define Search Criteria: Use a search specification to find particular properties. Fetch and Display Metadata: Retrieve the matching properties and log their names and values. import os import groupdocs.metadata as gm from datetime import datetime def run(): with gm.Metadata(\u0026#34;image.jpg\u0026#34;) as metadata: # Check if the file format is known and the document is not encrypted if metadata.file_format != gm.common.FileFormat.UNKNOWN and metadata.get_document_info().is_encrypted != True: # Define a search specification to find all properties specification = gm.search.AnySpecification() # Find properties based on the search specification properties = metadata.find_properties(specification) # Iterate through the found properties and print their names and values for property in properties: # Handle complex data types by using the interpreted_value property if not (property.interpreted_value is None): print(f\u0026#34;Property name: {property.name}, Property value: {property.interpreted_value}\u0026#34;) else: print(f\u0026#34;Property name: {property.name}, Property value: {property.value}\u0026#34;) Use Case 2: Clean up metadata from a document Here we will clean up unwanted metadata from a PDF document.\nLoad the PDF: Create a Metadata object for the PDF file. Sanitize Metadata: Remove detected metadata packages. Save the Cleaned Document: Save the sanitized document to a new file. import groupdocs.metadata as gm def run(): with gm.Metadata(\u0026#34;input.pdf\u0026#34;) as metadata: # Remove detected metadata packages and log the properties removed affected = metadata.sanitize() print(f\u0026#34;Properties removed: {affected}\u0026#34;) # Save the cleaned PDF metadata.save(\u0026#34;output.pdf\u0026#34;) Use Case 3: Update document metadata This example demonstrates how to update the copyright metadata of your documents — such as when a new year begins. The process involves three main steps:\nLoad the Document: Initialize a Metadata object for the document file. Set New Properties: Update the copyright metadata of the document. Save the Updated Document: Save the changes to the file. import os import groupdocs.metadata as gm import pathlib from datetime import datetime def run(): files = os.listdir(input_dir_path) for file in files: with gm.Metadata(input_dir_path + file) as metadata: if metadata.file_format != gm.common.FileFormat.UNKNOWN and metadata.get_document_info().is_encrypted != True: print() print(file) # Define a search specification to find the copyright property specification = gm.search.ContainsTagSpecification(gm.tagging.Tags.legal.copyright) # Set the copyright property to a new value affected = metadata.set_properties(specification, gm.common.PropertyValue(\u0026#34;Copyright (C) 2011-2025 Your Company. All Rights Reserved.\u0026#34;)) print(f\u0026#34;Affected properties: {affected}\u0026#34;) # Save the updated file metadata.save(output_dir_path + \u0026#34;output\u0026#34; + pathlib.Path(file).suffix) Getting Started with a Free Trial By default, the library operates in trial mode without a license, allowing you to explore its basic features and functionalities. You can download GroupDocs.Metadata for Python via .NET from the GroupDocs Releases page.\nAdditionally, you can acquire a temporary license from this link. The temp license allows you to use the library without any restrictions and fully explore its capabilities.\nSee Also To delve deeper and gain more insights about GroupDocs.Metadata and its functionalities, refer to the following resources:\nGroupDocs.Metadata for Python via .NET Documentation Download latest or specific release Try GroupDocs.Metadata with full-access temporary license GroupDocs.Metadata for Python via .NET Examples Free Support Forum ","permalink":"https://blog.groupdocs.com/metadata/edit-metadata-in-python/","summary":"Learn how to efficiently edit metadata in Python applications using GroupDocs.Metadata for Python via .NET. Explore installation steps, features, and code examples.","title":"Edit Metadata in Python Applications"},{"content":"Overview Merging Word documents is a common requirement in many applications, whether for combining reports, consolidating information, or just simplifying document management. In this article, we will explore how to merge DOCX files using Python with the GroupDocs.Merger library. This powerful library allows developers to easily manipulate Word documents programmatically while ensuring high performance and accuracy.\nThis guide will cover:\nHow to merge multiple DOCX files How to merge documents without section breaks How to merge with predefined compliance modes Handling document streams in Python How to merge multiple DOCX files Merging multiple DOCX files is straightforward with the GroupDocs.Merger library. Below, we outline the key steps involved in this process:\nImport the GroupDocs.Merger package: Begin by importing the required library. Create a Merger instance: Instantiate the Merger class using the first DOCX file path. Join additional documents: Use the join method to add other DOCX files that you wish to merge. Save the merged document: Finally, call the save method to write the merged document to a specified output path. Here’s a Python code snippet demonstrating these steps:\nimport groupdocs.merger as gm import constants def run(): print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(f\u0026#34;[Example Basic Usage] # MultipleDocumentOperations # Merge : Docx\u0026#34;) # Step 1: Create a Merger object with the first document with gm.Merger(constants.sample_docx) as merger: print(f\u0026#34;Document info retrieved successfully\u0026#34;) # Step 2: Join another DOCX file to merge merger.join(constants.sample_docx) # Step 3: Save the merged document merger.save(constants.output_docx) print(f\u0026#34;Merge to: {constants.output_docx}\u0026#34;) print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) Merge DOCX documents without section breaks Sometimes, merging documents requires that the contents be joined without inserting section breaks. This can help maintain the flow of information across the merged documents.\nCreate a Merger instance: Just like before, initialize the Merger class. Set join options: Define WordJoinOptions and set the mode to DISABLE_SECTION_BREAKS. Join documents: Add the additional document to merge. Save the result: Write the final output to a new DOCX file. Here’s how you can do it:\nimport groupdocs.merger as gm import constants def run(): print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(f\u0026#34;[Example Basic Usage] # MultipleDocumentOperations # Merge # Word : MergeWordDocumentsWithoutSectionBreaks\u0026#34;) # Step 1: Create a Merger object with the source document with gm.Merger(constants.sample_doc) as merger: print(f\u0026#34;Document info retrieved successfully\u0026#34;) # Step 2: Define Word join options to disable section breaks word_join_options = gm.domain.options.WordJoinOptions() word_join_options.mode = gm.domain.options.WordJoinMode.DISABLE_SECTION_BREAKS # Step 3: Join the document without section breaks merger.join(constants.sample_doc, word_join_options) # Step 4: Save the merged document merger.save(constants.output_doc_without_section_breaks) print(f\u0026#34;Merge to: {constants.output_doc_without_section_breaks}\u0026#34;) print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) Merge DOCX documents with predefined compliance modes For specific use cases, documents may need to comply with certain standards. GroupDocs.Merger allows you to merge documents with predefined compliance modes to ensure, for example, that the output meets ISO standards.\nCreate a Merger instance: Initialize the Merger class with your base document. Set compliance mode: Create a WordJoinOptions object and set the compliance property. Join documents: Add the additional document using the join method. Save the final document: Save it to your desired output location. Here is the code for this operation:\nimport groupdocs.merger as gm import constants def run(): print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(f\u0026#34;[Example Basic Usage] # MultipleDocumentOperations # Merge # Word : MergeWordDocumentsWithPredefinedComplianceMode\u0026#34;) # Step 1: Create a Merger object with the document with gm.Merger(constants.sample_docx) as merger: print(f\u0026#34;Document info retrieved successfully\u0026#34;) # Step 2: Define Word join options with predefined compliance mode word_join_options = gm.domain.options.WordJoinOptions() word_join_options.compliance = gm.domain.options.WordJoinCompliance.ISO_29500_2008_STRICT # Step 3: Join another document with compliance mode merger.join(constants.sample_docx, word_join_options) # Step 4: Save the merged document merger.save(constants.output_docx_with_predefined_compliance_mode) print(f\u0026#34;Merge to: {constants.output_docx_with_predefined_compliance_mode}\u0026#34;) print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) How to merge DOCX from streams You can also merge DOCX files from in-memory streams, which can be useful when you are dealing with dynamically generated documents.\nGet a file stream: Open your document in binary mode to get the stream. Create the Merger instance: Instantiate the Merger class using the stream. Perform the merging operation: Merge as required and save the output. Here’s how you would implement this:\nfrom turtle import update import groupdocs.merger as gm import constants def run(): print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(f\u0026#34;[Example Advanced Usage] # Loading # LoadDocumentFromStream\u0026#34;) # Step 1: Get the document stream stream = get_file_stream() # Step 2: Create a Merger instance using the stream with gm.Merger(stream) as merger: print(f\u0026#34;Document loaded from stream successfully\u0026#34;) print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) def get_file_stream(): file_path = constants.sample_docx return open(file_path, \u0026#34;rb\u0026#34;) See also For more details, you can explore the following resources:\nGroupDocs.Merger for Python Documentation API Reference for GroupDocs.Merger GroupDocs.Merger GitHub Examples You can also download a free trial from releases.groupdocs.com and acquire a temporary license to try the library without restrictions at Purchase Temporary License.\nCode Examples Here are some additional examples to help you understand the merging process with the GroupDocs.Merger library for Python:\nMerge Word Documents Without Starting From a New Page This example demonstrates how to merge documents so that the last page of the first document is directly followed by the first page of the next document, without any new page inserted in between.\nimport groupdocs.merger as gm import constants def run(): print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(f\u0026#34;[Example Basic Usage] # MultipleDocumentOperations # Merge # Word : MergeWordDocumentsWithoutStartingFromNewPage\u0026#34;) # Step 1: Create a Merger object with the document with gm.Merger(constants.sample_doc) as merger: print(f\u0026#34;Document info retrieved successfully\u0026#34;) # Step 2: Define Word join options for continuous mode word_join_options = gm.domain.options.WordJoinOptions() word_join_options.mode = gm.domain.options.WordJoinMode.CONTINUOUS # Step 3: Join documents without inserting new page merger.join(constants.sample_doc, word_join_options) # Step 4: Save the merged document merger.save(constants.output_doc_without_starting_from_new_page) print(f\u0026#34;Merge to: {constants.output_doc_without_starting_from_new_page}\u0026#34;) print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) Merge Multiple Documents with Custom Join Options Here’s how to merge DOCX documents while setting specific join options, such as compliance with a specific ISO standard.\nimport groupdocs.merger as gm import constants def run(): print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(f\u0026#34;[Example Advanced Usage] # Merge with Custom Join Options\u0026#34;) # Step 1: Create a Merger object with the base document with gm.Merger(constants.sample_docx) as merger: print(f\u0026#34;Document info retrieved successfully\u0026#34;) # Step 2: Set custom join options for predefined compliance mode word_join_options = gm.domain.options.WordJoinOptions() word_join_options.compliance = gm.domain.options.WordJoinCompliance.ISO_29500_2008_STRICT # Step 3: Join another document with compliance settings merger.join(constants.sample_docx, word_join_options) # Step 4: Save the merged document merger.save(constants.output_docx_with_predefined_compliance_mode) print(f\u0026#34;Merge to: {constants.output_docx_with_predefined_compliance_mode}\u0026#34;) print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) See also To explore more about GroupDocs.Merger and its functionalities, you can check out the following resources:\nGroupDocs.Merger for Python Documentation API Reference for GroupDocs.Merger GitHub Code Examples for GroupDocs.Merger Releases Page for GroupDocs.Merger Free Trial and Temporary License You can download a free trial of GroupDocs.Merger from our releases page. Additionally, you can acquire a temporary license for evaluation purposes at Purchase Temporary License. This temporary license allows you to try the library without any limitations and evaluate its capabilities fully.\n","permalink":"https://blog.groupdocs.com/merger/merge-docx-in-python/","summary":"Learn how to merge Microsoft Office Word documents using Python with the GroupDocs.Merger library.","title":"Merge DOCX in Python"},{"content":"Need to open a Word document but don’t have MS Word installed? No worries! With our free online Word Viewer, you can instantly open, read, and view DOCX files without downloading any software. Whether you’re on Windows, Mac, or mobile, this solution works seamlessly.\nBut what if you need to process multiple Word documents automatically? We’ve also got a programmatic approach for developers using C#, Java, Python, and Node.js. Let’s explore both methods!\nOnline Tool: Open Word Documents Instantly The GroupDocs Viewer Online App lets you open and read Word documents directly in your browser:\n✅ No installation required ✅ Works on any device ✅ Secure and fast 💡 Simply upload your DOCX file and start reading.\nThe Online Word Viewer isn\u0026rsquo;t just for viewing Word documents but it offers a range of interactive features to enhance your experience:\nZoom In \u0026amp; Out – Adjust the document size for better readability. Print – Easily print your document directly from the viewer. Download as PDF – Save the document in PDF format for offline access. Present Mode – View your Word document distraction-free in full-screen mode. With these features, you get a smooth and flexible document viewing experience. No need for MS Word or extra software!\nProgrammatic Approach: View Word Documents Using an API For developers who need to process Word documents in bulk, automate workflows, or ensure privacy, the GroupDocs.Viewer API offers SDKs for .NET, Java, Python, and Node.js.\nWhy Choose the API? Feature Online Tool SDK/API Works without installation ✅ Yes Install SDK/API Bulk processing ❌ No ✅ Yes Privacy (No file uploads) Deletes after 24 hrs ✅ Yes Customization \u0026amp; automation ❌ No ✅ Yes 💡 If you need automation, batch processing, or more privacy, use our SDKs.\nGroupDocs.Viewer Product Family The GroupDocs.Viewer Product Family provides powerful document viewing solutions for different platforms:\nGroupDocs.Viewer for .NET – Integrate document viewing into C# and .NET applications. GroupDocs.Viewer for Java – Add document rendering to Java-based applications. GroupDocs.Viewer for Python – Use document viewing capabilities in Python projects. GroupDocs.Viewer for Node.js – Enable document viewing in JavaScript/Node.js environments. Now, let\u0026rsquo;s explore how to view Word documents programmatically in each of these languages.\nView Word Documents in C# Using GroupDocs.Viewer for .NET, you can render a Word document into a PDF format for easy viewing.\nSteps to View a Word Document in C# Load the DOCX file using Viewer. Set the output format as PDF. Save the rendered file. For the detailed article, you can visit the article - Viewing Word Documents using C#\n🔗 More C# Examples: GitHub Repository\nView Word Documents in Java With GroupDocs.Viewer for Java, you can open and convert Word documents for display.\nSteps to View a Word Document in Java Load the DOCX file into the Viewer. Set output options to render as PDF. Generate and save the output file. For the detailed article, you can visit the article - Viewing Word Documents using Java\n🔗 More Java Examples: GitHub Repository\nView Word Documents in Python GroupDocs.Viewer for Python also supports Python, making document rendering easy for python developers.\nSteps to View a Word Document in Python Open the DOCX file with Viewer. Render the document to PDF format. Save the output file. 🔗 More Python Examples: GitHub Repository\nView Word Documents in Node.js For JavaScript/Node.js applications, use GroupDocs.Viewer for Node.js.\nSteps to View a Word Document in Node.js Load the DOCX file. Convert it to PDF format. Save and display the document. 🔗 More Node.js Examples: GitHub Repository\nConclusion If you need a quick way to view Word documents, try our Online Word Viewer.\nFor developers, GroupDocs.Viewer APIs offer powerful automation, privacy, and batch processing options in .NET, Java, Python, and Node.js.\n💡 Explore More: GroupDocs.Viewer Documentation\nSee more C# way to Open Word Documents Java way to Open Word Documents ","permalink":"https://blog.groupdocs.com/viewer/view-word-documents/","summary":"Explore how to open Word documents online or integrate document viewing in C#, Java, Python, and Node.js using GroupDocs.Viewer APIs.","title":"Word Document Viewer – Open \u0026 Read DOCX Files Instantly"},{"content":"Overview Merging PDF files is a frequent requirement for many developers, whether to consolidate reports, compile documents, or simplify file sharing. With the GroupDocs.Merger for Python via .NET library, developers can efficiently merge multiple PDF files programmatically. This article will guide you through the process of merging PDF files using Python, covering essential functions and providing practical code examples.\nYou can explore the following sections to learn more about the merging process:\nHow to merge PDF files in Python How to merge PDF files with bookmarks in Python How to correctly load PDF streams in Python How to merge PDF files in Python The GroupDocs.Merger for Python via .NET library allows developers to effortlessly merge PDF files without any third-party software involvement. This functionality is essential for tasks such as compiling multiple documents into one comprehensive file, which enhances document management and sharing.\nSteps to Merge PDF Files Load the Source PDF File: Begin by creating an instance of the Merger class and passing the path of the source PDF file. Add Additional PDF Files: Use the join method of the Merger class to append other PDF files you wish to combine. Save the Merged PDF: Finally, call the save method to specify the filename for the merged PDF file and save the result. Here’s a simple example of how to merge two PDF files:\nimport groupdocs.merger as gm import constants def run(): print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(f\u0026#34;[Example Basic Usage] # MultipleDocumentOperations # Merge : Pdf\u0026#34;) # Create Merger instance and load the first PDF file with gm.Merger(constants.sample_pdf) as merger: print(f\u0026#34;Document info retrieved successfully\u0026#34;) # Add another PDF file to merge merger.join(constants.sample_pdf) # Save the merged PDF file merger.save(constants.output_pdf) print(f\u0026#34;Merge to: {constants.output_pdf}\u0026#34;) print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) How to merge PDF files with bookmarks in Python Merging PDFs that contain bookmarks is essential for preserving document navigation. The GroupDocs.Merger library provides an option to include bookmarks during the merging process.\nSteps to Merge PDF Files with Bookmarks Load the Source PDF File: Initialize the Merger class and load your first PDF file. Set Bookmark Options: Create a PdfJoinOptions object with the use_bookmarks flag set to True. Add Additional PDF Files: Join other PDF files to the merger while ensuring bookmarks are preserved. Save the Merged PDF: Call the save method to save the results. Here’s how to accomplish this in code:\nimport groupdocs.merger as gm import constants def run(): print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(f\u0026#34;[Example Basic Usage] # MultipleDocumentOperations # Merge # Pdf : MergePdfUseBookmarks\u0026#34;) # Create Merger instance and load the first PDF file with gm.Merger(constants.sample_pdf) as merger: print(f\u0026#34;Document info retrieved successfully\u0026#34;) # Initialize PdfJoinOptions with the UseBookmarks flag pdf_join_options = gm.domain.options.PdfJoinOptions() pdf_join_options.use_bookmarks = True # Add another PDF file to merge with bookmarks merger.join(constants.sample_pdf_bookmarks, pdf_join_options) # Save the merged PDF file merger.save(constants.output_pdf_bookmarks) print(f\u0026#34;Merge to: {constants.output_pdf_bookmarks}\u0026#34;) print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) How to correctly load PDF streams in Python Merging PDF files from streams expands the flexibility of the GroupDocs.Merger library, allowing you to manage PDF content dynamically.\nSteps to Load PDF Streams Load PDF from Stream: Use a file stream as the input for the Merger class. Perform Operations: Once the document is loaded from the stream, you can proceed with your merging operations. Here’s an example:\nfrom turtle import update import groupdocs.merger as gm import constants def run(): print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(f\u0026#34;[Example Advanced Usage] # Loading # LoadDocumentFromStream\u0026#34;) # Get the file stream for loading stream = get_file_stream() # Merge PDF files from stream with gm.Merger(stream) as merger: print(f\u0026#34;Document loaded from stream successfully\u0026#34;) print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) def get_file_stream(): # Load the PDF file as a binary stream file_path = constants.sample_pdf return open(file_path, \u0026#34;rb\u0026#34;) See also Explore the full documentation for more details on the GroupDocs.Merger library. Check the API Reference for in-depth information on classes and methods. Browse through GitHub examples for practical implementations. Visit the Releases page to get the latest version of the library. You can download a free trial of GroupDocs.Merger for Python via .NET from here and acquire a temporary license at Temporary License for unrestricted usage of our library.\nCode Examples Here are some more detailed examples demonstrating different use cases for merging PDFs using the GroupDocs.Merger for Python via .NET library.\nExample 1: Basic Merge of Multiple PDF Files This example illustrates how to merge multiple PDF files into one.\nimport groupdocs.merger as gm import constants def run(): print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(f\u0026#34;[Example Basic Usage] # MultipleDocumentOperations # Merge : Pdf\u0026#34;) # Create a Merger instance and load the first PDF file with gm.Merger(constants.sample_pdf) as merger: print(f\u0026#34;Document info retrieved successfully\u0026#34;) # Add another PDF file to merge merger.join(constants.sample_pdf) # Save the merged PDF file merger.save(constants.output_pdf) print(f\u0026#34;Merge to: {constants.output_pdf}\u0026#34;) print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) Example 2: Merge PDFs with Bookmarks This example shows how to merge PDF files while preserving bookmarks.\nimport groupdocs.merger as gm import constants def run(): print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(f\u0026#34;[Example Basic Usage] # MultipleDocumentOperations # Merge # Pdf : MergePdfUseBookmarks\u0026#34;) # Create a Merger instance and load the first PDF file with gm.Merger(constants.sample_pdf) as merger: print(f\u0026#34;Document info retrieved successfully\u0026#34;) # Initialize PdfJoinOptions with the UseBookmarks flag pdf_join_options = gm.domain.options.PdfJoinOptions() pdf_join_options.use_bookmarks = True # Add another PDF file to merge with bookmarks merger.join(constants.sample_pdf_bookmarks, pdf_join_options) # Save the merged PDF file merger.save(constants.output_pdf_bookmarks) print(f\u0026#34;Merge to: {constants.output_pdf_bookmarks}\u0026#34;) print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) Example 3: Load PDF Streams This example demonstrates how to load PDFs using file streams, allowing for dynamic input.\nfrom turtle import update import groupdocs.merger as gm import constants def run(): print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) print(f\u0026#34;[Example Advanced Usage] # Loading # LoadDocumentFromStream\u0026#34;) # Get the file stream for loading stream = get_file_stream() # Merge PDF files from the stream with gm.Merger(stream) as merger: print(f\u0026#34;Document loaded from stream successfully\u0026#34;) print(f\u0026#34;----------------------------------------------------------------------------\u0026#34;) def get_file_stream(): # Load the PDF file as a binary stream file_path = constants.sample_pdf return open(file_path, \u0026#34;rb\u0026#34;) See also Explore the full documentation for more details about the GroupDocs.Merger library. Check the API Reference for in-depth information on classes and methods. Browse through GitHub examples for practical implementations. Visit the Releases page to get the latest version of the library. You can download a free trial of GroupDocs.Merger for Python via .NET from here and acquire a temporary license at Temporary License for unrestricted usage of our library.\n","permalink":"https://blog.groupdocs.com/merger/merge-pdf-in-python/","summary":"Learn how to merge PDF files and combine them into one file programmatically in Python using GroupDocs.Merger for Python via .NET.","title":"Merge PDF in Python"},{"content":"What Is Reverse Image Search? Reverse image search is a technology that allows users to search for information using an image as the search query instead of text. Unlike traditional keyword-based searches, reverse image search processes visual content to find matches, retrieve metadata, or provide context about the image.\nThis method has become indispensable for tasks like identifying the origin of an image, verifying its authenticity, discovering similar content, and detecting unauthorized usage of copyrighted material. Reverse image search is widely used in various fields, including e-commerce, journalism, digital forensics, and more.\nHow Does Reverse Image Search Work? At the core of reverse image search lies a key technology called perceptual hashing. This approach generates a unique \u0026ldquo;fingerprint\u0026rdquo; for each image, which is then compared with the fingerprints of other images to identify similarities. Here\u0026rsquo;s how perceptual hashing works in reverse image search:\nImage Preprocessing: Before generating a hash, the image is preprocessed to remove unnecessary details and standardize its format. This typically involves resizing the image to a smaller fixed size and converting it to grayscale. This ensures that the hashing process is consistent across all images.\nFeature Extraction: Instead of analyzing every individual pixel, perceptual hashing focuses on high-level features of the image, such as its overall structure, patterns, and color distribution. These features are summarized into a smaller representation that captures the essence of the image while ignoring minor variations like compression artifacts or slight cropping.\nGenerating the Hash: A hash is a fixed-length string or binary sequence that represents the image\u0026rsquo;s characteristics. Perceptual hashes are specially designed to ensure that visually similar images produce nearly identical hashes, even if the images have been slightly modified (e.g., resized, rotated, or compressed).\nComparing Hashes: Once the hash for the query image is generated, it is compared to the hashes stored in a database. This comparison uses techniques like the Hamming distance, which measures the number of differing bits between two hashes. A smaller difference indicates a higher similarity between the images.\nBy focusing on perceptual characteristics, this method allows reverse image search engines to match not only identical images but also those that have undergone minor edits. Perceptual hashing is a lightweight, efficient approach that makes reverse image search practical even for large-scale datasets.\nImplementing Reverse Image Search with GroupDocs.Search API The GroupDocs.Search API offers a versatile and efficient solution for implementing reverse image search capabilities in your applications. Using its image indexing and searching features, you can build a system to locate images stored within documents or standalone files. Here\u0026rsquo;s a step-by-step guide for setting up reverse image search using the GroupDocs.Search API.\nStep 1: Set Up the Environment To get started, include the GroupDocs.Search library in your project. You can do this by installing the library via NuGet for .NET projects. Just run the following command in the Package Manager Console:\nInstall-Package GroupDocs.Search Step 2: Indexing Images To enable reverse image search, you need to index the images from your document folders. GroupDocs.Search allows you to index standalone images (e.g., .png, .jpg) as well as images embedded in document files or container formats like .zip. Below is an example of how to create an index and add documents for image indexing:\nstring indexFolder = @\u0026#34;C:\\MyIndex\u0026#34;; string documentFolder = @\u0026#34;C:\\MyDocuments\u0026#34;; // Creating an index Index index = new Index(indexFolder); // Setting the image indexing options IndexingOptions indexingOptions = new IndexingOptions(); indexingOptions.ImageIndexingOptions.EnabledForContainerItemImages = true; indexingOptions.ImageIndexingOptions.EnabledForEmbeddedImages = true; indexingOptions.ImageIndexingOptions.EnabledForSeparateImages = true; // Indexing documents in a document folder index.Add(documentFolder, indexingOptions); Here, the ImageIndexingOptions options are enabled to ensure that all images (whether standalone, embedded, or from containers) are indexed. This makes the reverse image search comprehensive.\nStep 3: Searching for Related Images Once the images are indexed, you can search for similar images by providing a reference image as a query. Customize the search with ImageSearchOptions to control aspects like the acceptable level of similarity (HashDifferences), the maximum number of results to return, and specific file types to search in. Here\u0026rsquo;s how the search process looks:\n// Setting the image search options ImageSearchOptions imageSearchOptions = new ImageSearchOptions(); imageSearchOptions.HashDifferences = 10; imageSearchOptions.MaxResultCount = 100; imageSearchOptions.SearchDocumentFilter = SearchDocumentFilter.CreateFileExtension(\u0026#34;.zip\u0026#34;, \u0026#34;.png\u0026#34;, \u0026#34;.jpg\u0026#34;); // Creating a reference image for search SearchImage searchImage = SearchImage.Create(@\u0026#34;C:\\MyDocuments\\image0.png\u0026#34;); // Searching in the index ImageSearchResult result = index.Search(searchImage, imageSearchOptions); The search process generates a hash for the reference image and compares it with the indexed images. The HashDifferences parameter specifies the threshold for similarity – the smaller the value, the stricter the match.\nStep 4: Processing Search Results The ImageSearchResult object contains all the images that meet the search criteria. You can iterate through the results to retrieve information about matched images, including their locations or metadata.\nConsole.WriteLine(\u0026#34;Images found: \u0026#34; + result.ImageCount); for (int i = 0; i \u0026lt; result.ImageCount; i++) { FoundImageFrame image = result.GetFoundImage(i); Console.WriteLine(image.DocumentInfo.ToString()); } Sample Output For example, if the reverse image search is executed with a query image, the following results might be obtained:\nImages found: 2 C:\\MyDocuments\\image0.png C:\\MyDocuments\\image193.png This means two matching or similar images were found in the indexed documents: the original query image (image0.png) and another result (image193.png).\nStep 5: Fine-Tuning the System To optimize your reverse image search, you can adjust options such as:\nHash Differences: Lower values increase precision but may miss slightly altered versions of the image. Search Filters: Restrict searches to specific file types or document formats. Index Structure: Periodically update the index to include new images or remove outdated files. Conclusion Reverse image search is a powerful technology with wide-ranging applications in modern industries, from e-commerce to digital forensics. By leveraging tools like the GroupDocs.Search API, developers can easily implement robust image search systems that efficiently locate and compare visual data. With features like image indexing, adjustable similarity thresholds, and support for embedded or standalone images, this API simplifies the process of creating flexible and accurate reverse image search solutions. Whether tracking down duplicate images, verifying authenticity, or discovering related content, implementing this functionality is a valuable step toward enhancing user experiences and operational efficiency.\nCheck out these useful links for further details and resources:\nDocumentation Examples – GitHub API Reference Blog Downloads Support Forum See Also Text Search Fuzzy Search Synonym Search ","permalink":"https://blog.groupdocs.com/search/reverse-image-search/","summary":"What Is Reverse Image Search? Reverse image search is a technology that allows users to search for information using an image as the search query instead of text. Unlike traditional keyword-based searches, reverse image search processes visual content to find matches, retrieve metadata, or provide context about the image.\nThis method has become indispensable for tasks like identifying the origin of an image, verifying its authenticity, discovering similar content, and detecting unauthorized usage of copyrighted material.","title":"Reverse Image Search"},{"content":"\rOverview In today’s fast-paced digital world, document collaboration and comparison are crucial for efficiency and productivity. GroupDocs.Comparison for Node.js empowers developers to integrate robust document comparison capabilities into their applications seamlessly. This guide walks you through installation, features, and code examples.\nWhat is GroupDocs.Comparison for Node.js? Downloading GroupDocs.Comparison for Node.js Key Features Overview Common Use Cases See Also Download a Free Trial What is GroupDocs.Comparison for Node.js? GroupDocs.Comparison for Node.js is a powerful library designed for developers who want to build applications that can compare document files. It supports various document formats, helping users to identify changes between versions and ensure document integrity with ease.\nDownloading GroupDocs.Comparison for Node.js Follow these steps to download and start working with GroupDocs.Comparison for Node.js:\nVisit the official GroupDocs Releases page. Locate the GroupDocs.Comparison for Node.js package. Download the latest release. Unzip the package and navigate to the directory in your terminal. You can also install GroupDocs.Comparison for Node.js using NPM:\nnpm i @groupdocs/groupdocs.comparison After downloading, you can run the following example code snippet to verify the installation:\nconst { Comparer } = require(\u0026#39;@groupdocs/groupdocs.comparison\u0026#39;); // Load the source document const comparer = new Comparer(\u0026#34;source.docx\u0026#34;); // Specify the second file for comparison comparer.add(\u0026#34;target.docx\u0026#34;); // Save comparison result to a specified file comparer.compare(\u0026#34;result.docx\u0026#34;); Sample source and target files: Sample result file: Key Features Overview Multiple Format Support: Compare a variety of document formats including Word, PDF, and Excel. Visual Comparison: Generate visual differences in documents to provide clear insights on changes. Automated Comparison: Automatically compare documents without manual intervention. Flexibility: Easily integrate into your existing Node.js applications with minimal configuration. Detailed Report Generation: Generate comprehensive comparison reports summarizing detected changes. Common Use Cases Here are some practical scenarios where GroupDocs.Comparison can be effectively used:\nComparing Two Word Documents To compare two Word documents and highlight the differences, follow these steps:\nInitialize the Comparer. Load the documents. Add compare options (optional). Execute the comparison. Here’s a code snippet demonstrating this use case:\nconst { Comparer, CompareOptions, StyleSettings } = require(\u0026#39;@groupdocs/groupdocs.comparison\u0026#39;); const java = require(\u0026#39;java\u0026#39;); const Color = java.import(\u0026#39;java.awt.Color\u0026#39;); async function compareWordDocuments() { // Initialize the comparer object with the source file path const comparer = new Comparer(\u0026#34;source.docx\u0026#34;); // Add the target file for comparison comparer.add(\u0026#34;target.docx\u0026#34;); const compareOptions = new CompareOptions(); const styleSettings = new StyleSettings(); styleSettings.setUnderline(true); // Set font underline styleSettings.setFontColor(Color.GREEN); // Set font color as green styleSettings.setHighlightColor(Color.RED); // Set highlight color as red compareOptions.setInsertedItemStyle(styleSettings); // Set style settings for inserted items // Perform the compare operation await comparer.compare(\u0026#34;result.docx\u0026#34;, compareOptions); } compareWordDocuments(); Comparing PDF Files You can also compare PDF documents similarly. Here\u0026rsquo;s a basic example:\nSpecify the paths for the PDF files. Add compare options (optional). Execute the comparison. const { Comparer, CompareOptions, StyleSettings } = require(\u0026#39;@groupdocs/groupdocs.comparison\u0026#39;); const java = require(\u0026#39;java\u0026#39;); const Color = java.import(\u0026#39;java.awt.Color\u0026#39;); async function comparePdfDocuments() { // Initialize the comparer object with the source file path const comparer = new Comparer(\u0026#34;source.pdf\u0026#34;); // Add the target file path to the comparer object comparer.add(\u0026#34;target.pdf\u0026#34;); // Configure comparison options const compareOptions = new CompareOptions(); const styleSettings = new StyleSettings(); styleSettings.setUnderline(true); // Set font underline styleSettings.setFontColor(Color.BLUE); // Set font color as blue compareOptions.setInsertedItemStyle(styleSettings); // Set style settings for inserted items // Perform the compare operation await comparer.compare(\u0026#34;result.pdf\u0026#34;, compareOptions); } comparePdfDocuments(); By following these snippets, you can set up powerful document comparison features in your Node.js applications.\nSee Also GroupDocs.Comparison Documentation\nAPI Reference\nAdditional Articles\nGroupDocs.Comparison for .NET free NuGet download\nGroupDocs.Comparison for Java free Maven download\nGroupDocs.Comparison for Node.js via Java free NPM download\nDownload a Free Trial You can download a free trial of GroupDocs.Comparison from the releases page. Additionally, to test the library without restrictions, consider acquiring a temporary license at GroupDocs Temporary License.\nWith GroupDocs.Comparison for Node.js, integrating advanced document comparison capabilities into your applications has never been easier. Start enhancing your document processing workflow today!\n","permalink":"https://blog.groupdocs.com/comparison/compare-documents-using-nodejs/","summary":"Master document comparison with GroupDocs.Comparison for Node.js. This guide offers a detailed look at the API\u0026rsquo;s powerful features, installation steps, and practical use cases. Discover how to improve document analysis accuracy and efficiency with advanced comparison techniques, enabling developers to seamlessly integrate document comparison functionality into their applications.","title":"Compare Documents with GroupDocs.Comparison for Node.js: Installation, Features, and Use Cases"},{"content":"What’s new in this release Category Identifier Description [Fix] Watermark appears corrupted when using TextAlignment.Center in image. (WATERMARKNODEJS-1971) [Feature] Ability to specify file type when opening document. (WATERMARKNODEJS-1987) [Fix] High CPU Usage. (WATERMARKNODEJS-1480) [Fix] Technical improvements and internal optimization. (WATERMARKNODEJS-1481) [Fix] Resolved compatibility issues with Node.js 20+. The library now installs and runs correctly on the latest LTS versions. (WATERMARKNODEJS-1482) Key Fix – Node.js 20+ Compatibility Before version 26.1, the package failed to install on Node.js 20.x and higher.\nThis release updates the underlying Java bridge, ensuring the @groupdocs/groupdocs.watermark package works seamlessly on the current Node.js LTS line.\nUpdated Package README The npm package README was refreshed to include:\nKey product features System requirements Installation instructions Quick-start code samples How to Get the Update npm – Install or upgrade to version 26.1: Package page: https://www.npmjs.com/package/@groupdocs/groupdocs.watermark\nDirect Download – Available from GroupDocs.Releases: Download page:\nhttps://releases.groupdocs.com/watermark/nodejs-java/new-releases/groupdocs.watermark-for-node.js-via-java-26.1/\nResources Release Notes Documentation Home Free Support Forum ","permalink":"https://blog.groupdocs.com/watermark/groupdocs-watermark-for-node-js-26-1/","summary":"GroupDocs.Watermark for Node.js v26.1 introduces Node 20+ compatibility, an improved README with quick-start samples, new Docker deployment documentation, and multiple documentation refinements.","title":"GroupDocs.Watermark for Node.js 26.1 – January 2025 Release Highlights"},{"content":"\rGroupDocs.Watermark is a robust library for managing watermarks in documents of various formats, offering a wide array of customization options. Among its powerful features is the ability to use custom fonts, enabling developers to incorporate unique typography into their watermarks.\nIn this article, we’ll explore how to use custom fonts that are not installed on the system. Additionally, we will demonstrate how to configure a Linux Docker container for testing scenarios where specific fonts are installed directly in the container environment.\nWhy Use Custom Fonts for Watermarks? How Does GroupDocs.Watermark Enable Custom Fonts? Step-by-Step Implementation in C# Testing GroupDocs.Watermark in a Linux Docker Container Enabling Unix Support in .csproj Best Practices for Using Custom Fonts Conclusion Download Free Trial See Also Why Use Custom Fonts for Watermarks? Using custom fonts for watermarks offers several advantages:\nBrand Identity: Ensure your documents align with your organization’s typography guidelines. System Independence: Avoid dependency on system-installed fonts, ensuring portability and compatibility across different environments. How Does GroupDocs.Watermark Enable Custom Fonts? GroupDocs.Watermark simplifies the use of custom fonts by allowing developers to specify a folder containing font files. You can then reference the desired font by its family name, which makes the watermarking process flexible and easy to integrate into your workflow.\nThe implementation involves three main steps:\nSpecify the Folder Containing Fonts: Define the path to a directory that holds your font files (e.g., .ttf, .otf). Set the Font for the Watermark: Use the Font class to initialize the font with its family name, folder path, and size. Add the Watermark to the Document: Apply the configured watermark to your target document. Step-by-Step Implementation in C# Here’s how you can use custom fonts in your watermarking solution with GroupDocs.Watermark:\nKey Steps:\nSpecify the path to the document and the output file. Set the folder path where the custom font files reside. Initialize the Font object with the family name and properties. Create a text watermark and configure its properties. Add the watermark to the document and save it. using GroupDocs.Watermark; using GroupDocs.Watermark.Options; using GroupDocs.Watermark.Watermarks; class Program { static void Main() { string documentPath = \u0026#34;path-to-your-document.docx\u0026#34;; string outputFileName = \u0026#34;path-to-output/document-with-watermark.docx\u0026#34;; // Initialize the Watermarker using (Watermarker watermarker = new Watermarker(documentPath)) { // Specify the folder containing custom font files string fontsFolder = \u0026#34;path-to-folder_with_fonts\u0026#34;; // Initialize the font to be used for the watermark Font font = new Font(\u0026#34;font_family_name\u0026#34;, fontsFolder, 36, FontStyle.Bold); // Font family name, size and style // Create the watermark object TextWatermark watermark = new TextWatermark(\u0026#34;Test watermark\u0026#34;, font); // Set additional watermark properties watermark.ForegroundColor = Color.Blue; // Set the foreground color of the watermark watermark.Opacity = 0.4; // Set the opacity of the watermark watermark.HorizontalAlignment = HorizontalAlignment.Center; // Center horizontally watermark.VerticalAlignment = VerticalAlignment.Center; // Center vertically // Add the watermark to the document watermarker.Add(watermark); // Save the watermarked document watermarker.Save(outputFileName); } } } Testing GroupDocs.Watermark in a Linux Docker Container When testing GroupDocs.Watermark in a Linux Docker container, you may encounter scenarios where you want to assume that specific fonts are installed in the system. This is particularly useful for verifying font-dependent functionality or for environments where font folder configuration is not feasible.\nHere’s how to configure a Docker container to install the required dependencies and custom fonts.\nDockerfile for Testing Below is a sample Dockerfile for running a .NET project named WebApp in a Linux Docker container. The file also demonstrates how to install a custom font (MyFont.ttf) and the dependencies required for GroupDocs.Watermark:\n# Use ASP.NET runtime as base image FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app EXPOSE 80 # Add libgdiplus and libc6-dev for graphics support RUN apt-get update \u0026amp;\u0026amp; apt-get install -y apt-utils libgdiplus libc6-dev # Add `contrib` archive area to package sources list RUN sed -i\u0026#39;.bak\u0026#39; \u0026#39;s/$/ contrib/\u0026#39; /etc/apt/sources.list # Add default fonts RUN apt-get update \u0026amp;\u0026amp; apt-get install -y ttf-mscorefonts-installer fontconfig RUN fc-cache -f -v # Refresh font cache # Copy custom font to the font directory COPY [\u0026#34;WebApp/MyFont.ttf\u0026#34;, \u0026#34;/usr/share/fonts/truetype/\u0026#34;] RUN fc-cache -f -v # Refresh font cache again # Building the .NET application FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build WORKDIR /src COPY [\u0026#34;WebApp/WebApp.csproj\u0026#34;, \u0026#34;WebApp/\u0026#34;] RUN dotnet restore \u0026#34;WebApp/WebApp.csproj\u0026#34; COPY . . WORKDIR \u0026#34;/src/WebApp\u0026#34; RUN dotnet build \u0026#34;WebApp.csproj\u0026#34; -c Release -o /app/build # Publish the application FROM build AS publish RUN dotnet publish \u0026#34;WebApp.csproj\u0026#34; -c Release -o /app/publish /p:UseAppHost=false # Final stage with ASP.NET runtime FROM base AS final WORKDIR /app COPY --from=publish /app/publish . # Set the entry point for the container ENTRYPOINT [\u0026#34;dotnet\u0026#34;, \u0026#34;WebApp.dll\u0026#34;] Key Points in the Dockerfile Installing Required Libraries:\nRUN apt-get update \u0026amp;\u0026amp; apt-get install -y apt-utils libgdiplus libc6-dev\nThese libraries are essential for proper rendering of images in Linux.\nInstalling Default Fonts:\nRUN apt-get update \u0026amp;\u0026amp; apt-get install -y ttf-mscorefonts-installer fontconfig\nRUN fc-cache -f -v\nThis step installs default fonts, which are required if you are using GroupDocs.Watermark without setting a license.\nAdding a Custom Font:\nCOPY [\u0026quot;WebApp/MyFont.ttf\u0026quot;, \u0026quot;/usr/share/fonts/truetype/\u0026quot;]\nRUN fc-cache -f -v\nThis command copies the custom font (MyFont.ttf) to the appropriate font directory in the container and updates the font cache.\nBuilding and Running the Application:\nThe remaining commands configure the Docker container to build and run your .NET application (WebApp), ensuring that the custom font is available during runtime.\nEnabling Unix Support in .csproj Due to limitations in the System.Drawing.Common library in .NET 6 for Linux, you need to enable Unix support by adding a specific setting to your .csproj file. For more details on these limitations, refer to the Microsoft documentation.\n\u0026lt;ItemGroup\u0026gt; \u0026lt;RuntimeHostConfigurationOption Include=\u0026#34;System.Drawing.EnableUnixSupport\u0026#34; Value=\u0026#34;true\u0026#34; /\u0026gt; \u0026lt;/ItemGroup\u0026gt; This setting ensures that the System.Drawing functionalities work correctly in a Linux environment, which is essential for proper rendering when using GroupDocs.Watermark.\nBest Practices for Using Custom Fonts To make the most of this feature, follow these best practices:\nOrganize Fonts: Keep your custom fonts organized in a dedicated folder for easy reference. Validate Font Names: Ensure you correctly specify the font family name to avoid rendering issues. Test in a Containerized Environment: Use Docker containers to test your application in a controlled, Linux-based environment. Conclusion The ability to use custom fonts in GroupDocs.Watermark enhances your control over watermark design, allowing you to meet specific branding and styling requirements. By specifying a font folder or installing fonts in a Linux container, you can seamlessly test and deploy your application in any environment.\nThe provided Dockerfile and C# examples serve as a comprehensive guide for implementing and testing this functionality. Try them out to ensure your watermarking solution is flexible, portable, and ready for production.\nGet a Free Trial You can try GroupDocs.Watermark APIs for free by just downloading and installing the latest version on our release downloads website.\nYou can also get a temporary license to test all the library\u0026rsquo;s functionalities without any constraints. Head to the temporary license page to apply for a temporary license.\nSee Also For more information and additional resources, you may find the following links useful:\nGroupDocs.Watermark for .NET Examples GroupDocs.Watermark for Java Examples GroupDocs.Watermark for Node.js via Java Examples Download and try GroupDocs.Watrermark APIs for free Try GroupDocs.Watermark with full-access temporary license Documentation of our APIs Free Support Forum ","permalink":"https://blog.groupdocs.com/watermark/using-custom-fonts-in-groupdocs-watermark/","summary":"Discover how to implement custom fonts in GroupDocs.Watermark for enhanced watermark design flexibility, along with a guide for testing in Linux Docker containers.","title":"Using Custom Fonts in GroupDocs.Watermark: A Comprehensive Guide"},{"content":"When it comes to web images, PNG is a go-to format for its support of transparency and broad compatibility. On the other hand, SVG is a favorite for its scalability, making it ideal for logos, icons, and other vector-based graphics. Despite SVG’s many advantages, there are times when converting SVGs to PNGs is necessary, especially to ensure compatibility across different platforms and devices. In this blog post, we’ll guide you through the process of converting SVG graphics to PNG format using Node.js.\nNode.js API to Convert Images GroupDocs provides a powerful Conversion API that enables developers to convert image formats and manipulate the resulting images during the conversion process. The API supports a wide range of advanced options, making it a great choice for converting SVG to PNG in Node.js. We’ll use GroupDocs.Conversion for Node.js for this task.\nTo get started, you can install GroupDocs.Conversion for Node.js by running the following command in your project:\nnpm i @groupdocs/groupdocs.conversion For further details, visit the documentation and the API Reference.\nConvert SVG to PNG Image using Node.js Let’s begin by converting SVG vector graphics into PNG format using the default settings. The following steps outline how to convert an SVG image into PNG using Node.js.\nLoad the SVG file using the Converter class. Set up the conversion options. Specify the output format as PNG. Invoke the convert() method with the prepared options. Here’s the Node.js code that converts the SVG to PNG:\nAdvanced SVG to PNG Conversion with Node.js GroupDocs.Conversion for Node.js offers a variety of customization options that you can apply to the PNG output during the conversion process. These options include:\nBrightness adjustment Contrast adjustment Gamma correction Grayscale conversion Horizontal or vertical flip Rotation angles Custom image dimensions (height and width) Watermark addition Let’s take a look at how you can apply these advanced options during SVG to PNG conversion in Node.js.\nLoad the SVG file using the Converter class. Set up the image conversion options. Specify the output format as PNG. Define the customizations, such as brightness, rotation, or any other available. Invoke the convert() method to generate the PNG. Here’s the Node.js code that applies some of these advanced options:\nTry SVG to PNG Conversion Online for FREE Need a quick and easy solution to convert SVG files to PNG? Use this free online SVG to PNG converter. It’s accessible from any device with a web browser, making it convenient and hassle-free.\nGet a Free API License You can get a free temporary license for GroupDocs.Conversion, allowing you to use the API without evaluation limitations.\nConclusion In this post, we have explored how to convert SVG vector graphics into PNG images using Node.js with GroupDocs.Conversion for Node.js. We’ve also shown how you can enhance the conversion process by applying customizations such as rotation, grayscale, watermarking, brightness adjustments, and more. These advanced features allow you to tailor the PNG output to your exact requirements.\nFor more examples, check out the GroupDocs GitHub repository, where you can find various code samples to help you build your own SVG to PNG converter. If you have any questions, feel free to reach out to us via the forum.\nSee Also SVG to PNG Online Conversion Node.js - Word to PDF Conversion C# - SVG to PNG Conversion Java - SVG to PNG Conversion ","permalink":"https://blog.groupdocs.com/conversion/convert-svg-to-png-using-nodejs/","summary":"When transparency is needed in images on the web, PNG is a preferred format. SVG images are commonly used for scalable graphics. In some cases, it may be necessary to convert SVG vector graphics to other formats like PNG. In this post, we\u0026rsquo;ll show you how to convert SVG vector graphics to PNG images using Node.js.","title":"Convert SVG to PNG using Node.js"},{"content":"\rManaging metadata is an important part of document automation, especially for applications that work with different document formats. In this article, we will look at how to manage metadata in Node.js applications, with a focus on extracting, modifying, and removing metadata.\nIn this guide, we will explore the following sections:\nWhat is GroupDocs.Metadata and how it helps? How to install Quick start guide Key Features Common Use Cases Use Case 1: Retrieve metadata from an image Use Case 2: Clean up metadata from a document Use Case 3: Update document metadata Getting Started with a Free Trial See Also What is GroupDocs.Metadata and how it helps? GroupDocs.Metadata for Node.js is a library that helps developers manage metadata across various document formats in Node.js applications.\nAlthough there are native methods that allow Node.js developers to extract basic metadata such as file size, type, and attributes, these methods do not cover more complex metadata associated with specific file formats.\nGroupDocs.Metadata fills this gap by allowing users to retrieve, update, and remove metadata from files such as PDFs, Microsoft Office formats, images, audio, video and many others. It also enables access to detailed information such as the author, title, specific properties of file formats, including GPS location data, and many others. With a straightforward API, GroupDocs.Metadata allows you to manipulate metadata effectively to cover many document automation and data processing scenarios.\nHow to install GroupDocs.Metadata for Node.js via Java is hosted at NPM. You can easily reference our API in your Node.js project by installing it with the following command:\nnpm install @groupdocs/groupdocs.metadata Quick start guide Getting started with GroupDocs.Metadata for Node.js is quick and straightforward with our examples project. Here\u0026rsquo;s a simple guide to help you set up:\nClone the Repository: Clone the example repository to your local machine.\ngit clone https://github.com/groupdocs-metadata/GroupDocs.Metadata-for-Node.js-via-Java.git Navigate to the Examples Folder:\ncd ./GroupDocs.Metadata-for-Node.js-via-Java/ Install Necessary Packages:\nnpm install Run the Examples:\nnode runExamples.js This will execute a series of example scripts demonstrating various functionalities of the GroupDocs.Metadata library.\nKey Features GroupDocs.Metadata for Node.js is equipped with a range of features that make it a useful API for developers dealing with document metadata. Here are some of the key features:\nRich Set of Metadata Management Features: Read, update, and remove metadata from various document formats. Targeted Property Manipulation: Search, update, and delete specific metadata properties that meet certain criteria. Unified Property Management: Utilize tags for easy manipulation of common metadata properties in a consistent manner. Support for Password-Protected Documents: Work with documents that are secured, ensuring flexibility even with sensitive data. Insight into Document Properties: Extract detailed information about hidden pages, digital signatures, user comments, revisions, and more. Compatibility with Popular Standards: Work with leading metadata standards such as IPTC, XMP, EXIF, and Image Resources. Multimedia Metadata Handling: Manipulate native metadata properties in various formats and extract technical information from multimedia files. Document Statistics Calculation: Calculate common document statistics like word count and character count for your documents. File Format Detection: Identify the format and MIME type of a file based on its internal structure. Support for Audio Tags: Manage various audio tags, including ID3, Lyrics, and APE. Common Use Cases Below are some common use cases for GroupDocs.Metadata in Node.js applications, along with corresponding code snippets.\nUse Case 1: Retrieve metadata from an image In this example, we will fetch metadata properties of an image file (e.g., image.png) based on specific criteria.\nInitialize the Metadata Object: Create a new instance of the Metadata class with your file. Define Search Criteria: Use a search specification to find particular properties, such as \u0026ldquo;Width\u0026rdquo; or \u0026ldquo;Height.\u0026rdquo; Fetch and Display Metadata: Retrieve the matching properties and log their names and values. const groupdocsMetadata = require(\u0026#39;@groupdocs/groupdocs.metadata\u0026#39;); try { // Initialize the Metadata object with the image file const metadata = new groupdocsMetadata.Metadata(\u0026#34;image.png\u0026#34;); // Fetch properties based on name criteria: Width or Height var searchSpecification = new groupdocsMetadata.WithNameSpecification(\u0026#34;Width\u0026#34;) .or(new groupdocsMetadata.WithNameSpecification(\u0026#34;Height\u0026#34;)); var metadataProperties = metadata.findProperties(searchSpecification); console.log(`Total found properties#: ${metadataProperties.getCount()}`); // Iterate and log all found properties for (var i = 0; i \u0026lt; metadataProperties.getCount(); i++) { console.log(`Property name: ${metadataProperties.get_Item(i).getName()}, Property value: ${metadataProperties.get_Item(i).getValue()}`); } } catch (error) { console.error(\u0026#39;An error:\u0026#39;, error); } Use Case 2: Clean up metadata from a document Here we will clean up unwanted metadata from a PDF document.\nLoad the PDF: Create a Metadata object for the PDF file. Sanitize Metadata: Remove detected metadata packages. Save the Cleaned Document: Save the sanitized document to a new file. try { // Load the PDF file const metadata = new groupdocsMetadata.Metadata(\u0026#34;input.pdf\u0026#34;); // Remove detected metadata packages and log the properties removed var affected = metadata.sanitize(); console.log(`Properties removed: ${affected}`); // Save the cleaned PDF metadata.save(\u0026#34;cleaned_output.pdf\u0026#34;); } catch (error) { console.error(\u0026#39;An error occurred during the sanitization:\u0026#39;, error); } Use Case 3: Update document metadata This example will show you how to update the creation and modification dates of a document.\nLoad the Document: Initialize a Metadata object for the document file. Set New Properties: Update the creation and modification dates of the document. Save the Updated Document: Save the changes to the file. try { // Load the VSDX file const metadata = new groupdocsMetadata.Metadata(\u0026#34;input.vsdx\u0026#34;); // Set the current date for creation and modification properties var affected = metadata.setProperties( new groupdocsMetadata.ContainsTagSpecification( groupdocsMetadata.Tags.getTime().getCreated()) .or(new groupdocsMetadata.ContainsTagSpecification( groupdocsMetadata.Tags.getTime().getModified())), new groupdocsMetadata.PropertyValue(new Date()) ); console.log(`Properties set: ${affected}`); // Save the updated VSDX metadata.save(\u0026#34;updated_output.vsdx\u0026#34;); } catch (error) { console.error(\u0026#39;An error occurred:\u0026#39;, error); } Getting Started with a Free Trial By default the library operates in trial mode without a license, allowing you to explore its basic features and functionalities of the library. You can download GroupDocs.Metadata for Node.js via Java from the GroupDocs Releases page.\nAdditionally, you can acquire a temporary license from this link. The temp license allows you to use the library without any restrictions and fully explore its capabilities.\nSee Also To delve deeper and gain more insights about GroupDocs.Metadata and its functionalities, refer to the following resources:\nGroupDocs.Metadata for Node.js via Java Documentation Download latest or specific release Try GroupDocs.Metadata with full-access temporary license GroupDocs.Metadata for Node.js via Java Examples GroupDocs.Metadata for Node.js via Java free NPM download Free Support Forum ","permalink":"https://blog.groupdocs.com/metadata/edit-metadata-in-nodejs/","summary":"Learn how to efficiently edit metadata in Node.js applications using GroupDocs.Metadata. Explore installation steps, features, and code examples.","title":"Edit Metadata in Node.js Applications"},{"content":"The Page Builder feature transforms document merging by allowing users to seamlessly combine pages from different documents with precision and ease. It enables merging pages in any sequence, giving complete control over the structure of the final document. Whether merging a few key pages or creating a comprehensive document, this tool ensures flexibility and efficiency. By reducing manual effort, it simplifies the process of crafting tailored documents, saving valuable time and boosting overall productivity in both personal and professional workflows.\nThe following topics are discussed here:\nUnderstanding Page Builder Sample case and code implementation Specifying the range of the required pages Conclusion If you are interested in Merging documents online, visit the Online Merging Tool that is powered by GroupDocs.\nUnderstanding Page Builder The Page Builder feature introduces a streamlined way to create custom documents by combining pages from multiple source documents. This feature allows developers to build a new document step-by-step, adding pages in any sequence from two or more documents. Here’s how the process works:\nBegin by loading the source Word document using the Merger class and pass to the constructor one of the source documents. Join the documents one by one to merge using the Join method. Initialize the Page Builder. Over the method CreatePageBuilder from the Merger instance This serves as the starting point for constructing your new document. The AddPage method of the Page Builder instance allows to add into the destination document any particular page of joined documents previously for each source document, choose the specific pages you want to include over the index; add these pages to the new document in the desired sequence. You can mix and match pages from different documents to meet your needs; repeat this process for additional source documents, ensuring that you have the flexibility to combine pages in a way that best suits your requirements; Using ApplyPageBuilder method to apply changes from the Page Builder instance Save the merged document to any destination. Once all the necessary pages have been added, save the new document. The final output will be a fully customized file containing pages from multiple sources, organized exactly how you want them. This step-by-step approach makes it easy to create documents tailored to specific use cases, such as compiling reports, creating personalized presentations, or assembling legal documents. With Page Builder, developers have complete control over the page order and content, eliminating the need for time-consuming manual edits and ensuring precision in the final output.\nSample case and code implementation Let’s demonstrate how to use the Page Builder feature in GroupDocs.Merger with a practical example. To simplify the case assume we have two documents:\nDocument A with 4 pages. Document B with 4 pages. We aim to create a new document by merging pages from these two documents in different sequences based on specific scenarios.\nHere we marked each document page with document letter A, B and page number. From documents A and B we need to receive the tailored document C with the following structure\nThe following source code snippet shows how to merge particular pages from the several documents in the resultant document.\nstring documentA = @\u0026#34;documentA.pdf\u0026#34;; string documentB = @\u0026#34;documentB.pdf\u0026#34;; string documentC = @\u0026#34;documentC.pdf\u0026#34;; using (Merger merger = new Merger(documentA)) { merger.Join(documentB); PageBuilder pageBuilder = merger.CreatePageBuilder(); // get documents A and B references var docA = pageBuilder.Documents[0]; var docB = pageBuilder.Documents[1]; pageBuilder.AddPage(docA.Pages[0]); // document A, page 1 or Page A-1 pageBuilder.AddPage(docB.Pages[0]); // document B, page 1 or Page B-1 pageBuilder.AddPage(docB.Pages[1]); // document B, page 2 or Page B-2 pageBuilder.AddPage(docB.Pages[2]); // document B, page 3 or Page B-3 pageBuilder.AddPage(docA.Pages[1]); // document A, page 2 or Page A-2 pageBuilder.AddPage(docA.Pages[3]); // document A, page 4 or Page A-4 // Apply the page order merger.ApplyPageBuilder(pageBuilder); merger.Save(documentC); } Specifying the range of the required pages When working with document manipulation, adding multiple pages efficiently is crucial for handling complex workflows. Instead of adding pages individually, you can use the AddPageRange method, which accepts an array of IPageInfo objects, each representing a specific page. This approach simplifies the process, reduces repetitive code, and improves performance by allowing batch operations. Below is a code example demonstrating how to utilize this method to add multiple pages from different documents in a single, streamlined operation.\nHere are the steps to combine several pages from various documents specifying them as a range:\nCreate a Merger object and provide the path or stream of the source file. Use the Join to add another source document. Repeat this step for each document you want to merge. Create a PageBuilder object by calling the CreatePageBuilder method. Call the AddPageRange method and pass an array of IPageInfo objects describing the appropriate pages. Please note that IPageInfo objects use zero-based notation for source documents and page numbers. Use the ApplyPageBuilder method to apply the specified order of pages to the merged document. Save the resulting document by calling the Save method and providing a file path. string documentA = @\u0026#34;documentA.pdf\u0026#34;; string documentB = @\u0026#34;documentB.pdf\u0026#34;; string documentC = @\u0026#34;documentC.pdf\u0026#34;; using (Merger merger = new Merger(documentA)) { merger.Join(documentB); PageBuilder pageBuilder = merger.CreatePageBuilder(); // get documents A and B references var docA = pageBuilder.Documents[0]; var docB = pageBuilder.Documents[1]; // Specify a range of pages IPageInfo[] range = new IPageInfo[] { docA.Pages[0], // Page A-1 from the document A docB.Pages[0], // Page B-1 from the document B docB.Pages[1], // Page B-2 from the document B docB.Pages[2], // Page B-3 from the document B docA.Pages[1], // Page A-2 from the document A docA.Pages[3], // Page A-4 from the document A }; // Append a page of pages pageBuilder.AddPageRange(range); // Apply the page order merger.ApplyPageBuilder(pageBuilder); merger.Save(documentC); } Conclusion These examples illustrate the versatility of the Page Builder feature. Developers can easily combine pages from multiple documents in various sequences to create tailored outputs. This feature significantly reduces manual work and ensures precision in document generation, making it an essential tool for diverse use cases.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nBuild Your Own Merge Page Builder Application Here are some important links that will help you in building your own document comparison application.\nDocumentation | API Reference | Supported File Formats\nRunning Examples – GitHub | Free Support Forum | Release Notes\nSee Also For more information and additional resources, you may find the following links useful:\nGroupDocs.Merger for .NET Examples GroupDocs.Merger for Java Examples GroupDocs.Merger for Node.js via Java Examples GroupDocs.Merger for Python via .NET Examples Download and try GroupDocs.Merger APIs for free Try GroupDocs.Merger with full-access temporary license Documentation of our APIs Free Support Forum ","permalink":"https://blog.groupdocs.com/merger/page-builder-how-to-merge-pages/","summary":"The Page Builder feature in GroupDocs.Merger for .NET lets developers merge specific pages from multiple documents into a single, customized file. Select pages from different documents, arrange them in any order, and create a unified output tailored to your needs. Perfect for reports, summaries, and document consolidation.","title":"Document page builder - how to merge particular pages of documents"},{"content":"In today’s digital landscape, almost everyone uses popular formats like MS Word (DOC/DOCX) and PDF. Each format has its own strengths, making them widely used across various industries. This extensive usage often leads to the need for converting these formats between each other. In this article, we will explore how to convert MS Word documents (DOC/DOCX) files into PDF format using Node.js. Additionally, we will learn how to convert specific pages of a password-protected Word document within a Node.js application.\nNode.js API for Converting Word to PDF GroupDocs offers a GroupDocs.Conversion solution tailored for Node.js developers. It allows developers to efficiently convert various document and image formats using its robust Node.js API. For this article, we will leverage the GroupDocs.Conversion for Node.js API to convert DOC/DOCX documents into PDF format.\nYou can install the required package from the npm repository and easily integrate it into your Node.js-based applications.\nnpm i @groupdocs/groupdocs.conversion How to Convert Word (DOC/DOCX) to PDF in Node.js Let\u0026rsquo;s walk through the basic steps for converting a Word document into a PDF using Node.js. The following procedure will convert all pages of a DOCX file into a PDF:\nLoad the Word DOC/DOCX file using the Converter class. Set the PDF conversion options using the PdfConvertOptions class. Convert the document to PDF format using the convert method. The following Node.js code converts the entire Word document to PDF:\nConvert Selected Pages of Password-Protected Word Documents in Node.js You can also convert selected pages from password-protected Word documents into PDF. The following steps explain how to convert only specific pages of a password-protected Word document:\nSet up loading options using the WordProcessingLoadOptions class and provide the password. Load the Word DOC/DOCX file using the Converter class. Set the conversion options for the PDF format, including page number, page count, DPI, width, and height. Convert the specific pages of the password-protected Word document to PDF format. The following Node.js code converts selected pages of a password-protected Word document:\nTry Word to PDF Online Conversion for FREE You can also convert Word documents to PDF file format using this free online documents converter tool. You can access it on any device with any available web browser.\nGet Full License for Free - Node.js Conversion Library You can get a free temporary license to try the Node.js conversion library without evaluation limitations. A temporary license is actually a time-restricted full license that lets you test every aspect of the product.\nConclusion In conclusion, we explored how to convert MS Word (DOC/DOCX) files into PDF format using Node.js. We also covered how to convert specific pages of a password-protected document into PDF within a Node.js environment. By using GroupDocs.Conversion for Node.js, you can easily automate document conversions in your application.\nFor more information about the Document Conversion Automation API, refer to the documentation, API Reference, or explore the GitHub examples. For any queries, feel free to reach out via the forum.\nRelated Articles Convert Word Documents to PDF using C# Convert Word Documents to PDF using Java ","permalink":"https://blog.groupdocs.com/conversion/convert-word-doc-docx-to-pdf-in-nodejs/","summary":"In today’s digital landscape, almost everyone uses popular formats like MS Word (DOC/DOCX) and PDF. Each format has its own strengths, making them widely used across various industries. This extensive usage often leads to the need for converting these formats between each other. In this article, we will explore how to convert MS Word documents (DOC/DOCX) files into PDF format using Node.js. Additionally, we will learn how to convert specific pages of a password-protected Word document in a Node.js application.","title":"Convert Word Documents to PDF in Node.js"},{"content":"\rIn today\u0026rsquo;s digital landscape, maintaining document integrity and ensuring secure approvals are crucial for businesses and legal entities. Iterative signing of PDF documents with digital certificates allows multiple stakeholders to sign documents sequentially without invalidating previous signatures. This article explores the concept, benefits, and technical implementation of iterative signing, providing a comprehensive guide to enhancing your document approval processes.\nContent Introduction Document integrity Understanding Digital Signatures Role of Digital Signatures in PDF Documents Iterative Digital Signing Concept and Benefits Implementing Iterative Signing with the C# Get a Free Trial See also Introduction In today\u0026rsquo;s digital world, ensuring document integrity is crucial for business agreements, legal contracts, and confidential communications. Digital signatures provide a robust method to verify the authenticity and integrity of documents. Iterative signing, allowing multiple parties to sign a document sequentially without invalidating previous signatures, enhances security and streamlines approval workflows. This article explores iterative digital signing, its benefits, technical foundations, and implementation in PDF documents, demonstrating how this technology improves document integrity and efficiency in various organizational settings. The Case studies section will show how to implement these features with the GroupDocs.Signature library across the various platforms.\nDocument integrity Document integrity refers to the assurance that a document remains unchanged from its original state and that any alterations can be detected. This is a fundamental aspect of trust in digital communications and transactions. Ensuring document integrity is vital for several reasons:\nLegal Compliance and Authenticity: In many industries, maintaining the integrity of documents is a legal requirement. For instance, contracts, court documents, and regulatory filings must be verifiable and unaltered to be legally binding. Digital signatures play a crucial role in meeting these requirements by providing a verifiable method to ensure that a document has not been tampered with.\nSecurity and Confidentiality: Document integrity is essential for maintaining the confidentiality and security of sensitive information. Unauthorized changes to critical documents can lead to data breaches, fraud, and other security incidents. By ensuring that documents remain unchanged, organizations can protect sensitive information and maintain trust with clients, partners, and stakeholders.\nOperational Efficiency: In business processes involving multiple approvals, maintaining document integrity is key to ensuring that all parties review and approve the same version of a document. This prevents confusion, errors, and delays, thereby improving operational efficiency. Iterative signing supports this by allowing documents to be signed by multiple parties sequentially without invalidating previous signatures.\nAuditability and Accountability: Ensuring document integrity provides a clear audit trail, showing who signed the document and when. This is particularly important for accountability and transparency in both internal and external audits. Digital signatures create a tamper-evident seal that helps organizations track document changes and verify the authenticity of signatures.\nTrust and Credibility: Maintaining document integrity builds trust and credibility with customers, partners, and regulatory bodies. It demonstrates a commitment to protecting the authenticity of documents and upholding high security and compliance standards. This trust is essential for establishing and maintaining strong business relationships.\nIn summary, document integrity is a cornerstone of secure and reliable digital transactions. Digital signatures, particularly through iterative signing, provide a powerful tool for ensuring that documents remain authentic, unaltered, and verifiable. By leveraging this technology, organizations can enhance their document workflows, comply with legal requirements, and build greater trust and credibility with their stakeholders.\nUnderstanding Digital Signatures What is a Digital Signature? A digital signature is a cryptographic mechanism used to verify the authenticity and integrity of a digital message or document. Unlike electronic signatures, which can be as simple as a scanned image of a handwritten signature, digital signatures provide stronger security by leveraging public key infrastructure (PKI). This ensures that the signature is both unique to the signer and the document, providing a high level of confidence that the document has not been altered since the signature was applied.\nHow Digital Signatures Work The process of creating a digital signature involves several steps:\nHashing: The document is passed through a hashing algorithm (such as SHA-256) to generate a unique hash value that represents the document\u0026rsquo;s content. Encryption: This hash value is then encrypted using the signer\u0026rsquo;s private key, creating the digital signature. The private key is part of a public-private key pair where the private key is securely held by the signer. Embedding the Signature: The encrypted hash, along with the signer\u0026rsquo;s certificate (containing the public key and other identifying information), is embedded into the document. Verification: Upon opening the document, the recipient\u0026rsquo;s software uses the signer\u0026rsquo;s public key to decrypt the hash. The software then re-hashes the document and compares the newly generated hash with the decrypted hash. If they match, the signature is verified as authentic and the document is confirmed as unaltered. Benefits of Using Digital Signatures Digital signatures offer numerous advantages:\nEnhanced Security: The use of PKI ensures that digital signatures are nearly impossible to forge. Document Integrity: Any alteration to the document after signing invalidates the signature, thus maintaining document integrity. Authentication: The digital certificate associated with the signature verifies the signer\u0026rsquo;s identity, ensuring authenticity. Non-repudiation: Signers cannot deny their signature on a document since it is tied to their private key, which only they possess. Compliance: Digital signatures comply with various legal standards and regulations such as eIDAS in the EU and the ESIGN Act in the US, making them legally binding in many jurisdictions. Types of Certificates Digital signatures rely on different types of certificates:\nSelf-Signed Certificates: Issued by the signer themselves, primarily used for internal purposes or testing. Organization Validated (OV) Certificates: These certificates verify that the signer is associated with a specific organization. Extended Validation (EV) Certificates: Provide the highest level of trust by verifying the signer\u0026rsquo;s identity through a rigorous vetting process by a Certificate Authority (CA). Role of Digital Signatures in PDF Documents Digital signatures play a pivotal role in ensuring the authenticity, integrity, and non-repudiation of PDF documents. Unlike electronic signatures, which are often just images or typed names, digital signatures utilize cryptographic techniques to provide a higher level of security and trust.\nHow Digital Signatures Work Creation of a Unique Hash: When a user signs a PDF document, a unique hash value (a fixed-length string of characters) is generated using a hashing algorithm. This hash value represents the contents of the document at the time of signing. Encryption with a Private Key: The hash value is then encrypted using the signer’s private key, which is part of a public-private key pair. This encrypted hash, along with information about the hashing algorithm, constitutes the digital signature. Embedding the Signature in the PDF: The digital signature is embedded in the PDF document along with the signer\u0026rsquo;s certificate, which contains the public key and information about the signer. This certificate is typically issued by a trusted Certificate Authority (CA). Verification Process: When the signed PDF is opened, the recipient’s PDF viewer software uses the signer’s public key to decrypt the hash value. The software then generates a new hash value from the document’s content and compares it with the decrypted hash. If the two hash values match, the signature is verified as authentic and the document is confirmed as unaltered since the time of signing. Technical Components of Digital Signatures in PDFs PFX Certificate Files: PFX (Personal Information Exchange) files are used to store the public and private keys along with the certificate chain. These files are password-protected to ensure that only authorized users can access the private key required for creating digital signatures. PKI Infrastructure: Public Key Infrastructure (PKI) supports the creation, distribution, and management of digital certificates. PKI components include CAs, Registration Authorities (RAs), and the end-user devices that store and manage keys and certificates. Hashing Algorithms: Commonly used hashing algorithms in digital signatures include SHA-256, SHA-384, and SHA-512. These algorithms produce unique hashes that are nearly impossible to replicate without altering the original document content. Signature Standards: PDF documents adhere to specific standards for digital signatures, such as the PAdES (PDF Advanced Electronic Signatures) standard. These standards ensure compatibility and security across different software and devices. Benefits of Digital Signatures in PDFs Document Integrity: Digital signatures ensure that any tampering with the document after signing can be detected. This is crucial for maintaining the trustworthiness of the document. Authentication: The inclusion of the signer\u0026rsquo;s certificate provides a way to verify the identity of the signer. This adds a layer of trust, ensuring that the signer is who they claim to be. Non-repudiation: Because the digital signature is tied to the signer\u0026rsquo;s private key, which only the signer should have access to, it provides proof of the signer\u0026rsquo;s involvement. This prevents the signer from denying that they signed the document. Legality and Compliance: Many legal frameworks and regulations recognize digital signatures as equivalent to handwritten signatures, provided they meet certain criteria. This is important for compliance with laws such as eIDAS in the European Union and the ESIGN Act in the United States. Implementing Digital Signatures in PDFs Using Libraries and APIs: There are various libraries and APIs available for implementing digital signatures in PDF documents, such as Adobe Acrobat SDK, iText, and PDFBox. These tools provide functions to create, embed, and verify digital signatures programmatically. Step-by-Step Signing Process: Load the PDF Document: Load the document into the signing software or library. Prepare the PFX Certificate: Load the PFX certificate and provide the password for access. Generate the Hash: Create a hash of the document content. Create the Signature: Encrypt the hash with the private key to create the digital signature. Embed the Signature: Embed the digital signature and the certificate into the PDF document. Iterative Signing: To enable multiple signatures, each subsequent signature must append to the document without altering existing content. This requires careful handling of the PDF\u0026rsquo;s structure to ensure that each signature validates independently while the overall document remains unchanged. In conclusion, digital signatures are an essential feature for ensuring the security and integrity of PDF documents. They provide robust mechanisms for verifying authenticity, maintaining document integrity, and supporting legal and regulatory compliance. By understanding and implementing digital signatures, organizations can enhance their document workflows and safeguard critical information.\nIterative Digital Signing Iterative digital signing allows multiple users to sequentially sign a PDF document without invalidating previous signatures, preserving document integrity, and ensuring all signatures remain valid. This process is particularly valuable in scenarios requiring multiple approvals, such as corporate agreements, legal documents, or multi-stakeholder contracts.\nTechnical Details Certificate-Based Signatures: Each digital signature uses a certificate-based system. This system involves:\nDigital ID: Comprising a private key and a public key certificate. The private key is used to create the signature, while the public key in the certificate is used for verification. Hashing Algorithm: When signing, a hash of the document\u0026rsquo;s content is created and encrypted using the signer\u0026rsquo;s private key. This hash is unique to the document\u0026rsquo;s current state. Signature Embedding: The encrypted hash, certificate, and additional signature details are embedded within the PDF, ensuring that any modification post-signature invalidates the signature. Steps for Adding Signatures: To implement iterative signing in Adobe Acrobat, follow these steps:\nOpen the PDF: Select the document to be signed. Choose \u0026lsquo;Use a Certificate\u0026rsquo;: From the \u0026lsquo;Tools\u0026rsquo; menu, select \u0026lsquo;Certificates\u0026rsquo; and then \u0026lsquo;Digitally Sign.\u0026rsquo; Draw Signature Field: Draw the area where the signature will appear. Sign with Digital ID: Choose an existing digital ID or configure a new one if necessary. Save the Document: Once signed, save the document. Each signature is stored, maintaining the integrity of previous signatures. Verifying Signatures: Adobe Acrobat automatically validates digital signatures when a document is opened, checking:\nCertificate Validity: Ensuring the signer\u0026rsquo;s certificate is trusted. Document Integrity: Confirming that the document has not been altered since the signature was applied. Timestamp Verification: Checking the timestamp against the certificate\u0026rsquo;s validity period to ensure the signature was made within an acceptable timeframe. Security Considerations:\nCertificate Management: Properly manage and protect the PFX files containing private keys. Revocation Checking: Ensure certificates are checked against revocation lists to validate their current status. Timestamping: Use reliable timestamp servers to add timestamps to signatures, which helps in validating the time of signing even if the certificate expires later. Handling Multiple Signatures: Each signature added to the PDF must be done without altering the document\u0026rsquo;s content. Acrobat ensures this by appending the new signature data to the existing document structure. This way, previous signatures remain intact and verifiable.\nUser Experience:\nSigner Notification: Signers are notified via email to review and sign the document. Signature Application: The user selects their digital ID, reviews the document, and applies their signature. Each signature is visibly distinct and can include additional information like timestamps and signer\u0026rsquo;s identity. By implementing iterative digital signing, organizations can enhance their workflow efficiency, maintain high security standards, and ensure all document approvals are legally binding and verifiable.\nConcept and Benefits Iterative signing is a powerful approach in digital document management that enables multiple stakeholders to sequentially sign a PDF document without invalidating previous signatures. This method ensures that each signature remains valid and verifiable, preserving the document\u0026rsquo;s integrity and authenticity. Iterative signing is particularly beneficial for organizations that require multiple levels of approval, such as in legal, corporate, and regulatory environments. By allowing for successive additions of digital signatures, it streamlines the approval process, enhances security, and maintains a clear audit trail for compliance and accountability purposes.\nUse Cases for Iterative Signing in Enterprises Corporate Approvals:\nBoard Resolutions: Multiple board members can sign off on resolutions or meeting minutes, ensuring that each member\u0026rsquo;s approval is recorded without altering the document. Contract Approvals: In large enterprises, contracts often require sign-offs from multiple departments, such as legal, finance, and executive management. Iterative signing allows each department to review and approve the document sequentially. Legal and Compliance:\nRegulatory Filings: Documents submitted to regulatory bodies often require multiple signatures from different stakeholders. Iterative signing ensures that each required signature is collected while maintaining the document\u0026rsquo;s integrity. Legal Agreements: Lawyers from different firms can sign agreements iteratively, providing a clear record of each party\u0026rsquo;s approval without modifying the core content of the document. Project Management:\nProject Charters: Various project stakeholders can sign off on project charters or plans, ensuring that all necessary approvals are obtained in a structured and verifiable manner. Change Requests: Iterative signing allows for multiple levels of approval for project change requests, ensuring that changes are vetted and approved by all relevant parties. Benefits of Iterative Signing for Document Approval Processes Enhanced Security and Integrity:\nPreservation of Previous Signatures: Each signature is added without altering the document\u0026rsquo;s content, ensuring that previous signatures remain valid and verifiable. Tamper-Evident: Any attempt to alter the document after signing invalidates the signatures, providing a strong deterrent against tampering. Improved Workflow Efficiency:\nSequential Approvals: Documents can be routed sequentially for approvals, reducing the need for manual coordination and speeding up the approval process. Audit Trail: Each signature is timestamped and recorded, creating a clear audit trail that can be reviewed for compliance and accountability purposes. Compliance and Legal Validity:\nRegulatory Compliance: Digital signatures often meet the requirements of regulations such as eIDAS in the EU and the ESIGN Act in the US, making them legally binding and recognized in many jurisdictions. Non-Repudiation: Digital signatures provide proof of the signer\u0026rsquo;s identity and intent, reducing the risk of disputes over the validity of signatures. Cost Savings:\nReduced Paperwork: Digital signatures eliminate the need for physical documents, reducing printing, shipping, and storage costs. Streamlined Processes: By automating the signing process, organizations can reduce the time and resources required to manage document approvals. In conclusion, iterative signing is a critical feature for enterprises that require multiple levels of approval for their documents. By enabling sequential signing without compromising document integrity, it enhances security, improves workflow efficiency, ensures compliance, and provides significant cost savings. This makes iterative signing an invaluable tool for modern digital document management.\nImplementing Iterative Signing with the C# The provided C# example demonstrates how to apply one iteration of the many sequential digital signing PDF documents using GroupDocs.Signature for .NET. This technique involves several key steps, from initializing necessary objects and setting up the Digital Options without any additional settings to applying the Digital Certificate to the document and saving the final output. This block of code could be called with the same document unlimited times with the same or different digital certificates. Until the PDF document will be signed this way without additional changes all added digital signatures stay valid.\nThe Main Concepts Use exclusively only one or many DigitalSignOptions: Ensure that if there will be at least one non-digital option, the document will be changed. Additional setting ImagePath or ImageStream properties: Each DigitalSignOptions now support these properties with the iterative digital signatures. Additional setting Background or Border properties: Setting up these properties will force library to generate background image manually. string [] certificates = new string[] {\u0026#34;certificate-01.pfx\u0026#34;, \u0026#34;certificate-02.pfx\u0026#34;}; string[] passwords = new string[] { \u0026#34;1234567890\u0026#34;, \u0026#34;1234567890\u0026#34; }; // The path to the documents directory. string filePath = \u0026#34;sample.pdf\u0026#34;; int iteration = 0; string outputFilePath = Path.Combine(\u0026#34;signed-output.pdf\u0026#34;); foreach (var certificate in certificates) { using (Signature signature = new Signature(filePath)) { DigitalSignOptions options = new DigitalSignOptions(certificate) { // certificate password Password = passwords[iteration], // digital certificate details Reason = $\u0026#34;Approved-{iteration}\u0026#34;, Contact = $\u0026#34;John{iteration} Smith{iteration}\u0026#34;, Location = $\u0026#34;Location-{iteration}\u0026#34;, // no image AllPages = true, Left = 10 + 100 * (iteration - 1), Top = 10 + 100 * (iteration - 1), Width = 160, Height = 80, Margin = new Padding() { Bottom = 10, Right = 10 } }; string outputPath = Path.Combine(outputFilePath, $\u0026#34;result-{iteration}.pdf\u0026#34;); SignResult signResult = signature.Sign(outputPath, options); filePath = outputPath; Console.WriteLine($\u0026#34;\\nSource document signed successfully {iteration++}-time with {signResult.Succeeded.Count} signature(s).\u0026#34;); } } Get a Free Trial You can try GroupDocs.Signature APIs for free by just downloading and installing the latest version on our release downloads website.\nYou can also get a temporary license to test all the library\u0026rsquo;s functionalities without any constraints. Head to the temporary license page to apply for a temporary license.\nSee Also For more information and additional resources, you may find the following links useful:\nGroupDocs.Signature for .NET Examples GroupDocs.Signature for Java Examples GroupDocs.Signature for Node.js via Java Examples Download and try GroupDocs.Signature APIs for free Try GroupDocs.Signature with full-access temporary license Documentation of our APIs Free Support Forum ","permalink":"https://blog.groupdocs.com/signature/iterative-digital-signing/","summary":"Explore the process of iterative signing for PDF documents, allowing multiple digital signatures without compromising previous ones. Learn the technical implementation and benefits for enterprise use with C#, Java, and Node.js.","title":"Iterative PDF Signing with Digital Certificates"},{"content":"\rIn the digital age, the security of documents is more critical than ever. Tiling watermarks provide a robust defense mechanism by embedding a repetitive patterned watermark across the entire document. This guide offers a comprehensive overview on generating tiling watermarks to ensure your digital documents are protected with an indelible layer of security, maintaining their integrity and authenticity.\nContent Introduction Mastering Tiling Watermarks Tiling Watermark Settings and Options Advanced C# Tiling Watermark Generation Techniques Creating Tiling Watermarks with Java Conclusion Get a Free Trial See also Introduction As we transition further into a paperless world, the need to protect sensitive information from unauthorized access and duplication becomes paramount. Document watermarking represents a simple and easy solution to enhance document security effectively. Documents embedded with secure and non-removable watermarks are effectively protected from copyright infringement issues.\nThe more complex solution for watermarking is the concept of tiling watermarks, delineating their utility and superiority over traditional watermarking methods. By embedding a repetitive patterned watermark across the entire document, tiling watermarks offer a robust defense mechanism against the illicit reproduction and tampering of digital files. The following sections will provide a comprehensive guide on generating tiling watermarks, ensuring that your digital documents are secured with a nearly indelible layer of protection that maintains their integrity and authenticity. Whether you\u0026rsquo;re a business professional looking to safeguard corporate documents or a content creator aiming to protect your intellectual property, understanding how to implement tiling watermarks is an essential skill in today’s digital landscape.\nMastering Tiling Watermarks Basic Concept A tiling watermark is a digital marking technique used to protect and authenticate documents by embedding a repeated patterned design that covers the entire surface area of the document. Unlike standard watermarks, which are typically single marks placed in specific areas (such as the corner or center of a page), tiling watermarks consist of continuous interlocking patterns that extend across the document. This not only makes them less obtrusive but also significantly more effective in securing the documents against unauthorized modifications and reproductions.\nTiling Watermark Patterns In the realm of document protection, tiling watermark patterns provide a sophisticated method to safeguard content without compromising its integrity. These patterns vary in arrangement and style, each tailored to different security needs and visual preferences. Different tiling patterns may suit particular cases based on the specific document or image being protected. Below, we explore several popular tiling watermark types, describing their design and ideal use cases. Refer to the image below for visual representations of these patterns:\nOffset: Ideal for general document protection where a staggered and repetitive pattern can help deter unauthorized duplication. One-Third Offset: Useful for documents requiring a more intricate watermark, offering a higher level of security through its unique alignment. Stepladder: Best for vertical documents or images, providing a distinctive look while maintaining robust security. Stacked Horizontal: Suitable for wide documents or images, ensuring consistent coverage across the horizontal axis. Stacked Vertical: Perfect for tall documents, offering a seamless vertical pattern that does not interfere with the readability. Herringbone: Ideal for high-security documents, the complex pattern makes removal attempts highly detectable. Block Herringbone: Provides enhanced protection with a bold and intricate design, suitable for sensitive documents. Basket Weave: Excellent for artistic works, combining aesthetic appeal with strong protective features. The Benefits Difficulty in removal without damaging the host document page content. Robustness: The intricate patterns used in tiling watermarks are embedded in such a way that any attempt to remove them will inevitably alter the underlying content of the document. This alteration can be easily detected, thus deterring tampering. Interdependence: Tiling patterns are often interlinked, meaning that removing one part of the watermark impacts the rest, which helps in maintaining document security even if part of it is cropped or edited. Seamless Integration into Documents Without Affecting Readability Adjustable Opacity and Design: Tiling watermarks can be customized to be visually subtle, ensuring they do not interfere with the text or graphical content of the document. This is crucial for maintaining the aesthetic and functional quality of important documents. Non-Intrusive Protection: The watermark integrates smoothly into the document’s design, providing security without distraction. This is particularly important in professional and academic environments where document clarity and presentation are paramount. Tiling watermarks are thus a sophisticated security tool offering not just protection but also a degree of authenticity and non-repudiation to documents that is hard to achieve with other watermarking methods. Their design and application require careful consideration but result in a highly secure and resilient marking that safeguards information seamlessly. The next sections will provide a step-by-step guide on how to effectively generate and apply these watermarks to your documents.\nTiling Watermark Settings and Options Overview Tiling watermark settings allow users to embed repetitive patterns across a document in a structured and uniform manner. These settings provide control over the alignment, spacing, and measurement unit of the watermarks to ensure consistent visibility without overwhelming the document\u0026rsquo;s content.\nConfigurability The settings offer extensive configuration from the type of tile used to the spacing and size of the watermarks. This flexibility ensures that watermarks can be adapted to various document types and design preferences, enhancing both security and aesthetics.\nKey Features Tile Type: Choose from several predefined patterns that best fit the document\u0026rsquo;s layout. The type could be straight tile alignment or offset tile alignment. Measurement Unit: Specify measurements in pixels or percentages to accommodate different document sizes. Spacing Control: Adjust vertical and horizontal spacing to optimize visibility and coverage. Practical Applications Tiling Options are ideal for a range of applications from protecting business documents and presentations to securing artistic works and confidential information. The ability to fine-tune the watermark\u0026rsquo;s properties ensures that it serves its protective purpose without detracting from the document\u0026rsquo;s primary content.\nSettings Options Tile Type: Description: Specifies the pattern and alignment type of the tile used for the watermark. This could range from simple stacked designs to complex interwoven styles. Options: Standard tiling (aligned grids), staggered (offset patterns), or custom designs. Measurement Type: Description: Determines the unit of measurement used for defining the watermark\u0026rsquo;s dimensions and spacing. Options: Pixels (for fixed dimensions) or Percent (to scale with document size). Value: Description: Sets the specific numerical value of the measurement, which could define the size of the watermark or the spacing between each tile. Line Spacing: Description: Controls the vertical space between each row of the watermark tile. Functionality: Helps in adjusting the density of the watermark and its visibility across the page. Watermark Spacing: Description: Manages the horizontal space between each repetition of the watermark. Functionality: Allows for fine-tuning the frequency of the watermark, which can be crucial for both aesthetics and copyright protection purposes. Implementation Tips Ensure that the MeasureValue settings are appropriate for the document size and intended visibility of the watermark. Consider the document\u0026rsquo;s layout and content when choosing the TileType to avoid obscuring critical information. Regularly review and adjust the LineSpacing and WatermarkSpacing to maintain the effectiveness and discreteness of the watermark as the document format or content changes. Using these settings, users can effectively safeguard their documents against unauthorized use while maintaining the readability and integrity of the underlying content.\nAdvanced C# Tiling Watermark Generation Techniques The provided C# example demonstrates how to apply a tiling image watermark to a PDF document using GroupDocs.Watermark for .NET. This technique involves several key steps, from initializing necessary objects and setting up the watermark properties to applying the watermark to the document and saving the final output.\nCreating Tiling Watermarks with Java How to create tiling watermarks in Java focusing on embedding image watermarks into documents, images, or photos? Below is an example of how to implement this in Java using a GroupDocs.Watermark for .NET.\nConclusion Tiling watermarks offer an advanced solution for enhancing document security by embedding repetitive patterns that protect against unauthorized modifications and reproductions. Understanding and applying these watermarks can significantly boost document integrity and authenticity.\nGroupDocs.Watermark APIs provide powerful tools to help implement tiling watermarking in your solutions. Whether safeguarding corporate documents or protecting intellectual property, these APIs offer comprehensive support for adding robust, customizable watermarks across various file formats.\nGet a Free Trial You can try GroupDocs.Watermark APIs for free by just downloading and installing the latest version on our release downloads website.\nYou can also get a temporary license to test all the library\u0026rsquo;s functionalities without any constraints. Head to the temporary license page to apply for a temporary license.\nSee Also For more information and additional resources, you may find the following links useful:\nGroupDocs.Watermark for .NET Examples GroupDocs.Watermark for Java Examples GroupDocs.Watermark for Node.js via Java Examples Download and try GroupDocs.Watrermark APIs for free Try GroupDocs.Watermark with full-access temporary license Documentation of our APIs Free Support Forum ","permalink":"https://blog.groupdocs.com/watermark/generate-tiling-watermark/","summary":"Learn how to enhance document security with tiling watermarks. This comprehensive guide covers concepts, settings, and implementation in C#, Java, and Node.js.","title":"How to Generate a Tiling Watermark"},{"content":"\rGroupDocs.Watermark for Node.js via Java enables developers to add watermarking capabilities to their Node.js applications. In this guide, you will learn how to easily integrate watermarking features into your solutions, overview key features, and explore practical use cases with useful code snippets.\nManaging Watermarks in Various Document Formats with Node.js Getting Started with GroupDocs.Watermark Key Features Use Cases Adding Text Watermark Adding Image Watermark Conclusion Get a Free Trial See Also Managing Watermarks in Various Document Formats with Node.js GroupDocs.Watermark for Node.js is a robust API that allows you to easily add, edit, and remove watermarks in various document formats such as PDF, DOCX, and PPTX. By integrating this API, you can automate watermarking processes, ensuring your documents are secure and authentic. Whether you need to add a confidential stamp to a PDF or a company logo to a Word document, GroupDocs.Watermark makes it simple and efficient. Its intuitive design helps you quickly implement watermarking without extensive knowledge of document formats.\nGetting Started with GroupDocs.Watermark To get started with GroupDocs.Watermark for Node.js, follow these steps:\nInstall Node.js and npm: Ensure you have Node.js and npm installed on your machine. You can download them from the official Node.js website.\nInstall the GroupDocs.Watermark Package: Open your terminal and navigate to your project directory. Run the following command to install the package:\nnpm i @groupdocs/groupdocs.watermark Import the Library: In your Node.js application, require the GroupDocs.Watermark module:\nconst groupdocsWatermark = require(\u0026#39;@groupdocs/groupdocs.watermark\u0026#39;) Run Example Code: To verify the installation, you can run an example code snippet. Create a new JavaScript file (e.g., example.js) and add the following code:\nExecute the Script: Run the script using Node.js: node example.js Following these steps will set up GroupDocs.Watermark in your Node.js project, allowing you to start adding watermarks to your documents.\nKey Features GroupDocs.Watermark for Node.js via Java offers a range of powerful features to help you manage watermarks in your documents efficiently. Here are some of the key features:\nSupport for Multiple Formats: Add, edit, and remove watermarks in more than 50 file formats, including images, PDF, Word, Excel documents, PowerPoint presentations, and more.\nText and Image Watermarks: Easily apply both text and image watermarks to your documents.\nCustomizable Watermarks: Customize the appearance of your watermarks, including font, color, size, transparency, and rotation.\nDetection and Removal: Detect existing watermarks in documents and remove them as needed.\nRemoval of tricky watermarks: Helps to search for tricky watermarks that are camouflaged as normal content and removes them carefully.\nBatch Processing: Apply watermarks to multiple documents simultaneously, efficiently processing large volumes of files.\nHigh Performance: Designed for high performance and efficiency, GroupDocs.Watermark is fine-tuned to work in various environments, from low-resource machines to high-load servers.\nSecurity and Protection: Enhance document security by embedding watermarks that deter unauthorized copying, sharing, and distribution of sensitive information.\nBy leveraging these features, you can ensure your documents are secure, branded, and protected from unauthorized use.\nUse Cases GroupDocs.Watermark for Node.js provides versatile watermarking capabilities suitable for various scenarios. Here are some practical use cases with code snippets to help you get started:\nAdding Text Watermark In this example, you\u0026rsquo;ll discover how to add a text watermark to your documents using GroupDocs.Watermark in Node.js. Follow the steps outlined to implement this feature quickly and efficiently.\nInitialize the Watermarker Class: Create an instance of the GroupDocs.Watermark.Watermarker class with the input document path. Create a Text Watermark: Create a TextWatermark instance with the desired text and font. Set Watermark Properties: Customize the watermark\u0026rsquo;s color and alignment. Add the Watermark to the Document: Add the watermark to the document using the add method. Save the Watermarked Document: Save the modified document to the specified output path. Close the Watermarker: Close the watermarker to release resources. Adding Image Watermark In this example, you will learn how to add an image watermark to your documents using GroupDocs.Watermark in Node.js. Follow these steps to seamlessly integrate image watermarking into your project.\nInitialize the Watermarker Class: Create an instance of the GroupDocs.Watermark.Watermarker class with the input document path. Create an Image Watermark: Create an ImageWatermark instance with the image file path. Set Watermark Alignment: Customize the watermark\u0026rsquo;s horizontal and vertical alignment. Add the Watermark to the Document: Add the watermark to the document using the add method. Save the Watermarked Document: Save the modified document to the specified output path. Close the Watermarker: Close the watermarker to release resources. These examples demonstrate how to integrate basic watermarking functionality into your Node.js applications. You can customize these snippets further to fit your specific needs.\nConclusion GroupDocs.Watermark for Node.js via Java provides a powerful and flexible solution for adding watermarks to various document formats. With its extensive feature set, you can easily integrate text and image watermarking into your Node.js applications, ensuring your documents are secure and professionally branded.\nWhether you are looking to protect sensitive information or add a professional touch to your documents, GroupDocs.Watermark for Node.js offers the tools you need. Start your free trial today and see how it can enhance your projects.\nGet a Free Trial You can try GroupDocs.Watermark for Node.js via Java for free by just installing the latest version with NPM.\nAdditionally, you can obtain a temporary license to test all the features of the library without any limitations. Visit the temporary license page to request a temporary license.\nWith the trial version and temporary license, you can explore the full potential of GroupDocs.Watermark for Node.js and determine how it fits your needs.\nSee Also For more information and additional resources, you may find the following links useful:\nGroupDocs.Watermark for Node.js via Java Examples Try GroupDocs.Watermark with full-access temporary license GroupDocs.Watermark for Node.js via Java free NPM download Free Support Forum ","permalink":"https://blog.groupdocs.com/watermark/integrate-watermarking-in-nodejs-applications/","summary":"Discover how to integrate GroupDocs.Watermark into your Node.js applications, with a comprehensive installation guide, key features overview, and practical use cases with code snippets.","title":"Integrate Watermarking in Node.js Applications"},{"content":"\rJSON (JavaScript Object Notation) is a lightweight data-interchange format that is easy to edit manually and performs quickly programmatically with many high-performance processing tools. JSON is a text format that is completely language-independent but uses conventions that are familiar to all programming languages, making it an ideal data-interchange language.\nIn this article, we will explore various aspects of JSON comparisons and demonstrate how GroupDocs.Comparison can enhance your JSON comparison processes.\nChallenges of Comparing JSON Data Complexity of JSON Structures Data Variability Volume of Data Data Type Issues Real-time Comparison Needs Visualizing Changes GroupDocs.Comparison APIs Key Features Simple API Dual Comparison Modes How the output extension controls which mode you get High Precision Comparisons Applying or Rejecting Changes Integration Capabilities Conclusion Understanding the Challenges of Comparing JSON Data JSON has become the backbone of data interchange on the web, serving as both a streamlined, intuitive medium for data communication between systems and an easily manageable data storage format. However, the very features that make JSON appealing also introduce unique challenges when it comes to data comparison, especially when dealing with large or complex datasets, nested data, and embedded arrays. This article aims to explore these challenges, highlighting the need for effective tools like GroupDocs.Comparison that integrate both visual and textual comparison methods to enhance the accuracy and efficiency of JSON data analysis.\nComplexity of JSON Structures JSON can be deeply nested with multiple layers of objects and arrays. Traditional text comparison tools can struggle to provide clear insights into the hierarchical structure, which can lead to overlooked discrepancies.\nJSON Sample: Complex Hierarchical Data\r{ \u0026#34;Company\u0026#34;: \u0026#34;Tech Innovations Inc.\u0026#34;, \u0026#34;Employees\u0026#34;: [ { \u0026#34;FirstName\u0026#34;: \u0026#34;John\u0026#34;, \u0026#34;LastName\u0026#34;: \u0026#34;Doe\u0026#34;, \u0026#34;Contact\u0026#34;: { \u0026#34;Email\u0026#34;: \u0026#34;john.doe@techinnovations.com\u0026#34;, \u0026#34;Phone\u0026#34;: \u0026#34;123-456-7890\u0026#34; }, \u0026#34;Roles\u0026#34;: [ \u0026#34;Developer\u0026#34;, \u0026#34;UI/UX Specialist\u0026#34; ], \u0026#34;Projects\u0026#34;: [ { \u0026#34;Title\u0026#34;: \u0026#34;Project Mercury\u0026#34;, \u0026#34;Status\u0026#34;: \u0026#34;Active\u0026#34;, \u0026#34;Details\u0026#34;: { \u0026#34;Budget\u0026#34;: 120000, \u0026#34;Deadlines\u0026#34;: [ \u0026#34;2023-06-01\u0026#34;, \u0026#34;2024-01-15\u0026#34; ] } }, { \u0026#34;Title\u0026#34;: \u0026#34;Project Venus\u0026#34;, \u0026#34;Status\u0026#34;: \u0026#34;Completed\u0026#34;, \u0026#34;Details\u0026#34;: { \u0026#34;Budget\u0026#34;: 85000, \u0026#34;Deadlines\u0026#34;: [ \u0026#34;2022-12-15\u0026#34; ] } } ] }, { \u0026#34;FirstName\u0026#34;: \u0026#34;Jane\u0026#34;, \u0026#34;LastName\u0026#34;: \u0026#34;Smith\u0026#34;, \u0026#34;Contact\u0026#34;: { \u0026#34;Email\u0026#34;: \u0026#34;jane.smith@techinnovations.com\u0026#34;, \u0026#34;Phone\u0026#34;: \u0026#34;987-654-3210\u0026#34; }, \u0026#34;Roles\u0026#34;: [ \u0026#34;Project Manager\u0026#34; ], \u0026#34;Projects\u0026#34;: [ { \u0026#34;Title\u0026#34;: \u0026#34;Project Mars\u0026#34;, \u0026#34;Status\u0026#34;: \u0026#34;Planning\u0026#34;, \u0026#34;Details\u0026#34;: { \u0026#34;Budget\u0026#34;: 50000, \u0026#34;Deadlines\u0026#34;: [ \u0026#34;2024-07-20\u0026#34;, \u0026#34;2025-08-30\u0026#34; ] } } ] } ], \u0026#34;OfficeLocations\u0026#34;: [ { \u0026#34;Country\u0026#34;: \u0026#34;USA\u0026#34;, \u0026#34;Cities\u0026#34;: [ \u0026#34;New York\u0026#34;, \u0026#34;San Francisco\u0026#34; ] }, { \u0026#34;Country\u0026#34;: \u0026#34;Canada\u0026#34;, \u0026#34;Cities\u0026#34;: [ \u0026#34;Toronto\u0026#34;, \u0026#34;Vancouver\u0026#34; ] } ] } Data Variability JSON data is not only about the data stored but also about how it is structured. Two JSON files might represent the same data but in different formats, such as varying orders of objects and arrays, which traditional comparison tools might incorrectly identify as differences. For example JSON file with the serialized customer could contain same properties in alphabetical order but another JSON serialization could contain the properties in different sequence. That makes content of data equal but JSON properties in different order.\nJSON Sample: Original JSON with serialized cutomers\r{ \u0026#34;Customer\u0026#34;: { \u0026#34;FirstName\u0026#34;: \u0026#34;John\u0026#34;, \u0026#34;LastName\u0026#34;: \u0026#34;Doe\u0026#34;, \u0026#34;Contact\u0026#34;: { \u0026#34;Email\u0026#34;: \u0026#34;john.doe@example.com\u0026#34;, \u0026#34;Phone\u0026#34;: \u0026#34;123-456-7890\u0026#34; }, \u0026#34;Roles\u0026#34;: [\u0026#34;Developer\u0026#34;, \u0026#34;Team Lead\u0026#34;], \u0026#34;Projects\u0026#34;: [ { \u0026#34;Title\u0026#34;: \u0026#34;Project Alpha\u0026#34;, \u0026#34;Status\u0026#34;: \u0026#34;Completed\u0026#34;, \u0026#34;Details\u0026#34;: { \u0026#34;Budget\u0026#34;: 100000, \u0026#34;Deadline\u0026#34;: \u0026#34;2023-12-31\u0026#34; } } ] } } JSON Sample: Rearranged JSON object properties\r{ \u0026#34;Customer\u0026#34;: { \u0026#34;FirstName\u0026#34;: \u0026#34;John\u0026#34;, \u0026#34;LastName\u0026#34;: \u0026#34;Doe\u0026#34;, \u0026#34;Projects\u0026#34;: [ { \u0026#34;Title\u0026#34;: \u0026#34;Project Alpha\u0026#34;, \u0026#34;Status\u0026#34;: \u0026#34;Completed\u0026#34;, \u0026#34;Details\u0026#34;: { \u0026#34;Budget\u0026#34;: 100000, \u0026#34;Deadline\u0026#34;: \u0026#34;2023-12-31\u0026#34; } } ], \u0026#34;Roles\u0026#34;: [\u0026#34;Developer\u0026#34;, \u0026#34;Team Lead\u0026#34;], \u0026#34;Contact\u0026#34;: { \u0026#34;Email\u0026#34;: \u0026#34;john.doe@example.com\u0026#34;, \u0026#34;Phone\u0026#34;: \u0026#34;123-456-7890\u0026#34; }, } } Volume of Data With the increase in data size, comparing large JSON files becomes cumbersome and error-prone. Manual comparison is practically impossible, and without the right tools, automation lacks accuracy.\nData Type Issues JSON supports various data types (strings, numbers, booleans, etc.). Changes in data types across documents intended to be identical can lead to significant functionality problems in applications that rely on these JSON files for configuration or behavior. Sometime due to errors in the source code without strict typing (like Java Script, etc) the serialized numeric data could appear as strings.\nJSON Sample: Original JSON object properties with mixed string and numeric representation\r{ \u0026#34;Report\u0026#34;: { \u0026#34;Year\u0026#34;: 2023, \u0026#34;Revenue\u0026#34;: \u0026#34;500000\u0026#34;, \u0026#34;Profit\u0026#34;: 20000.0, \u0026#34;ActiveUsers\u0026#34;: \u0026#34;1000\u0026#34;, \u0026#34;ProductNames\u0026#34;: [\u0026#34;Product A\u0026#34;, \u0026#34;Product B\u0026#34;, \u0026#34;Product C\u0026#34;], \u0026#34;IsProfitable\u0026#34;: true, \u0026#34;Departments\u0026#34;: [ { \u0026#34;Name\u0026#34;: \u0026#34;Development\u0026#34;, \u0026#34;EmployeeCount\u0026#34;: \u0026#34;100\u0026#34; }, { \u0026#34;Name\u0026#34;: \u0026#34;Marketing\u0026#34;, \u0026#34;EmployeeCount\u0026#34;: \u0026#34;80\u0026#34; } ] } } JSON Sample: Destination or changed JSON object properties with mixed string and numeric representation\r{ \u0026#34;Report\u0026#34;: { \u0026#34;Year\u0026#34;: \u0026#34;2023\u0026#34;, \u0026#34;Revenue\u0026#34;: 500000, \u0026#34;Profit\u0026#34;: \u0026#34;20000\u0026#34;, \u0026#34;ActiveUsers\u0026#34;: 1000, \u0026#34;ProductNames\u0026#34;: [\u0026#34;Product A\u0026#34;, \u0026#34;Product B\u0026#34;, \u0026#34;Product C\u0026#34;], \u0026#34;IsProfitable\u0026#34;: \u0026#34;true\u0026#34;, \u0026#34;Departments\u0026#34;: [ { \u0026#34;Name\u0026#34;: \u0026#34;Development\u0026#34;, \u0026#34;EmployeeCount\u0026#34;: 100 }, { \u0026#34;Name\u0026#34;: \u0026#34;Marketing\u0026#34;, \u0026#34;EmployeeCount\u0026#34;: 80 } ] } } Real-time Comparison Needs In today\u0026rsquo;s fast-paced environments, developers and data analysts often need to perform real-time data comparisons to quickly resolve issues or merge changes. The delay caused by inefficient comparison tools can lead to slower development cycles and delayed product releases.\nVisualizing Changes Especially with JSON, visualizing changes between two datasets can significantly reduce the time it takes to understand and rectify discrepancies. This requirement extends beyond mere text comparison, involving a visual representation that can immediately highlight differences.\nThe integration of visual and textual comparison methods with GroupDocs.Comparison addresses these challenges effectively. By providing a comprehensive view of both the structure and content of JSON files, it enables users to perform precise and efficient data comparisons, thereby improving productivity and ensuring data integrity. This article will delve into how mastering these comparison techniques can be a game-changer for professionals working with JSON data, supported by practical insights and examples.\nIntroducing GroupDocs.Comparison: A Comprehensive Solution for Comparing JSON Files In the world of data management and software development, ensuring data integrity and accuracy is paramount, especially when dealing with JSON files. GroupDocs.Comparison emerges as a robust tool designed to address the unique challenges associated with comparing JSON files. This tool is engineered to enhance productivity and ensure data consistency through its advanced comparison capabilities that integrate both visual and textual outputs.\nKey Features of GroupDocs.Comparison Simple API With an intuitive API, GroupDocs.Comparison allows users to easily open many document formats, quickly identify relevant changes, and efficiently reconcile differences. The interface simplifies the comparison process, making it accessible even to those with minimal technical expertise.\nComparing two JSON files in C# takes three calls — load the source, add the target, and compare:\nusing GroupDocs.Comparison; using GroupDocs.Comparison.Options; string source = \u0026#34;source.json\u0026#34;; string target = \u0026#34;target.json\u0026#34;; string result = \u0026#34;result.json\u0026#34;; using (var comparer = new Comparer(source)) { comparer.Add(target); var options = new CompareOptions { GenerateSummaryPage = true }; comparer.Compare(result, options); } The full sample with imports and error handling is also available as a GitHub Gist:\nC# — CompareJSONFiles.cs Java — CompareJSONFiles.java Node.js — CompareJSONFiles.js Dual Comparison Modes GroupDocs.Comparison offers two primary modes of comparison for JSON files—textual and visual. This dual approach ensures that users can not only see the differences in data presented textually in a diff-like format but also visualize these differences through a graphical interface that highlights changes with distinct colors and annotations. Consider the following two JSON files that we want to compare:\nJSON file #1\n{ \u0026#34;employees\u0026#34;: [ { \u0026#34;name\u0026#34;: \u0026#34;John Doe\u0026#34;, \u0026#34;position\u0026#34;: \u0026#34;Software Engineer\u0026#34;, \u0026#34;email\u0026#34;: \u0026#34;john.doe@example.com\u0026#34;, \u0026#34;phone\u0026#34;: \u0026#34;123-456-7890\u0026#34; }, { \u0026#34;name\u0026#34;: \u0026#34;Jane Smith\u0026#34;, \u0026#34;position\u0026#34;: \u0026#34;Project Manager\u0026#34;, \u0026#34;email\u0026#34;: \u0026#34;jane.smith@example.com\u0026#34;, \u0026#34;phone\u0026#34;: \u0026#34;234-567-8901\u0026#34; } ] } JSON file #2\n{ \u0026#34;employees\u0026#34;: [ { \u0026#34;name\u0026#34;: \u0026#34;John Doe\u0026#34;, \u0026#34;position\u0026#34;: \u0026#34;Senior Software Engineer\u0026#34;, \u0026#34;email\u0026#34;: \u0026#34;john.doe@example.com\u0026#34;, }, { \u0026#34;name\u0026#34;: \u0026#34;Jane Smith\u0026#34;, \u0026#34;position\u0026#34;: \u0026#34;Project Manager\u0026#34;, \u0026#34;email\u0026#34;: \u0026#34;jane.smith@example.com\u0026#34;, \u0026#34;phone\u0026#34;: \u0026#34;234-567-8901\u0026#34; }, { \u0026#34;name\u0026#34;: \u0026#34;Sam Brown\u0026#34;, \u0026#34;position\u0026#34;: \u0026#34;Designer\u0026#34;, \u0026#34;email\u0026#34;: \u0026#34;sam.brown@example.com\u0026#34;, \u0026#34;phone\u0026#34;: \u0026#34;345-678-9012\u0026#34; } ] } Visual Comparison Mode Generates a single HTML report that effectively combines data from two JSON files into one integrated document. Differences within the JSON data are clearly marked using inline highlights: items deleted from the original file are highlighted in red, while new or changed items are marked in blue. This format allows users to view all content in a single, unified document, streamlining the process of identifying and understanding the changes.\nTextual Comparison Mode Produces a combined JSON file that integrates the contents of both compared JSON files. This mode uses text markings to highlight differences directly within the JSON structure: deleted items are enclosed in square brackets, while added items are denoted by round brackets. This method provides a clear textual representation of changes, making it easy for users to track modifications and analyze data with precision.\n{ \u0026#34;employees\u0026#34;: [ { \u0026#34;name\u0026#34;: \u0026#34;John Doe\u0026#34;, \u0026#34;position\u0026#34;: \u0026#34;(Senior )Software Engineer\u0026#34;, \u0026#34;email\u0026#34;: \u0026#34;john.doe@example.com\u0026#34;, [ \u0026#34;phone\u0026#34;: \u0026#34;123-456-7890\u0026#34; ]\t}, { \u0026#34;name\u0026#34;: \u0026#34;Jane Smith\u0026#34;, \u0026#34;position\u0026#34;: \u0026#34;Project Manager\u0026#34;, \u0026#34;email\u0026#34;: \u0026#34;jane.smith@example.com\u0026#34;, \u0026#34;phone\u0026#34;: \u0026#34;234-567-8901\u0026#34; (\t}, )(\t{ )( \u0026#34;name\u0026#34;: \u0026#34;Sam Brown\u0026#34;, )( \u0026#34;position\u0026#34;: \u0026#34;Designer\u0026#34;, )( \u0026#34;email\u0026#34;: \u0026#34;sam.brown@example.com\u0026#34;, )( \u0026#34;phone\u0026#34;: \u0026#34;345-678-9012\u0026#34; )\t} ] } Summary page Count of deleted components: 1 Count of inserted components: 7 How the output extension controls which mode you get You choose between the two modes by setting the extension of the result file path you pass to Compare():\nResult path ends in .json → GroupDocs.Comparison writes two files: the textual .json diff at the path you provided, plus a .html file alongside it containing the visual report. A single call gives you both representations. Result path ends in .html → only the visual HTML report is written. No .json diff is produced. using var comparer = new Comparer(\u0026#34;source.json\u0026#34;); comparer.Add(\u0026#34;target.json\u0026#34;); var options = new CompareOptions { GenerateSummaryPage = true }; // Produces BOTH result.json (textual diff) AND result.html (visual report) comparer.Compare(\u0026#34;result.json\u0026#34;, options); // Produces ONLY result.html (visual report) comparer.Compare(\u0026#34;result.html\u0026#34;, options); Use the .json form when you want both representations from one call — for example, archiving the textual diff in a review system while sending the HTML report to a reviewer. Use the .html form when you only need the visual diff and don\u0026rsquo;t want an extra file on disk.\nHigh Precision Comparisons The tool is built to handle complex JSON structures with precision. It can accurately identify differences in nested objects, array orders, and even subtle changes in data types. This is critical for applications where data integrity can influence business decisions or software behavior. Here\u0026rsquo;s a JSON snippet representing an employee record before and after modifications. In this example, changes to the phone number are indicated with square brackets for deletions and round brackets for insertions, reflecting the nuanced adjustments within nested elements of the JSON structure.\n{ \u0026#34;employees\u0026#34;: [ { \u0026#34;name\u0026#34;: \u0026#34;Jane Smith\u0026#34;, \u0026#34;position\u0026#34;: \u0026#34;Project Manager\u0026#34;, \u0026#34;email\u0026#34;: \u0026#34;jane.smith@example.com\u0026#34;, \u0026#34;phone\u0026#34;: \u0026#34;[1]23(4)-[4]56(7)-[7]890(1)\u0026#34; } ] }( )() Summary page Count of deleted components: 3 Count of inserted components: 5 Applying or Rejecting Changes When working with JSON comparisons in code, developers often need to programmatically decide which changes to accept and which to reject based on specific criteria.\nThe following example demonstrates how you can apply or reject changes in C# using GroupDocs.Comparison:\nIntegration Capabilities Designed for scalability and integration, GroupDocs.Comparison can be seamlessly integrated into existing enterprise applications and workflows. This allows organizations to enhance their existing systems with powerful comparison functionalities without significant overhauls or downtime.\nFree License Acquire a temporary license for free to explore GroupDocs.Comparison APIs without any restrictions.\nDownload GroupDocs.Comparison API for your preferred platform.\nConclusion GroupDocs.Comparison stands out as a sophisticated tool that addresses the complex needs of JSON file comparison. By integrating both visual and textual outputs, it not only simplifies the comparison process but also enhances the accuracy and efficiency of managing JSON data. Whether for regulatory compliance, data migration, or routine data management tasks, GroupDocs.Comparison provides a reliable and efficient solution, making it an essential tool for businesses and developers dealing with JSON data.\nIf you want to learn more, you can visit the following resources:\nGroupDocs.Comparison APIs downloads | Documentation | Free Support\nSee Also Try our APIs for free with a full-access temporary license GroupDocs.Comparison for .NET free NuGet download GroupDocs.Comparison for Java free Maven download GroupDocs.Comparison for Node.js via Java free NPM download ","permalink":"https://blog.groupdocs.com/comparison/mastering-json-comparisons/","summary":"Compare JSON files programmatically using GroupDocs.Comparison for .NET, Java, and Node.js. Get visual HTML reports, textual JSON diffs, and learn how to control which output you get via the result file extension.","title":"Compare JSON Files in C#, Java, and Node.js — Visual and Textual Modes"},{"content":"JSON and XML are two widely recognized structured data formats extensively utilized by developers for data transmission. As programmers, we often encounter scenarios where seamless conversion between JSON and XML formats becomes essential. In this article, we delve into the process of effortlessly converting JSON data into XML format using C#.\nThe following topics are covered below:\nJSON and XML Conversion - .NET API Convert JSON to XML in C# Example Why JSON to XML Conversion is Needed JSON vs XML: A Concise Comparison Convert JSON to XML Online JSON to XML Converter - .NET API Utilizing GroupDocs.Conversion, a powerful .NET API, developers can seamlessly automate the conversion process between various document types, images, and file formats. In this article, we leverage this versatile API to demonstrate the conversion of JSON files to XML format using C#. Beyond JSON and XML conversion, GroupDocs.Conversion facilitates a wide array of bi-directional conversions, including word-processing documents, presentations, eBooks, as well as image formats like JPG, PNG, and WebP. Comprehensive documentation is available for further reference.\nTo integrate the API into your .NET application, you can conveniently download the necessary DLLs or use the provided MSI installer from the downloads section.\nAlternatively, install the API directly via NuGet using the following command:\nPM\u0026gt; Install-Package GroupDocs.Conversion Convert JSON to XML in C# Both the JSON and XML formats are commonly used in web-based applications to transmit data. These are structured, human-readable, hierarchical formats to store and exchange data.\nThe following steps guide you to convert the JSON data into XML format using .NET API.\nLoad the JSON data file using Converter class. Use the WebConvertOptions to set the conversion format to XML. Call the Convert method of Converter class to transform the JSON Data into XML format The following code converts the JSON data into XML format using C#.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nCommon Use Cases - Why JSON to XML Conversion is Needed Some of the common scenarios in which developers might need to convert JSON data to XML format in C#.\nIntegrating with legacy systems that require XML data. Interacting with APIs or services that only accept XML. Sharing data with partners or clients who prefer XML format. JSON vs XML: A Concise Comparison JSON (JavaScript Object Notation) Strengths Readable and lightweight syntax, making it easy for humans to parse and write. Ideal for data interchange between web services and JavaScript-based applications due to its native support in JavaScript. Well-suited for representing structured data with simple key-value pairs, arrays, and nested objects. Weaknesses Limited support for complex data structures and metadata compared to XML. Less expressive in terms of defining data schemas and enforcing data validation rules. May require additional processing to handle hierarchical data or mixed content models. XML (eXtensible Markup Language) Strengths Highly flexible and extensible markup language for defining structured data with hierarchical relationships. Supports namespaces, schema validation, and document type definitions (DTDs), enabling precise data modeling and validation. Widely adopted across industries and platforms, making it compatible with a wide range of systems and technologies. Weaknesses Verbosity of syntax compared to JSON, which can lead to larger file sizes and increased processing overhead. Requires strict adherence to well-formedness rules and schema specifications, which may complicate parsing and error handling. Not as native to web development as JSON, requiring additional parsing and transformation steps for integration with JavaScript-based applications. In summary, JSON offers simplicity, readability, and native support in JavaScript environments, making it well-suited for lightweight data interchange. On the other hand, XML provides robustness, extensibility, and precise data modeling capabilities, making it a preferred choice for representing complex data structures and ensuring interoperability across diverse systems. The choice between JSON and XML depends on factors such as the nature of the data, compatibility requirements, and the specific use case.\nConvert JSON to XML Online For the quick and effortless conversion of JSON data to XML format using an online application, visit the Conversion App by GroupDocs.\nConclusion To conclude, you have learned about JSON and XML formats, .NET Conversion API, online free converter and how to programmatically perform the conversion within your .NET applications using C#.\nYou can learn more about the .NET Conversion Automation API using the documentation, or by quickly experiencing the examples available on GitHub.\nContact us for any query via the forum.\nSee Also JSON to XML - Online Convert JSON and CSV using C# Convert Excel and CSV using C# ","permalink":"https://blog.groupdocs.com/conversion/convert-json-to-xml-in-csharp/","summary":"JSON and XML, both are the well known structured formats that are vastly used by developers to transmit data. There are many requirement where as a programmer, we need the conversion between JSON and XML data formats. In this article, you will learn how to convert JSON data into XML format using C#.","title":"Convert JSON to XML in C#"},{"content":"\rWorking with documents in software development can be tough. You often find yourself using multiple tools, each with its own issues and difficulties in integrating into your applications.\nGroupDocs.Total for .NET changes all this. It\u0026rsquo;s a complete solution for automating document tasks in your C# applications. It has many features, so you don\u0026rsquo;t need lots of separate tools. This makes your work simpler by giving you a single API for various document tasks.\nLet\u0026rsquo;s look at what GroupDocs.Total can do for you. We\u0026rsquo;ll see how it can help you manage your document tasks in a simpler, faster way.\nHow to Start with GroupDocs.Total Key Features of GroupDocs.Total Improved Compatibility Package Size Benefits Cost Savings and Simplified Management How to Start with GroupDocs.Total You can download GroupDocs.Total for .NET from the official website or through NuGet Package Manager. Installing it is easy, and there\u0026rsquo;s a lot of help available to guide you in integrating the API into your projects.\nKey Features of GroupDocs.Total GroupDocs.Total brings together the features of different GroupDocs products. This gives you full control over your document tasks in C# applications.\nViewing documents and images: You can view many different document formats in your application. GroupDocs.Total removes the need for third-party viewers or awkward workarounds. You can add document previews, review processes, and collaboration features into your application, making it easier for users. Editing files: You can edit popular file formats like Word documents, Excel spreadsheets, and PowerPoint presentations. Change content, formatting, and layouts without leaving your application. This makes tasks like revising content, entering data, and generating reports easier. File format conversion: Convert between different document formats without any problems. This ensures data exchange and collaboration are smooth by changing documents into the formats you need. Document merging and organization: Consolidate multiple documents into a single, organized file for improved review and collaboration. GroupDocs.Total makes the merging process easier, letting you combine presentations, reports, contracts, or any other documents into a single, cohesive unit. This improves organization, streamlines tasks, and makes documents easier to search. File metadata management: Handle metadata in various document and file formats programmatically - extract, edit, remove, search, compare, and export metadata. Whether it\u0026rsquo;s correcting metadata values, filtering files based on specific metadata properties, or exporting metadata for further analysis, we offer a comprehensive toolkit to meet the metadata-related needs of applications and workflows. Electronic signing: E-signatures are becoming an increasingly crucial aspect of modern workflows. Add e-signing features into your applications, so users can sign and approve documents electronically. This removes the need for paper-based processes, saving time and simplifying document approval. Document comparison: Spot even the smallest changes in documents with a comparison feature. Compare two versions of a document and find changes at the word, paragraph, and character level. This is very useful for tracking changes, version control, and ensuring documents are accurate. By providing these features and more, developers can build strong and versatile document processing applications. This single approach means you don\u0026rsquo;t need to manage separate libraries, saving you time and effort.\nImproved Compatibility GroupDocs.Total for .NET works well with many file formats and platforms. This includes popular formats like PDFs, Word documents, Excel spreadsheets, presentations, and images. This means your application will process documents reliably, no matter what their original format.\nNo more compatibility issues from using separate products or tools for different document tasks.\nPackage Size Benefits GroupDocs.Total is a single, compact package. This has several benefits over using individual products with separate installations:\nLess resource use: The small size means it uses fewer system resources, so your application performs better. Your development environment and applications will use less memory and processing power. This is especially good for systems with limited resources or where performance is key. With a smaller library size, your applications will start faster and work more smoothly. Easier integration: Adding a single library to your project is simpler than managing and integrating multiple products. You don\u0026rsquo;t need to manage dependencies, resolve conflicts between separate libraries, or waste time on complex integrations. With GroupDocs.Total, you can integrate the library into your C# project and start using its features straight away. This means you can develop faster and concentrate on creating innovative features for your applications.\nCost Savings and Simplified Management Using a single GroupDocs.Total license is usually cheaper than buying licenses for multiple individual products. This has several important benefits:\nCost savings: Buying a single GroupDocs.Total license is usually much cheaper than buying licenses for each document processing product separately. This means you can make the most of your budget and get more for your money. These savings can be especially useful for large development teams or projects that need a wide range of document processing features. Easier license management: Managing multiple licenses for separate products can be hard work and prone to errors. Tracking expiration dates, renewal cycles, and individual license keys can quickly become a big problem. GroupDocs.Total solves this by offering a single license for all its features. You only need to track and maintain one license, reducing administrative work and the risk of licensing issues disrupting your work. Free License Acquire a temporary license for free to explore GroupDocs.Total for .NET without any restrictions.\nConclusion GroupDocs.Total for .NET is the ideal solution for C# developers looking for an affordable and feature-rich toolkit for document management and automation. With its integrated features, improved compatibility, and small package size, it simplifies document processing, letting you concentrate on building great applications.\nIf you want to learn more, you can visit the following resources:\nGroupDocs.Total for .NET API | Documentation | Free Support\nSee Also XML Viewer using C# Convert PDF documents to HTML using C# ","permalink":"https://blog.groupdocs.com/total/streamline-document-automation-in-csharp/","summary":"GroupDocs.Total for .NET simplifies C# document automation with features like viewing, editing, conversion, merging, metadata management, e-signing, and document comparison. It offers improved compatibility, smaller package size, cost savings, and simplified license management for efficient development.","title":"Streamline Document Automation in C# with GroupDocs.Total for .NET"},{"content":"\rDigitally signing Word documents using a digital certificate ensures the document\u0026rsquo;s authenticity and integrity. This process acts as a digital seal, guaranteeing that the document originates from you and hasn’t been tampered with. In this guide, we\u0026rsquo;ll explore how to electronically sign Word documents using Java, leveraging the power of digital certificates.\nJava API for Digital Signatures Elevate your document security with the GroupDocs.Signature for Java API. This robust tool enables seamless integration of digital signatures, ensuring the integrity and authenticity of your files.\nDownloading and Integrating the Java API Visit the GroupDocs website and navigate to the New Releases section. Choose the GroupDocs.Signature for Java release. Download the JAR file(s) or include the latest repository and dependencies in your Maven-based application using the following configurations: \u0026lt;repositories\u0026gt; \u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;repository.groupdocs.com\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://releases.groupdocs.com/java/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;/repositories\u0026gt; \u0026lt;dependencies\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-signature\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;23.12\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;/dependencies\u0026gt; Signing Word Documents with Digital Certificates: Step-by-Step Once you\u0026rsquo;ve prepared everything, follow these steps to digitally sign your Word documents using Java:\nInitialize the Signature object with your Word DOC/DOCX document. Create a DigitalSignOptions object and link it to your certificate file. Customize sign options such as password, position, and page number if necessary. You can specify additional options like the desired location for the signature. Execute the sign method to apply your digital signature to the provided Word document. Here\u0026rsquo;s a simple example of Java code demonstrating how to sign Word documents with a certificate:\nYou can also incorporate additional options while signing your document, including background, border style, contact info, and more.\nAccessing the Signature API for Free Try the GroupDocs.Signature API for free:\nDownload the free trial from the downloads section. Acquire a temporary license for free to explore this library without any restrictions. Try it for Free Download the free trial from the downloads section.\nFree License Acquire a temporary license for free to explore this library without any restrictions.\nConclusion In conclusion, leveraging the GroupDocs.Signature for Java API empowers users to securely sign Word documents with digital certificates, ensuring authenticity and integrity. By following the outlined steps and accessing the API for free trial or temporary license, you can seamlessly integrate digital signatures into your Java applications, enhancing document security and trustworthiness. Unlock the power of digital signatures today to elevate your document authentication process with ease.\nSee Also Digitally Sign PDF Documents with Java Sign Documents with Digital Certificate using C# Verify Digital Signature in Documents using Java eSign Word Documents – Learning Resources Check out these useful links for further details and resources to explore GroupDocs.Signature API:\nDeveloper’s Guide Examples – GitHub API Reference Blog New Releases Support Forum ","permalink":"https://blog.groupdocs.com/signature/sign-word-files-with-certificate-using-java/","summary":"Digitally signing Word documents using a digital certificate ensures the document\u0026rsquo;s authenticity and integrity. This process acts as a digital seal, guaranteeing that the document originates from you and hasn’t been tampered with.","title":"Digitally Sign Word Documents with Java"},{"content":"\rSigning PDFs with a digital certificate ensures that the document is genuinely from you and hasn’t been altered. It’s like a digital seal that guarantees the authenticity of your files. Let’s embark on a Java-powered adventure as we delve into signing PDF files with ease. In this article, we will discover the art of digital certificates and their role in seamlessly signing PDFs using Java. Follow the steps to unveil the Java code that empowers you to effortlessly sign PDFs with certificates.\nJava API to Digitally Sign PDF Files Elevate your document security with GroupDocs.Signature for Java API! This powerful tool empowers you to seamlessly incorporate digital signatures, ensuring the integrity and authenticity of your files.\nDownload and Integration: Visit the GroupDocs website and navigate to the New Releases section. Select GroupDocs.Signature for Java Release. Download the JAR file(s) or add the following repository and dependencies within your Maven-based application. (The latest release is recommended) \u0026lt;repositories\u0026gt; \u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;repository.groupdocs.com\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://releases.groupdocs.com/java/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;/repositories\u0026gt; \u0026lt;dependencies\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-signature\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;23.12\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; \u0026lt;/dependencies\u0026gt; Now quickly move to sign your unsigned documents programmatically.\nHow to Sign a PDF with a Digital Certificate in Java Once you’ve got everything ready, it’s just a few steps to sign your documents successfully using Java. Follow these easy steps to sign your document with the digital certificate:\nStart by setting up the Signature object with your document: Create a DigitalSignOptions object and link it to your certificate file: Adjust sign options like password, position, and page number if needed: Set any additional options like where you want the signature to appear. Execute the sign method to put your digital signature on the document. Here’s a simple example of the code that signs PDF documents with a certificate in Java.\nSimilarly, you can add more options while signing your document. The options include:\nBackground Border Style Contact Info Date signed at Digital signed Font Family Font Size Height Image Location Margin Page Number Reason Rotation Show on All Pages Transparency Width Get the Signature API for Free Free Trial Download the free trial from the downloads section.\nFree License Obtain a temporary license for free to explore this library without limitations.\nConclusion In this guide, you’ve discovered how to digitally sign PDFs using a digital certificate in Java. Additionally, tailoring the signature’s appearance is a breeze. Now, take the next step and experiment with crafting your Java application. Create a personalized touch for electronically signing PDFs with digital certificates using Java.\nSee Also Digitally Sign Word Documents with Java Sign Documents with Digital Certificate using C# Verify Digital Signature in Documents using Java eSign PDF Documents – Learning Resources Check out these useful links for further details and resources to explore GroupDocs.Signature API:\nDeveloper’s Guide Examples – GitHub API Reference Blog New Releases Support Forum ","permalink":"https://blog.groupdocs.com/signature/sign-pdf-with-certificate-using-java/","summary":"Signing PDFs with a digital certificate ensures that the document genuine and hasn’t been altered. Let’s embark on a Java-powered adventure as we delve into signing PDF files with ease. In this article, we will discover the art of digital certificates and their role in seamlessly signing PDFs using Java.","title":"Sign PDF with Digital Signature Certificate using Java"},{"content":"\rEver wanted to create those impressive square codes that store information? In this article, we\u0026rsquo;ll explore an online tool that makes generating QR codes super easy. Additionally, we\u0026rsquo;ll briefly look into the world of coding with C# and Java to see how it\u0026rsquo;s done in a snap!\nLet’s generate the QR codes to sign digital documents and images on any platform using GroupDocs.Signature, a flexible solution for end-users and developers.\nQR code Generator – Online App Check out GroupDocs.Signature App! It\u0026rsquo;s an online tool that\u0026rsquo;s free and super easy to use. You can create QR codes for electronic signatures and digital certificates to sign your documents.\nHere are the quick step on making different QR codes with this app:\nGo to the Online QR code Generator App. Select the QR code type, you intend to generate. Enter your QR code-specific data. Click Generate to get your QR code ready. Now you can download the generated QR code and add it to any document or get it printed. Explore the Online App mentioned below to create QR codes and seamlessly integrate them into a variety of documents in different file formats. Simply follow the steps outlined above:\nQR code Generator – Key Features QR code Type GroupDocs.Signature lets you generate various types of QR codes tailored for different purposes. Discover the versatility of QR codes with the following types that you can create using this tool:\nThere are many different types of QR codes for their purpose and the following are the types of QR codes that can be generated using GroupDocs.Signature.\nText Wi-Fi Email VCard SEPA URL Phone Event MeCard SMS Cryptocurrency User Friendliness Generating QR codes is a breeze! Pick the QR code type, input the data based on your choice, and click generate – that\u0026rsquo;s it! No fuss with lengthy sign-up procedures. It\u0026rsquo;s straightforward and speedy!\nQR code Generation – Developer’s Guide QR codes are efficient for quick information access, easy scanning with smartphones, and versatile applications in areas like marketing, contactless payments, and product tracking.\nWith just a few lines of code, it\u0026rsquo;s possible to programmatically generate a substantial number of QR codes for various items across diverse ranges.\nGenerate QR code in C# using .NET API Here is a few liner source code generating QR codes using C#:\nFor detailed guidance, take a look at the articles on Generate and Apply QR codes to Documents and Images using C#.\nGenerate QR code in Java Similarly, the following Java code shows how to generate QR codes for documents and images using Java.\nFor more details, take a look at the articles on How to Generate and Apply QR codes to Documents and Images using Java.\nCheck out these useful links for further details and resources:\nDocumentation Examples – GitHub API Reference Blog Downloads Support Forum Conclusion In conclusion, you now have idea of generating QR codes in various types! Whether using online tools or diving into coding, you now have the know-how to make your digital mark. Embrace the potential of QR codes and keep exploring the limitless possibilities they offer in the world of technology.\nSee Also Generate Barcodes Online Working with QR codes using C# Working with QR codes using Java ","permalink":"https://blog.groupdocs.com/signature/generate-qrcode-online/","summary":"How to create the impressive square codes that store information? In this article, we\u0026rsquo;ll explore an online tool that makes generating QR codes super easy. Additionally, we\u0026rsquo;ll briefly look into the world of coding with C# and Java to see how it\u0026rsquo;s done in a snap!","title":"Generate QR codes - eSign Documents and Images"},{"content":"Ever wondered how those cool barcodes on products are made? Let\u0026rsquo;s dot it! In this article, we’re diving into the world of generating barcodes online. Here I will also show you a useful tool and even a sneak peek into the magic code for creating barcodes in Java and C#.\nLet’s generate the barcodes to sign digital documents and images on any platform using GroupDocs.Signature, a flexible solution for end-users and developers.\nBarcode Generator – Online App GroupDocs.Signature App is an online, free, and easy-to-use application for electronic signatures and digital certificates allow to sign documents.\nHere are the steps on how you can generate different barcodes using this online tool:\nGo to the Online Barcode Generator App. Select the Barcode type, you intend to generate. Enter your barcode-specific data. Click Generate to get your barcode ready. Now you can download the generated barcode and add it to any document or get it printed. Visit the below-mentioned Online App to generate barcodes to get these added to various types of documents of different file formats. Just follow the above steps:\nBarcode Generator – Key Features Barcode Type There are many different types of barcodes for their purpose and the following are the types of barcodes that can be generated using GroupDocs.Signature.\nUPCA EAN13 Code39 Code128 Postnet ITF14 UPCE EAN14 Code39Extended Codabar ISBN Pdf417 Interleaved2of5 Pharmacode User Friendliness The way it works is super easy! Just select the barcode type, put in the data for the selected barcode type, and hit generate – done! No need for a complicated sign-up process. It’s simple and quick!\nBarcode Generation – Developer’s Guide Barcodes are essential for efficient tracking, quick information retrieval, enhanced accuracy, cost-effectiveness, seamless integration with technology, and widespread applicability across industries.\nWith just a few lines of code, a large number of barcodes can be generated programmatically for multiple items of multiple ranges.\nGenerate Barcode in C# using .NET API Here is a few liner source code generating barcodes using C#:\nFor detailed guidance, take a look at the articles on Generate and Apply Barcodes to Documents and Images using C#.\nGenerate Barcode in Java Similarly, the following Java code shows how to generate barcodes for documents and images using Java.\nFor more details, take a look at the articles on How to Generate and Apply Barcodes to Documents and Images using Java.\nCheck out these useful links for further details and resources:\nDocumentation Examples – GitHub API Reference Blog Downloads Support Forum Conclusion To conclude, you are now familiar with the art of barcode creation in different types! Whether utilizing online tools or delving into coding, you now possess the skills to leave your digital mark. Embrace the power of barcodes and continue to integrate and explore the endless possibilities they offer in the realm of technology.\nSee Also Generate QR Codes Online Working with Barcodes using C# Working with Barcodes using Java ","permalink":"https://blog.groupdocs.com/signature/generate-barcode-online/","summary":"How those cool barcodes on products are made? In this article, we’re diving into the world of generating barcodes online. Here I will also show you a useful tool and even a sneak peek into the magic code for creating barcodes in Java and C#.","title":"Generate Barcodes - eSign Documents and Images"},{"content":"Ever wondered how an online tool or a computer program finds different words that mean the same in documents? It\u0026rsquo;s called synonym search, and we\u0026rsquo;re going to see the way it works! Whether you like using online app or want to try it programmatically, we\u0026rsquo;ve got it all explained. Get ready to discover the secrets of finding synonyms in different ways!\nSynonym Search in Documents - Online App Here\u0026rsquo;s how you can search for synonyms in a document using this online tool:\nGo to the Online Synonym Search App. Add your file by doing one of the following: Click the upload area to browse and choose document to upload. Simply drag and drop the file into the uploading area. Type in the words you\u0026rsquo;re looking for in the Search query. Make sure the synonym search option is checked. Hit the search button to get all the occurrences of phrases with synonyms from the uploaded document. Visit the below mentioned Online App for synonym search to find within your document. Just follow the above steps:\nWe make sure to keep your information private and use advanced security to protect your files. Your files are safe with us and will be deleted from our servers after 24 hours.\nOnline Synonym Searching Tool – Key Features Here are some of the key features of this online text search tool.\nSearch Options Here are some of the key features of this online synonym search tool.\nLarge File Format Support This cool online synonym search tool, powered by GroupDocs.Search, can handle lots of different file types. Whether it\u0026rsquo;s documents, spreadsheets, presentations, eBooks, emails, or even web pages, this tool can search through them all. It\u0026rsquo;s like having a superpower to find words in lots of different kinds of documents!\nSimple Steps Using this tool is a breeze. Just upload your document, type in your text, and hit search. No need for a tricky sign-up process!\nSecure Searching Your files are safe with us. Our advanced security features make sure your documents are protected. Plus, we automatically delete your uploaded files from our servers after 24 hours, so you can search worry-free.\nSynonym Search – Developer’s Guide If you need to find out all the alternate terms or equivalent words in large number of documents across various folders, I suggest to perform the synonym search programmatically for efficiency. Just use a few lines of code in C# or Java to swiftly scan through numerous documents.\nVisit the following respective programming language specific pages for the synonym search in multiple files across folders:\nFind Synonym of Words using C#\nFind Synonym of Words using Java\nSearch Synonyms in Multiple Files using C#\nSearch Synonyms in Multiple Files using Java\nExplore these helpful links for more details and resources:\nDocumentation Examples on GitHub API Reference Blog Downloads Support Forum Conclusion This article introduces the GroupDocs online synonym search tool, a powerful helper for finding specific words and their synonyms in documents. We also cover how to use the tool and explore ways to make the computer do the same search using C# or Java programming.\nSee Also Text Search Online Regex Search Online Fuzzy Search Online ","permalink":"https://blog.groupdocs.com/search/online-synonym-search/","summary":"Explore the ease of synonym searching in documents, effortlessly locating specific content and its alternative words with similar meanings. Let\u0026rsquo;s uncover the steps to streamline text search in documents, making the process both quick and efficient.","title":"Online Synonym Search in Documents"},{"content":"\rDiscover the cool trick called \u0026ldquo;fuzzy search\u0026rdquo;! It\u0026rsquo;s like a magical tool that helps you find words that are kind of similar to what you\u0026rsquo;re looking for, even if there are some mistakes. GroupDocs.Search is a text search solution that makes searching for words a lot easier. It\u0026rsquo;s like finding the best matches even if you don\u0026rsquo;t type everything perfectly. Fuzzy search makes it super easy to find exactly what you need in documents. Let\u0026rsquo;s check out how it works and make searching in documents quick and easy!\nFuzzy Search in Documents - Online App The following are the steps you need to perform to start fuzzy searching in the document by providing a query using this online tool:\nVisit the Online Fuzzy Search App. Upload your file using one of the two simple methods: Click the upload area to browse and select your file. Drag and drop your file into the designated upload area. Provide the Query in the Search query section. Configure the mistake count to set the error tolerance and similarity level of the fuzzy search. Click the Search button to get the search result from the provided document. We keep your stuff safe with top-notch security. Your files are deleted from our servers after 24 hours. Your privacy is our priority!\nVisit the below-mentioned online application to perform fuzzy search in documents to find approximate matches to the search query.\nOnline Fuzzy Search Tool – Key Features Here are some of the key features of this online fuzzy search tool.\nHuge File Format Support This online fuzzy search tool, powered by GroupDocs.Search, can handle a lot of different types of files. It works with things like documents, spreadsheets, presentations, archives, eBooks, emails, notes, web pages, and more! This wide compatibility means you can easily search through all sorts of files, no matter what type they are.\nUser Friendliness The way it works is super easy! Just upload your document, type in what you\u0026rsquo;re looking for, set the mistake count and hit search – done! No need for a complicated sign-up process. It\u0026rsquo;s simple and quick!\nSecure Search Upload your files with confidence. Files are protected with advanced security measures. Further, the uploaded files are kept safe and deleted from the servers after 24 hours.\nFuzzy Search in Documents – Developer’s Guide If you want to do fuzzy search in a bunch of documents in different folders, doing it manually could take forever. Instead, you can use a few lines of code in either C# or Java to make your computer do it super fast! Here\u0026rsquo;s how you can do it without breaking a sweat.\nFuzzy Search in C# using .NET API Here is the C# code performing the fuzzy search with multiple files across folders.\nFor detailed guidance, take a look at the articles on Fuzzy Search in Documents using C#.\nFuzzy Search in Java Similarly, the following Java code shows how to search multiple files across various directories by providing a query using fuzzy search.\nFor more details, take a look at the articles on Fuzzy Search in Documents using Java.\nConclusion This article introduces you to the Online Fuzzy Search Tool by GroupDocs. It is a powerful full-text search solution with a feature to perform fuzzy search within documents. The post showed how to use the text-searching tool. Later we looked at how to perform the same fuzzy search programmatically using C# or Java.\nCheck out these useful links for further details and resources:\nDocumentation Examples – GitHub API Reference Blog Downloads Support Forum See Also Text Search Regex Search Synonym Search ","permalink":"https://blog.groupdocs.com/search/online-fuzzy-search/","summary":"Uncover the simplicity of fuzzy search, making it a breeze to locate specific content. Let’s discover how we can streamline fuzzy search in documents, making the process quick and efficient.","title":"Online Fuzzy Search in Documents"},{"content":"\rFuzzy search helps you find content that are kind of similar, not exactly the same, in your data. It\u0026rsquo;s super handy when there are little typo mistakes, misspellings, or variations in data. This article is all about the Java way to perform fuzzy search to find in files that are scattered around folders.\nHere are few examples to elaborate the fuzzy search sample content:\nYou might not be sure if the document uses the spelling \u0026ldquo;color\u0026rdquo; or \u0026ldquo;colour.\u0026rdquo; When looking for \u0026ldquo;John,\u0026rdquo; it could actually be spelled as \u0026ldquo;Jon\u0026rdquo; or perhaps \u0026ldquo;Jhon.\u0026rdquo; Trying to find \u0026ldquo;USA\u0026rdquo; even if someone types \u0026ldquo;U.S.A.\u0026rdquo; If you make a \u0026ldquo;mistaek,\u0026rdquo; oh wait, it\u0026rsquo;s actually a \u0026ldquo;mistake.\u0026rdquo; The solution to finding such content is Fuzzy Search.\nJava Fuzzy Search Library To make fuzzy searches in Java, we\u0026rsquo;ll use the GroupDocs.Search for Java API. The API is highly capable of showing flexibility and provides a customizable degree of error tolerance. This feature is favorable when dealing with language variations like British and American English, and typos.\nWith this library, fuzzy search can be performed within a large variation of file formats. The support is not just limited to Word documents (DOC, DOCX), spreadsheets (XLS, XLSX), presentations (PPT, PPTX), PDFs, Markup languages (HTML, XML), Markdown (MD), eBooks (EPUB, CHM, FB2), emails (MSG, EML), OneNote notes, and even ZIP archives.\nIf you want to know all the file types this magic can handle, just peek at the documentation.\nTo get started, you can grab the API from the download section, or just add the latest repository and dependency Maven configurations directly into your Java applications.\nLet’s Fuzzy Search in Files using Java Follow these steps to perform a fuzzy search in multiple files of various file formats within folders using Java:\nStart by creating an Index using the folder where your files are. Add the main folder path to the index. Provide the search query that you want to search. Turn on the magic of Fuzzy Search so it understands small mistakes. Set the Similarity Level in the Fuzzy Algorithm. Execute the search using the search method to get the search results. Now, you can traverse the SearchResults to create or print the output as you like. In the Java code below, the program looks for similar content that is kind of what you asked for in all the files and subfolders. It\u0026rsquo;s tolerant of spelling mistakes, up to 25% error. If you peek at the code, you\u0026rsquo;ll see that the similarity level is set to 0.75, which is equivalent to the 75% match. If you want to fine-tune the search, just change the similarity level in the code.\nAfter you run the code, you\u0026rsquo;ll get a list of fetched fuzzy search results. If you want to see how to print the search results, keep reading this article.\nQuery: nulla Documents: 2 Occurrences: 135 Document: Lorem ipsum.docx Occurrences: 132 Field: content Occurrences: 132 nulla 98 nullam 34 Document: EnglishText.txt Occurrences: 3 Field: content Occurrences: 3 dull 1 full 1 fully 1 Printing Search Results The following Java code provides two ways to present your search results.\nHighlight all the approximate matches. Print the results in a readable and analyzable format Getting a Free License or a Free Trial Free License Obtain a temporary license for free to explore this library without constraints.\nFree Trial You can download the free trial from the downloads section.\nConclusion In this article, we explored the programmatic Java way to perform Fuzzy search. It helps find approximate matching words that are kind of similar, even if there are small mistakes. This feature is handy for dealing with differences between British and American English, typos, name changes, and similar sounds in words.\nFor more about the API, check out the documentation.\nIf you have questions or want to discuss more, head to the forum.\nSee Also Regex Search in Java Synonym Search in Java Homophone Search in Java Efficient Text Search in Java Build your Full Text Search Solution in Java ","permalink":"https://blog.groupdocs.com/search/fuzzy-search-java/","summary":"This article shows how to programmatically perform a fuzzy search in multiple documents across folders using Java. Fuzzy Search is useful in scenarios with typos, misspellings, or variations in the data.","title":"Fuzzy Search in Documents using Java"},{"content":"\rYou don’t know what color or colour spelling was used in the document. Searching for “John“, but it could have been spelled as “Jon” or maybe “Jhon“. Locating “USA” when the user inputs “U.S.A“. The word or phrase you are looking for could have a “mistaek“, oops it’s again a “mistake“. Here comes the Fuzzy Search. Fuzzy search lets you find approximate matches rather than exact matches in data, allowing for flexibility in search queries. This is particularly useful in scenarios with typos, misspellings, or variations in the data. This article shows how to programmatically perform a fuzzy search in multiple documents across folders using C#.\nC# Fuzzy Search Library For Fuzzy Search, we’ll utilize the GroupDocs.Search for .NET API. This allows for a certain degree of tolerance in spelling, making it effective in accommodating regional language variations like those between British and American English.\nThis library empowers us to programmatically search text in a wide range of file formats, such as Word documents (DOC, DOCX), spreadsheets (XLS, XLSX), presentations (PPT, PPTX), PDF files, Markup (HTML, XML), Markdown (MD), eBooks (EPUB, CHM, FB2), email messages (MSG, EML), OneNote documents, and ZIP archives.\nTo find out all the types of files you can work with, check out the documentation.\nYou can choose to get the DLLs or MSI installer from the download section or add the API to your .NET program using NuGet.\nLet’s Fuzzy Search in Files using C# Follow these steps to perform a fuzzy search in multiple files of various file formats within folders using C#:\nCreate an Index by providing a folder path. Add the parent folder path for the search directory to the created index. Define the search query. Activate the Fuzzy Search by enabling the option. Set the Similarity Level in the Fuzzy Algorithm as required. Execute the search using the Search method to get the search results. Now, you can iterate on SearchResults to create or print the output as you like. The fuzzy search in the below-mentioned C# code finds the approximate matches of the given query in all the files across all sub folders with 20% error tolerance in spellings.\nHere, the similarity level is set to 0.8 i.e. 80% match which corresponds to 20% error tolerance. You can adjust the tolerance level by tweaking the similarity level in the code.\nBelow are the fuzzy search results you can obtain from the above code. It is quite simple, however, the printing code is also available later in this article.\nQuery: nulla Documents: 2 Occurrences: 135 Document: Lorem ipsum.docx Occurrences: 132 Field: content Occurrences: 132 nulla 98 nullam 34 Document: EnglishText.txt Occurrences: 3 Field: content Occurrences: 3 dull 1 full 1 fully 1 Printing Search Results The following C# code provides two ways to present your search results.\nHighlight all the approximate matches. Print the results in a readable and analyzable format Getting a Free License or a Free Trial Free License Obtain a temporary license for free to explore this library without constraints.\nFree Trial You can download the free trial from the downloads section.\nConclusion In this article, we looked into the C# programmatic approach to the magic of Fuzzy search to find all the approximate matching words but with a certain degree of error tolerance. This feature makes the fuzzy search effective in accommodating regional language variations like those between British and American English, typos in text, name variations, and phonetic matching.\nFor comprehensive details about the API, readers are advised to refer to the documentation.\nAny queries or additional discussions can be directed to the forum.\nSee Also Regex Search in C# Synonym Search in C# Homophone Search in C# Efficient Text Search in C# Build your Full Text Search Solution in C# ","permalink":"https://blog.groupdocs.com/search/fuzzy-search-csharp/","summary":"Fuzzy Search is useful in scenarios with typos, misspellings, or variations in the data. This article shows how to programmatically perform a fuzzy search in multiple documents across folders using C#.","title":"Fuzzy Search in Documents using C#"},{"content":"\rDiscover the cool world of text search, where you can find specific words and sentences in documents. GroupDocs.Search is like a wizard with text searching solution that helps you find exactly what you\u0026rsquo;re looking for in your documents. It\u0026rsquo;s super easy to search for specific things in your documents using just text. Let\u0026rsquo;s find out how we can make searching for text in documents fast and easy!\nText Search in Documents - Online App Here\u0026rsquo;s how you can search for text in a document using this online tool:\nGo to the Online Text Search App. Add your file by doing one of these easy things: Click Open file and choose your file. Just Drag and drop your file into the right spot. Type in the words you\u0026rsquo;re looking for in the Search query part. Choose how you want to search from the options available. Hit the Search button to get the results you want from your document. We make sure to keep your information private and use advanced security to protect your files. Your files are safe with us and will be deleted from our servers after 24 hours.\nVisit the Online App for Text Search in Documents mentioned below to search within your document. Just provide the text and choose one of the search options available.\nOnline Text Searching Tool – Key Features Here are some of the key features of this online text search tool.\nSearch Options The following is the list of available search options to refine your search:\nPhrase search Search all words Search for any word Boolean search Regular expressions search Case sensitive search Fuzzy search Synonym search Homophone search Word forms search Spelling correction Here is the snapshot of the app for the available search customizations.\nHuge File Format Support Since this online text search tool uses GroupDocs.Search, it can handle a wide range of file formats. This includes Word-processing documents, spreadsheets, presentations, archives, eBooks, Outlook or other email messages, OneNote documents, web pages, Markdown files, XML files, as well as plain text or rich-text documents. This broad compatibility means that you can effortlessly search within documents of many different types!\nEasy to Use The interface is straightforward. Upload your document, enter the text, and click search – simple as that. No need for a complicated sign-up process.\nSafe Search Feel secure when uploading your files. Our advanced security measures ensure the protection of your files. Additionally, uploaded files are kept safe and are removed from the servers after 24 hours.\nText Search in Documents – Developer’s Guide If you need to search text in large number of documents across various folders, I suggest doing it programmatically for efficiency. Just use a few lines of code in C# or Java to swiftly scan through numerous documents.\nVisit the following programming language specific pages for text search in multiple files across folders:\nC# Java Explore these helpful links for more details and resources:\nDocumentation Examples on GitHub API Reference Blog Downloads Support Forum Conclusion This article presents the GroupDocs Online Text Search Tool, a robust full-text search solution enabling users to search within documents by entering specific text. The post provides a guide on utilizing the text-searching tool and later explores the process of programmatically performing the same text search using C# or Java.\nSee Also Regex Search Fuzzy Search Synonym Search ","permalink":"https://blog.groupdocs.com/search/online-text-search/","summary":"Uncover the simplicity of text searching in documents, making it a breeze to locate specific content. Let’s discover how we can streamline text search in documents, making the process quick and efficient.","title":"Online Text Search in Documents"},{"content":"\rExplore the magic of regex search to find text and patterns in documents. GroupDocs.Search is a text search solution that helps you find exactly what you need in documents. Uncover the simplicity of searching documents by regex, making it a breeze to locate specific content. Let’s discover how we can streamline regex search in documents, making the process quick and efficient.\nRegex Search in Documents - Online App The following are the steps you need to perform for searching in the document by providing a regex pattern using this online tool:\nVisit the Online Regex Search App. Upload your file using one of the two simple methods: Click Open file, and browse to select your file. Drag and drop your file into the designated area. Provide the Regex in the Search query section. Select Regular Expression Search from the available search options. Click the Search button to get your desired search result from the provided document. We ensure your privacy and protect your files with advanced security measures. Your files are kept safe and deleted from our servers after 24 hours.\nVisit the below-mentioned Online App for Regex Search in Documents to search with your document by providing the pattern.\nOnline Regex Search Tool – Key Features Here are some of the key features of this online regex search tool.\nHuge File Format Support As this online regex search tool is based on GroupDocs.Search, it supports a huge file format range of Word-processing documents, spreadsheets, presentations, archives, eBooks, outlook or other email messages, OneNote documents, web pages, Markdown files, XML files, text, or rich-text documents. This diverse compatibility ensures that users can easily search within the documents of various file formats.\nUser Friendliness The interface is self-explanatory. Just upload the document, provide the regex pattern, and hit search, That’s it. No complex sign-up requirement.\nSecure Search Upload your files with confidence. Files are protected with advanced security measures. Further, the uploaded files are kept safe and deleted from the servers after 24 hours.\nRegex Search in Documents – Developer’s Guide What about if you want to search text in multiple documents across multiple folders? I would not recommend you do it manually but programmatically. Just use the below-mentioned few lines of C# or Java code to scan a large number of documents across multiple folders within the blink of an eye.\nRegex Search in C# using .NET API Here is the C# code performing the regex search with multiple files across folders.\nFor detailed guidance, take a look at the articles on Search in Documents by Regex using C#.\nRegex Search in Java Similarly, the following Java code shows how to search multiple files across various directories by providing a regex pattern.\nFor more details, take a look at the articles on Regex Search in Documents using Java.\nConclusion This article introduces you to the Online Regex Search Tool by GroupDocs. It is a powerful full-text search solution with a feature to search within documents by providing a regex pattern. The post showed how to use the text-searching tool. Later we looked at how to perform the same regex search programmatically using C# or Java.\nCheck out these useful links for further details and resources:\nDocumentation Examples – GitHub API Reference Blog Downloads Support Forum See Also Text Search Fuzzy Search Synonym Search ","permalink":"https://blog.groupdocs.com/search/online-regex-search/","summary":"Uncover the simplicity of searching documents by regex, making it a breeze to locate specific content. Let’s discover how we can streamline regex search in documents, making the process quick and efficient.","title":"Online Regex Search in Documents"},{"content":"\rExplore the magic of using regular expressions for searching in your Java code! In the coding world, think of regular expressions like secret codes that help us find specific information in text. This article will teach you the basics of searching with regular expressions in Java, so you can smartly search through documents in different file formats across folders.\nJava API for Regex Search in Documents by Regex For doing Regex Search, we\u0026rsquo;ll use the GroupDocs.Search for Java API. With this API, we can search for specific text in files of different formats across folders, just by giving it the regex pattern. This tool lets us search for text in various types of files, like Word documents, spreadsheets, presentations, PDF files, Markup files, eBooks, email messages, One Note documents, and ZIP archives, all in a programmatic way.\nTo get a detailed list of file formats supported, check out the detailed documentation.\nYou have two options for getting the JAR file: download it from the downloads section, or incorporate the latest repository and dependency Maven configurations directly into your Java applications.\nSearching in Files with Regex using Java Here are the simple steps how to conduct a regex search in multiple files of different formats within folders using Java. Afterwards, you can effortlessly create highlighted HTML output files for each located document.\nStart by making an Index by specifying the folder path. Add the path of the main folder where you want to search in the index you just created. Set up the regex search query. Use the search method to run the search and obtain the results. Now, you can go through SearchResults and generate the desired output as per your preferences. The regex in the code below detects words with consecutive repeated characters, such as agree, call, and soon. This Java code conducts a fast search using regex in various files of different formats within different folders.\nBelow, I\u0026rsquo;ve highlighted the results of the regex search in the provided code:\nPrinting Search Results The following Java code offers two methods to display your search results:\nHighlight all the discovered words. Print the results in a format that is easy to read and analyze. Document: English.txt Occurrences: 83 Field: content Occurrences: 82 acceptance 1 added 1 agreeable 1 agreed 1 all 4 appearance 1 assurance 1 ... =========================================== Document: Lorem ipsum.docx Occurrences: 945 ... Field: content Occurrences: 939 accumsan 39 class 7 commodo 40 convallis 38 dignissim 35 efficitur 46 fringilla 40 habitasse 2 laoreet 27 massa 63 mattis 31 ... Getting a Free License or a Free Trial Free License Obtain a temporary license for free to explore this library without constraints.\nFree Trial You can download the free trial from the downloads section.\nConclusion In this article, we explored the basics of Regex search wonders to locate words with specific patterns in diverse range of text-based documents such as DOCX, PDF, and TXT files across multiple folders using Java. Subsequently, we showcased the search outcomes by highlighting the identified words and printing them in a clear format.\nFor a thorough understanding of the API, readers are encouraged to explore the documentation and API Reference.\nAny questions or further discussions can be addressed in the forum.\nSee Also Efficient Text Search in Java: Handling Multiple Files and Folders Search Synonyms in Multiple Files using Java Build your Full Text Search Solution in Java ","permalink":"https://blog.groupdocs.com/search/search-in-documents-by-regex-using-java/","summary":"This article will teach you the basics of searching with regular expressions in Java, so you can smartly search through documents in different file formats.","title":"Regex Search in Documents using Java"},{"content":"\rDiscover the magic of programmatic regex search! In the world of coding, regular expressions are like secret codes that help us find specific information in text. This article will show you how to search by regex in C# to search documents of various file formats smartly.\n.NET API for Regex Search in Documents by Regex For Regex Search, we’ll utilize the GroupDocs.Search for .NET API. This allows us to search text within files of various formats across folders just by providing the regex pattern. This library empowers us to programmatically search text in a wide range of file formats, such as Word documents, spreadsheets, presentations, PDF files, Markup files, eBooks, email messages, One Note documents, and ZIP archives.\nFor an in-depth list of supported file formats, refer to the comprehensive documentation.\nYou have the option to either grab the DLLs or MSI installer from the downloads section, or you can install the API into your .NET application using NuGet.\nHow to Search in Files by Regex using C# Follow these steps to perform a regex search in multiple files of various file formats within folders using C#: Later you can easily generate the highlighted HTML output files for each found document.\nCreate an Index by providing a folder path. Add the path of the parent folder for the search directory to the created index. Define the regex search query. Execute the search using the Search method to get the search results. Now you can iterate on SearchResults to create an output as you like. The regex used in the below-mentioned code identifies all the words having consecutive repeated characters like; added, wood, and see. The following C# code performs the quick search by regex in multiple files of different file formats across folders.\nHere I have highlighted the regex search results of the above code:\nPrinting Search Results The following C# code provides two ways to present your search results.\nHighlight all the found words. Print in a readable and analyzable format Document: English.txt Occurrences: 83 Field: content Occurrences: 82 acceptance 1 added 1 agreeable 1 agreed 1 all 4 appearance 1 assurance 1 ... =========================================== Document: Lorem ipsum.docx Occurrences: 945 ... Field: content Occurrences: 939 accumsan 39 class 7 commodo 40 convallis 38 dignissim 35 efficitur 46 fringilla 40 habitasse 2 laoreet 27 massa 63 mattis 31 ... Getting a Free License or a Free Trial Free License Obtain a temporary license for free to explore this library without constraints.\nFree Trial You can download the free trial from the downloads section.\nConclusion In this article, we looked into the magic of RegEx search to find all the words having a certain pattern within various text-based documents like DOCX, PDF, and TXT files across several folders using C#. Afterward, we presented the search results by highlighting the searched words and by printing them in a readable format.\nFor comprehensive details about the API, readers are advised to refer to the documentation.\nAny inquiries or additional discussions can be directed to the available forum.\nSee Also Efficient Text Search in C#: Handling Multiple Files and Folders Search Synonyms in Multiple Files using C# Build your Full Text Search Solution in C# ","permalink":"https://blog.groupdocs.com/search/search-in-documents-by-regex-using-csharp/","summary":"This article will show you how to search by regex in C# to search documents of various file formats smartly.","title":"Search in Documents by RegEx using C#"},{"content":"Have you ever wondered how to easily search through lots of files or navigate the challenge of searching within files across different folders? This article has the answers you\u0026rsquo;re looking for. Let\u0026rsquo;s dive into the world of text searching and explore how to search for various texts or phrases in different files across diverse folders using C#.\nC# API for Scanning Text across Files and Folders Now, we\u0026rsquo;ll utilize the GroupDocs.Search for .NET API to explore numerous texts within files of diverse formats across folders. This library empowers us to systematically scan text in an extensive range of file formats, such as Word documents, spreadsheets, presentations, PDF files, Markup files, eBooks, email messages, One Note documents, and ZIP archives. For an in-depth list of supported file formats, refer to the comprehensive documentation.\nYou have the option to either grab the DLLs or MSI installer from the downloads section, or you can install the API into your .NET application using NuGet.\nPM\u0026gt; Install-Package GroupDocs.Search Searching Multiple Texts in Files across Folders using C# Follow these steps to perform a text search in multiple files within multiple folders using C# and generate highlighted HTML output files for each found document.\nCreate an Index object with the specified index folder path. Index the parent document folder using the Add method. Define a search query with multiple terms or phrases. Execute the text scanning using the Search method and store the results. Iterate through the search results: Retrieve each found document using the GetFoundDocument method. Retrieve or print any file information for the found document. Set up an OutputAdapter for the desired format and path. Create a Highlighter for the document. Highlight and output the search results to an HTML file using the Highlight method. The code above enables you to look for particular texts in multiple files and create highlighted HTML output files for each found document.\nPrinting the Text Search Results From the result of the search query, you can further extract information about the found documents.\nThe following will be the output of printing the above search results obtained from the DOCX, PDF, and TXT files:\nDocuments: 3 Total occurrences: 141 Document: Lorem ipsum.docx Occurrences: 101 Field: filename Occurrences: 101 lorem ipsum\t1 Field: content Occurrences: 101 non\t94 lorem ipsum\t6 Document: Lorem ipsum.pdf Occurrences: 1 Field: filename Occurrences: 1 lorem ipsum\t1 Document: English.txt Occurrences: 39 Field: content Occurrences: 39 water\t39 Complete code Here is the complete C# code that collectively searches the text strings and phrases in multiple files and folders:\nGetting a Free License or a Free Trial Free License Obtain a temporary license for free to explore this library without constraints.\nFree Trial You can download the free trial from the downloads section.\nConclusion In this article, we\u0026rsquo;ve investigated text scanning for searching various texts in numerous files across several folders using C#. Commencing with the search query, we explored within multiple files and folders, highlighting the searched words or phrases in the respective HTML files.\nFor comprehensive details about the API, readers are advised to refer to the documentation.\nAny inquiries or additional discussions can be directed to the available forum.\nSee Also Build Full-Text Search Solution in C# Find Synonyms of Words using C# Search Synonyms in Multiple Files using C# Find Homophones in Multiple Files in C# ","permalink":"https://blog.groupdocs.com/search/search-multiple-texts-in-files-across-folders-in-csharp/","summary":"This article has the answers you\u0026rsquo;re looking for. Let\u0026rsquo;s dive into the world of text searching and explore how to search for various texts or phrases in different files across diverse folders using C#.","title":"Efficient Text Search in C#: Handling Multiple Files and Folders"},{"content":"Ever wondered how to seamlessly search through numerous files, or perhaps navigate the complexity of searching within files across multiple folders? All your queries find answers here. This article delves into the realm of text scanning, showcasing how to search for multiple texts or phrases in various files spread across diverse folders using Java.\nJava API for Scanning Text across Files and Folders Today, we’ll use GroupDocs.Search for Java API to search multiple texts within files of various file formats across folders. This library lets us programmatically scan the text within a large range of file formats for Word documents, spreadsheets, presentations, PDF files, Markup files, eBooks, email messages, One Note documents, and ZIP archives. The documentation provides a detailed list of supported file formats.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\nSearching Multiple Texts in Files across Folders using Java Follow the following steps to perform a text search in multiple files within multiple folders using Java and generate highlighted HTML output files for each found document.\nCreate an Index object with the specified index folder path. Index the parent document folder using the add method. Define a search query with multiple terms or phrases. Execute the text scanning using the search method and store the results. Iterate through the search results: Access each found document using the getFoundDocument method. Access or print any file information for the found document. Set up an OutputAdapter for the desired format and path. Create a Highlighter for the document. Highlight and output the search results to an HTML file using the highlight method. The above code collectively enables you to search for specific texts within multiple files and generate highlighted HTML output files for each found document.\nPrinting the Text Search Results From the result of the search query, you can further extract information about the found documents.\nThe following will be the output of printing the above search results obtained from the DOCX, PDF and TXT files:\nFile Name: Lorem ipsum.docx Occurrences: 101 Field: filename Occurrences: 1 lorem ipsum - 1 Field: content Occurrences: 100 non - 94 lorem ipsum - 6 ==================================== File Name: Lorem ipsum.pdf Occurrences: 60 Field: filename Occurrences: 1 lorem ipsum - 1 Field: content Occurrences: 59 non - 53 lorem ipsum - 6 ==================================== File Name: English.txt Occurrences: 39 Field: content Occurrences: 39 water - 39 Complete code Here is the complete Java code that collectively searches the text strings and phrases in multiple files and folders:\nGetting a Free License or a Free Trial Free License To explore this library without constraints, you can obtain a temporary license for free.\nFree Trial Download the free trial from the downloads section.\nConclusion In this article, we have just explored text scanning to search multiple texts in multiple files across multiple folders using Java. Starting with the search query, we searched within multiple files and folders and highlighted the found results in the respective HTML files.\nFor detailed API information, readers are encouraged to consult the documentation. Questions and further discussions can be directed to the provided forum.\nSee Also Build Full-Text Search Solution in Java Find Synonyms of Words using Java Search Synonyms in Multiple Files using Java Find Homophones in Multiple Files in Java ","permalink":"https://blog.groupdocs.com/search/search-multiple-texts-in-files-across-folders-using-java/","summary":"This article looks into the realm of text scanning, showcasing how to search for multiple texts or phrases in various files spread across diverse folders using Java","title":"Efficient Text Search in Java: Handling Multiple Files and Folders"},{"content":"Recently, we discussed how we can edit metadata properties of different file formats. What about if we don’t need the metadata or selective metadata properties within our documents? We have various options to remove different metadata properties or simply clean all the properties. We can do it using a simple online Metadata Scrubber Tool or remove it programmatically using C# and Java. Let’s see these options quite briefly.\nOnline Metadata Scrubber To start with, let’s clean the documents from the unnecessary metadata properties online. You can simply upload your document to view, edit, update, remove selective, and clean all the metadata properties of various files. In this article, I am using GroupDocs.Metadata as Metadata Remover.\nHere are the simple steps to sanitize (remove all the metadata properties from) documents online:\nVisit the Online Metadata Cleaner App. Upload your file using one of the two simple methods: Click Open file and browse and select your file. Drag and drop your file into the designated area. Click the Clean Metadata button to remove properties of the uploaded file. Using the Download button, you can save the file that will no longer contain any metadata but only its file format info. That’s it! Let’s sanitize your files by removing all the unwanted metadata.\nMetadata Cleaning – Developer’s Guide Online metadata removal is too easy. However, you may not prefer an online tool if you have to perform the same activity for a large number of documents of various formats. It’s an obvious choice to do it programmatically.\nHere, I will introduce you to libraries that are designed to make the metadata-cleaning process a whole lot easier. I will show you how to use these APIs to clean the metadata programmatically. So, get ready to explore and choose the one that suits your needs best!\n.NET Java Let’s clean it.\nMetadata Scrubber using C# .NET developers can sanitize documents of various file formats within no time using the simple few lines of C# code.\nLoad the document using Metadata class. Remove all the metadata properties using the Sanitize method. Save the metadata free document using the Save method. Here is the C# code showing the above steps to clean metadata from any of your documents.\nSimilarly, you can also remove any of the selected metadata properties of your documents. For detailed guidance, take a look at the articles on Metadata Scrubber for Documents and Images using C#.\nFor more .NET API resources, check out these links:\n.NET API | Documentation | Download\nMetadata Scrubber using Java Java programmers have straightforward options to clean metadata properties from documents of various file formats using a simple few lines of code.\nFirst, load the document using the Metadata class. Then, clean the metadata properties using the sanitize method. Finally, save the document with deleted metadata using the save method. Here is the Java code showing the above steps to remove metadata from your documents.\nLikewise, you have the option to delete any of the selected metadata properties of your documents. For more details, take a look at the articles on Metadata Cleaner for Documents and Images using Java.\nFor more Java API resources, explore these links:\n.NET API | Documentation | Download\nConclusion In this article, we have just explored the sanitization world of metadata. Whether, you want to scrub the metadata of your files online, or you want to clean it programmatically using C# or Java, we have got you covered here.\nDon’t get confused, if your file format is supported by the tool or API. I am sure you can find your document format in the list of supported file formats.\nFor detailed API information, readers are encouraged to consult the respective documentation. Questions and further discussions can be directed to the provided forum.\nSee Also Remove Metadata of Documents and Images using C# Metadata Scrubbing of Documents and Images using Java Remove MP3 Tags using C# Manage XMP and EXIF Data of HEIF/HEIC Images using C# Extract RIFF INFO and Metadata of WAV files in Java ","permalink":"https://blog.groupdocs.com/metadata/metadata-scrubber/","summary":"We have various options to remove different metadata properties or simply clean all the properties. We can do it using a simple online Metadata Scrubber Tool or remove it programmatically using C# and Java. Let us see these options quite briefly.","title":"Metadata Scrubbing - Online and Programmatic Approach"},{"content":"\rIn the last article, we discussed managing EPUB metadata \u0026amp; Dublin Core using C#. Today, we\u0026rsquo;ll learn how you can programmatically read, edit, and update EPUB metadata properties, including Dublin Core set of properties, using Java.\nAn EPUB file is a digital book format that includes text, pictures, and interactive elements. It\u0026rsquo;s made using common web technologies like HTML and CSS.\nEPUB metadata means important information stored inside EPUB files, like the title, author, publisher, and language. This data helps in properly organizing digital books.\nHere are the topics we\u0026rsquo;ll cover:\nJava API for Editing Metadata Managing EPUB Metadata with Java Managing Dublin Core Metadata with Java Java API for Editing Metadata GroupDocs.Metadata offers a Java API designed to automate metadata management for different file formats in Java applications. This API enables reading, updating, adding, cleaning, and removing metadata from various file types. In our discussion today, we will utilize this API to handle the metadata of eBooks in the EPUB format.\nYou can obtain the JAR file from the downloads section or incorporate the latest repository and dependency Maven configurations into your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://releases.groupdocs.com/java/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-metadata\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;23.10\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Modifying EPUB Metadata with Java As a Java developer, if you want to modify EPUB metadata properties, follow these steps:\nLoad the EPUB eBook using the Metadata class. Use the getRootPackageGeneric method to extract the metadata root package. Now, you can easily view all the metadata properties of the EPUB package using respective getter method. Update the property values as needed using respective setter method. Save the eBook file with the updated metadata values using the save method. Below are snippets of Java code illustrating the steps to read and update EPUB metadata properties:\nRead EPUB Metadata To start with, here is how you can read the EPUB metadata using Java:\nUpdate EPUB Metadata The following Java source code demonstrates how to fetch and update the EPUB metadata properties of the EPUB file:\nModifying EPUB Dublin Core Metadata with Java Dublin Core metadata consists of a few items that describe both physical and digital resources. You can modify Dublin Core metadata properties using Java code in a manner similar to EPUB metadata.\nRead Dublin Core The following lines of code demonstrate how to extract Dublin Core metadata items for analysis:\nUpdate Dublin Core You can change specific Dublin Core properties as needed, as shown in the code below:\nObtaining a Free License If you want to fully experience the capabilities of this API, you can obtain a temporary license for free.\nConclusion In this article, we looked into EPUB metadata manipulation. Initially, we explored how to read and modify EPUB metadata properties programmatically using Java. Later, we applied the same techniques to the Dublin Core set of items within eBooks.\nFor detailed API information, readers are encouraged to refer to:\nAPI Reference GitHub Repository Documentation Any questions or further discussions can be directed to the provided forum.\nSee Also Online EPUB Metadata Editor Read MP3 Tags using Java Remove MP3 Tags using Java Manage XMP and EXIF Data of HEIF/HEIC Images using Java ","permalink":"https://blog.groupdocs.com/metadata/manage-epub-metadata-using-java/","summary":"EPUB metadata refers to essential information embedded within EPUB files, including details like title, author, publisher, and language, enabling accurate cataloging and organization of digital ebooks. In this article, we will discuss how to programmatically read, edit and update EPUB metadata values including Dublin Core set of items using Java.","title":"Manage EPUB Metadata using Java – Metadata Editor"},{"content":"\rAn EPUB file is a digital ebook format that contains text, images, and multimedia elements, formatted using standard web technologies like HTML and CSS. EPUB metadata refers to essential information embedded within EPUB files, including details like title, author, publisher, and language, enabling accurate cataloging and organization of digital ebooks. In this article, we will discuss how to programmatically read, edit, and update EPUB metadata values including the Dublin Core set of items using C#.\nFollowing are quick links to the covered topics:\n.NET API for Metadata Editing Manage EPUB Metadata with C# Manage Dublin Core Metadata with C# .NET API for Metadata Editing GroupDocs.Metadata provides .NET API to automate metadata management of various file formats within .NET applications. The API allows to read, update, add, clean, and remove the metadata for many file formats. Today, we will use this API to deal with metadata of eBooks having EPUB format.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Metadata Modifying EPUB Metadata with C# If you want to change EPUB metadata properties as a .NET developer, here\u0026rsquo;s how you can do it:\nLoad the EPUB eBook using the Metadata class. Extract the metadata root package using the GetRootPackage method. Now you can easily fetch to view all the metadata properties of the EPUB package. Update the property values as required. Save the eBook file with the updated metadata values using the Save method. Here are the short pieces of C# code that show the above steps to read and update the EPUB metadata properties:\nRead EPUB Metadata Update EPUB Metadata The following C# source code fetches and updates the EPUB metadata properties of the EPUB file.\nModifying EPUB Dublin Core Metadata with C# Dublin Core metadata is a set few items that describes the physical and digital resources. You can easily change the Dublin Core metadata properties using very similar C# code.\nRead Dublin Core The following few lines are extracting Dublin Core metadata items to analyze:\nUpdate Dublin Core Then you can change specific Dublin Core properties accordingly as shown in the code below:\nGetting a Free License If you want to experience the joy of this API at its full capacity, you can get a temporary license for free.\nConclusion In this article, we explored the world of EPUB metadata manipulation. First, we explore how to programmatically read and edit EPUB metadata properties using C#. Then we did the same for the Dublin Core set of items for the eBooks.\nFor detailed API information, readers are encouraged to consult the API reference, GitHub repository \u0026amp; documentation.\nQuestions and further discussions can be directed to the provided forum.\nSee Also Online EPUB Metadata Editor Read MP3 Tags using C# Remove MP3 Tags using C# Manage XMP and EXIF Data of HEIF/HEIC Images using C# C# - Metadata Remover for Documents and Images ","permalink":"https://blog.groupdocs.com/metadata/view-edit-epub-metadata-using-csharp/","summary":"EPUB metadata refers to essential information embedded within EPUB files, including details like title, author, publisher, and language, enabling accurate cataloging and organization of digital ebooks. In this article, we will discuss how to programmatically read, edit and update EPUB metadata values including Dublin Core set of items using C#.","title":"Update EPUB Metadata using C# – .NET Metadata Editor"},{"content":"\rFrom now onwards, it will not be a difficult task for you to view and edit the hidden details of your eBooks. In this article, we will see how to update EPUB metadata efficiently in various ways. We\u0026rsquo;ll begin by exploring a user-friendly online metadata editing tool. Then, we\u0026rsquo;ll transition into the world of programming, showcasing C# and Java methods. Whether you\u0026rsquo;re a reader seeker organization or a developer diving into the technicalities, follow along as we unlock what\u0026rsquo;s hidden within EPUB eBooks metadata.\nView and Edit EPUB Metadata Easily Online Customizing EPUB Metadata becomes simple with online tools designed for metadata editing, such as GroupDocs.Metadata App.\nVisit the Online EPUB Metadata Editor App. Upload your EPUB file using one of the two simple methods: Click \u0026ldquo;Browse\u0026rdquo; and select your file. Drag and drop your file into the designated area. Edit the editable metadata properties of the uploaded eBook according to your requirements. Once you\u0026rsquo;ve made your changes, save your EPUB file with the updated metadata tags. If necessary, you can also export the properties in a spreadsheet format like XLSX. That\u0026rsquo;s it! Have fun editing EPUB Metadata online.\nEditing EPUB Metadata - Developer\u0026rsquo;s Guide Hey developers! Are you eager to tweak the metadata of your EPUB eBooks using your coding skills? You will be able to do it easily in a moment. Here, I will introduce you to libraries that are designed to make this process a whole lot easier. I will show you how to use these APIs to edit EPUB file metadata programmatically. So, get ready to explore and choose the one that suits your needs best!\n.NET Java Let\u0026rsquo;s embark on customizing eBook metadata properties!\nModifying EPUB Metadata with C# If you want to change EPUB metadata properties as a .NET developer, here\u0026rsquo;s how you can do it:\nIntegrate the library into your application. Use the below-provided code snippet to view and edit the editable metadata properties as needed: using (Metadata metadata = new Metadata(\u0026#34;path/ebook.epub\u0026#34;)) { var root = metadata.GetRootPackage\u0026lt;EpubRootPackage\u0026gt;(); root.EpubPackage.Creator = \u0026#34;GroupDocs\u0026#34;; root.EpubPackage.Description = \u0026#34;metadata updated e-book\u0026#34;; root.EpubPackage.Format = \u0026#34;EPUB\u0026#34;; root.EpubPackage.Date = DateTime.Now.ToString(); metadata.Save(\u0026#34;path/ebook.epub\u0026#34;); } Similarly, you can also change the Dublin Core metadata properties using C# code.\nFor detailed guidance, take a look at the articles on Working with metadata of EPUB eBooks using C#.\nFor more .NET API resources, check out these links:\n.NET API | Documentation | Download\nModifying EPUB Metadata with Java If you want to create your own application to view and edit EPUB eBook metadata using Java, here\u0026rsquo;s a simple way to start:\nDownload and install the metadata library for Java in your application. Use the provided source code to view and edit EPUB metadata: try (Metadata metadata = new Metadata(\u0026#34;path/ebook.epub\u0026#34;)) { EpubRootPackage root = metadata.getRootPackageGeneric(); root.getEpubPackage().setCreator(\u0026#34;GroupDocs\u0026#34;); root.getEpubPackage().setDescription(\u0026#34;metadata updated e-book\u0026#34;); root.getEpubPackage().setFormat(\u0026#34;EPUB\u0026#34;); root.getEpubPackage().setDate(new Date().toString()); metadata.save(\u0026#34;path/ebook.epub\u0026#34;); } Similarly, you can also change the Dublin Core metadata properties using Java code.\nFor detailed instructions, refer to the article on Working with metadata of EPUB eBooks using Java.\nFor more Java API resources, explore these links:\nJava API | Documentation | Download\nConclusion In this article, we explored the world of EPUB metadata manipulation, starting with online editing tools and advancing to programmatically editing metadata using C# and Java. We learned how to extract, view, and modify metadata the properties of EPUB files.\nFor detailed API information, readers are encouraged to consult the respective documentation. Questions and further discussions can be directed to the provided forum.\nSee Also MP3 Tags Editor – View \u0026amp; Edit MP3 Tags PNG Metadata Editor – View \u0026amp; Edit PNG Properties ","permalink":"https://blog.groupdocs.com/metadata/view-edit-epub-metadata/","summary":"Learn how to effortlessly view and edit metadata for EPUB eBooks. Discover easy online tools and dive deep into the world of programming with C# \u0026amp; Java. Uncover the hidden potential of your eBooks today!","title":"EPUB Metadata Editor – View \u0026 Edit EPUB Properties"},{"content":"Dive into the heart of your PNG files and initially learn viewing and editing metadata online. Uncover the hidden details of your images effortlessly. Later, in this article, we explore the C# and Java approach, providing you with code snippets to customize your PNG metadata. Whether you\u0026rsquo;re a tech enthusiast or a developer, empower yourself to enhance your images with precision and ease.\nView and Edit PNG Metadata Online Customizing PNG Metadata online is easy with metadata editing apps. You can achieve this effortlessly using the GroupDocs.Metadata App.\nGo to the Online PNG Metadata Editor App website. Import your PNG file in two ways: Click on \u0026ldquo;Browse\u0026rdquo; and pick your file. Drag and drop the file into the assigned space. PNG metadata properties are now available for online modifications. Edit the details for the native, EXIF, and XMP properties as needed. After you\u0026rsquo;re done, save your PNG file with the updated metadata tags. You can also export the properties in a spreadsheet format like XLSX if needed. That’s all! Enjoy editing PNG Metadata online.\nPNG Metadata Editing – Developer’s Guide Developers! Get ready to customize the metadata properties of your PNG files using code. Let\u0026rsquo;s gain some hands-on experience with libraries specifically created to simplify this task. In this article, we\u0026rsquo;ll walk you through using these APIs to programmatically edit the metadata of PNG files. Pick the one that fits your needs best!\n.NET Java Let\u0026rsquo;s explore the coding world and start editing metadata tags of PNG files.\nEditing PNG Metadata with C# If you\u0026rsquo;re a .NET developer looking to modify PNG metadata properties, here\u0026rsquo;s how you can do it:\nIntegrate the library into your application. Utilize the provided code snippet to view and edit metadata properties as needed: using (Metadata metadata = new Metadata(\u0026#34;path/image.png\u0026#34;)) { var root = metadata.GetRootPackage\u0026lt;PngRootPackage\u0026gt;(); foreach (var chunk in root.PngPackage.TextChunks) { Console.WriteLine(chunk.Keyword); Console.WriteLine(chunk.Text); var compressedChunk = chunk as PngCompressedTextChunk; if (compressedChunk != null) { Console.WriteLine(compressedChunk.CompressionMethod); } var internationalChunk = chunk as PngInternationalTextChunk; if (internationalChunk != null) { Console.WriteLine(internationalChunk.IsCompressed); Console.WriteLine(internationalChunk.Language); Console.WriteLine(internationalChunk.TranslatedKeyword); } } } For detailed guidance, check out the articles on How to Read PNG Metadata using C# and Manage XMP and EXIF Data of Images using C#\nFor more .NET API resources, explore the following links:\n.NET API | Documentation | Download\nEditing PNG Metadata with Java You can create your own application to view and edit PNG image metadata using Java. Here\u0026rsquo;s a simple example to get you started:\nDownload and set up the metadata library for Java in your application. Use the provided source code to view and edit PNG Metadata: try (Metadata metadata = new Metadata(\u0026#34;path/image.png\u0026#34;)) { PngRootPackage root = metadata.getRootPackageGeneric(); for (PngTextChunk chunk : root.getPngPackage().getTextChunks()) { System.out.println(chunk.getKeyword()); System.out.println(chunk.getText()); if (chunk instanceof PngCompressedTextChunk) { PngCompressedTextChunk compressedChunk = (PngCompressedTextChunk) chunk; System.out.println(compressedChunk.getCompressionMethod()); } if (chunk instanceof PngInternationalTextChunk) { PngInternationalTextChunk internationalChunk = (PngInternationalTextChunk) chunk; System.out.println(internationalChunk.isCompressed()); System.out.println(internationalChunk.getLanguage()); System.out.println(internationalChunk.getTranslatedKeyword()); } } } For detailed instructions, check out the articles on How to Read PNG Metadata using Java and Manage XMP and EXIF Data of Images using Java.\nFor more Java API resources, check these links:\nJava API | Documentation | Download\nConclusion In summary, we\u0026rsquo;ve explored how to extract, view, and edit metadata tags in PNG files. Initially, we achieved this using an online metadata editor. Later, we delved into programmatically editing metadata using C# and Java. While doing so, we explored various metadata properties specific to PNG files.\nFor further details about the APIs, consult the respective documentation. If you have any questions, feel free to reach out to us via the forum.\nSee Also MP3 Tags Editor – View \u0026amp; Edit MP3 Tags ","permalink":"https://blog.groupdocs.com/metadata/view-edit-png-metadata/","summary":"Unlock the secrets embedded within your PNG files by viewing and editing PNG metadata online. Discover the ease of managing your audio and video collection effortlessly. In this article, we will look into a programmatic approach using C# and Java languages, providing step-by-step instructions and code snippets to empower you in customizing your PNG properties.","title":"PNG Metadata Editor – View \u0026 Edit PNG Properties"},{"content":"Unlock the secrets embedded within your MP3 files by viewing and editing metadata MP3 tags online. Discover the ease of managing your audio and video collection effortlessly. In this article, we will look into a programmatic approach using C# and Java languages, providing step-by-step instructions and code snippets to empower you in customizing your MP3 tags.\nView and Edit MP3 Tags Online Online customization of MP3 Tags is quite a simple task using online metadata editing apps. Let’s accomplish this easily through the GroupDocs.Metadata App.\nVisit the Online MP3 Metadata Editor App website. Upload your MP3 file using these methods: Click the “Browse” button and select your file. Drag and drop the file into the designated area. MP3 tags are now ready for online editing. Make the desired changes for the editable properties of ID3v1, ID3v2, and Lyrics tag. Once you’re finished, save your MP3 file with the changed metadata tags. You can also export the properties in spreadsheet format like XLSX if required. That’s all! Enjoy editing MP3 Tags online.\nMP3 Tags Editing – Developer’s Guide Fellow developers! Get ready to tweak the metadata properties of your MP3 files using code. Let’s get some experience with the libraries that are designed to make this task quite simple. Next, this article will guide you through using these APIs to edit the metadata of MP3 files programmatically. Choose the one that aligns with your requirements the best!\n.NET Java Let’s explore the coding world to start editing metadata tags of MP3 files. Let’s begin!\nEdit MP3 Tags using C# If you’re looking to edit MP3 tags as a .NET developer, simply follow these steps:\nConfigure the library within your application. Use the below code snippet to view and then edit MP3 tags accordingly: For detailed instructions, refer to the article on How to Read MP3 Tags using C#.\nFor additional .NET API resources, explore the following links:\n.NET API | Documentation | Download\nEdit MP3 Tags using Java You can create your own MP3 tags viewing and editing application using Java. Here is a small example that can be used:\nDownload and configure the metadata library for Java within your application. Utilize the provided source code to view and then edit the MP3 Tags: For detailed instructions, refer to the article on How to Read MP3 Tags using Java.\nFor additional Java API resources, explore the following links:\nJava API | Documentation | Download\nConclusion To conclude, we learned to extract, view, and edit metadata tags from the MP3 files. First, we did it using the online metadata editor. Later, we used C# and Java to perform the same programmatically. We can read ID3v1, ID3v2, Lyrics, and APE tags and their properties from the MP3 files.\nYou can learn more about the APIs from the respective documentation and contact us for queries via the forum.\nSee Also Remove MP3 Tags using C# Remove MP3 Tags using Java Manage XMP and EXIF Data using C# Manage XMP and EXIF Data using Java ","permalink":"https://blog.groupdocs.com/metadata/view-edit-mp3-tags/","summary":"Unlock the secrets embedded within your MP3 files by viewing and editing metadata MP3 tags online. Discover the ease of managing your audio and video collection effortlessly. In this article, we will look into a programmatic approach using C# and Java languages, providing step-by-step instructions and code snippets to empower you in customizing your MP3 tags.","title":"MP3 Tags Editor – View \u0026 Edit MP3 Tags"},{"content":"\rPresentation files come in different formats like PPT, PPTX, and ODP. You must be familiar with softwares like Microsoft PowerPoint, OpenOffice Impress, and Apple Keynote – they all work with these formats, helping us create amazing presentations. As developers, we have the power to programmatically edit these presentations in our applications. This article will guide you on how to edit PPT/PPTX presentations in Java using presentation editing API.\nIn this article, we\u0026rsquo;ll cover the following topics:\nJava API - Presentation Slides Editing Edit PPT/PPTX Presentations in Java Java API for Presentations Editing and Automation In our examples, we\u0026rsquo;ll be relying on a powerful GroupDocs.Editor for Java library. This library serves as a presentation editing API, enabling developers to seamlessly load, edit, and save presentations in formats such as PPT, PPTX, and PDF.\nNot only does this API handle presentations, but it also supports the editing of various other document types, including word-processing documents, spreadsheets, HTML, XML, JSON, TXT, TSV, and CSV formats.\nTo get started, you can download the necessary JAR file from the downloads section or incorporate the latest repository and dependency Maven configurations directly into your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-editor\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Editing PPT/PPTX Presentations in Java Once you have set up the API, you can swiftly start editing your presentation slides. Here are the steps to edit presentations in PPT/PPTX and other compatible formats:\nStep 1: Load the Presentation Begin by loading the presentation. Provide the file path and password if the presentation is password-protected.\n// Load Presentation PresentationLoadOptions loadOptions = new PresentationLoadOptions(); loadOptions.setPassword(\u0026#34;P@$$w0Rd\u0026#34;); Editor editor = new Editor(new FileInputStream(\u0026#34;path/presentation.pptx\u0026#34;), loadOptions); Step 2: Edit PPT/PPTX Presentation Slides with Java After loading, modify the presentation as needed. For instance, in the following Java code, I\u0026rsquo;m replacing occurrences of the word \u0026ldquo;documents\u0026rdquo; with \u0026ldquo;presentation\u0026rdquo; in a PPTX presentation.\n// Edit Presentation Editor editor = new Editor(new FileInputStream(\u0026#34;path/presentation.pptx\u0026#34;), loadOptions); PresentationEditOptions editOptions = new PresentationEditOptions(); editOptions.setSlideNumber(0); //1st slide editOptions.setShowHiddenSlides(true); EditableDocument beforeEdit = editor.edit(editOptions); String originalContent = beforeEdit.getContent(); List\u0026lt;IHtmlResource\u0026gt; allResources = beforeEdit.getAllResources(); String editedContent = originalContent.replace(\u0026#34;document\u0026#34;, \u0026#34;presentation\u0026#34;); Step 3: Save the Edited PowerPoint Presentation with Options When saving the edited content, you have the flexibility to set various options. These options include setting a password and configuring output format settings. In the code snippet below, I demonstrate how to apply these options and save the edited presentation as a password-protected PPTX file.\n// Save Presentation EditableDocument afterEdit = EditableDocument.fromMarkup(editedContent, allResources); PresentationSaveOptions saveOptions = new PresentationSaveOptions(PresentationFormats.Pptm); saveOptions.setPassword(\u0026#34;new_pa$$word\u0026#34;); editor.save(afterEdit, new ByteArrayOutputStream(), saveOptions); try(OutputStream outputFile = new FileOutputStream(\u0026#34;path/edited-presentation.pptx\u0026#34;)) { outputStream.writeTo(outputFile); } Complete Java Code Example For your convenience, here\u0026rsquo;s the complete Java code that was explained above. This code demonstrates how to edit a PowerPoint presentation and save it in PPTX format.\nAfter running the above code, the output presentation will look like the image below. In this edited presentation, all occurrences of the word \u0026lsquo;documents\u0026rsquo; have been replaced with \u0026lsquo;presentation\u0026rsquo;.\nOutput presentation - \u0026lsquo;documents\u0026rsquo; occurrences are replaced by \u0026lsquo;presentation\u0026rsquo;\nFeel free to test out the code and see the changes for yourself! If you have any questions or need further assistance, don\u0026rsquo;t hesitate to ask.\nConclusion In summary, we explored how to edit presentation slides in Java using a presentation editing API. This API allows you to visually edit your presentations using WYSIWYG editors. With this knowledge, you can create your own presentation editor or integrate the editing feature directly into your Java application.\nFor in-depth information, additional options, and examples, you can refer to the documentation and the GitHub repository. If you have any further questions, feel free to reach out to the support team on the forum.\nRelated Articles Edit PowerPoint Presentations Online Word Documents Editing using Java Excel Spreadsheets Editing using Java How to Edit XML files in Java ","permalink":"https://blog.groupdocs.com/editor/edit-ppt-pptx-presentations-in-java/","summary":"You must be familiar with softwares like Microsoft PowerPoint, OpenOffice Impress, and Apple Keynote – they all work with these formats, helping us create amazing presentations. As developers, we have the power to programmatically edit these presentations in our applications. This article will guide you on how to edit PPT/PPTX presentations in Java using presentation editing API.","title":"Editing PPT/PPTX Presentations Made Easy with Java"},{"content":"\rThe most common and widely used presentation file formats are PPT, PPTX, and ODP. The famous Microsoft PowerPoint, OpenOffice Impress and Apple Keynote support these formats and we normally use these formats for making spectacular presentations. As a developer, we can edit presentations in our applications programmatically. In this article, we will discuss how to edit PPT/PPTX presentations in C# using the .NET API for presentation editing.\nThe following are the topics discussed briefly in this article:\n.NET API - Presentation Slides Editing Edit PPT/PPTX Presentations in C# .NET API for Presentations Editing and Automation Now, we will be using the GroupDocs.Editor for .NET in below C# examples. It is the presentation editing API and allows developers to load, edit, and save the edited presentations in other formats like PPT, PPTX, PDF. In addition to the presentation formats, the API supports editing word-processing documents, spreadsheets, HTML, XML, JSON, TXT, TSV, and CSV formats.\nDownload the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Editor Edit PPTX/PPTX Presentations in C# Just after setting up the API, you can quickly move towards editing your presentation slides. The following steps will let you edit the presentation of PPT/PPTX and other supported formats.\nLoad the presentation. Edit using the available options. Save the edited presentation. Load the PPT/PPTX Presentation Firstly, load the presentation by providing the presentation file path and the password, if the presentation is protected.\n// Load Presentation using (FileStream fs = File.OpenRead(\u0026#34;path/presentation.pptx\u0026#34;)) { // Load Presentation Options.PresentationLoadOptions loadOptions = new PresentationLoadOptions(); loadOptions.Password = \u0026#34;P@$$w0Rd\u0026#34;; } Edit the PPT/PPTX Presentation Slides After loading, you can edit the loaded presentation as per requirement. Here I am replacing all the occurrences of word \u0026ldquo;documents\u0026rdquo; with the \u0026ldquo;presentation\u0026rdquo; in a PPTX presentation using the below C# code.\n// Edit Presentation using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; })) { Options.PresentationEditOptions editOptions = new PresentationEditOptions(); editOptions.SlideNumber = 0; // 1st slide editOptions.ShowHiddenSlides = true; using (EditableDocument beforeEdit = editor.Edit(editOptions)) { string originalContent = beforeEdit.GetContent(); List\u0026lt;IHtmlResource\u0026gt; allResources = beforeEdit.AllResources; string editedContent = originalContent.Replace(\u0026#34;documents\u0026#34;, \u0026#34;presentation\u0026#34;); } } Save the Edited PowerPoint presentation with Options Lastly, while saving the edited presentation content, you can further set various options. These options include; set password, output format settings. I set the above options in the below-mentioned code and save the edited presentation as a password-protected PPTX file.\n// Save Presentation using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources)) { Options.PresentationSaveOptions saveOptions = new PresentationSaveOptions(PresentationFormats.Pptm); saveOptions.Password = \u0026#34;new_pa$$word\u0026#34;; using (FileStream outputStream = File.Create(\u0026#34;path/edited-presentation.pptx\u0026#34;)) { editor.Save(afterEdit, outputStream, saveOptions); } } Complete Code For the convenience, here is the complete C# example that is explained above and it edits the PowerPoint presentation and then saves it in PPTX format.\nThe following is the output presentation in which all the occurrences are replaced using the above code.\nOutput presentation - \u0026lsquo;documents\u0026rsquo; occurrences are replaced by \u0026lsquo;presentation\u0026rsquo;\nConclusion To conclude, we discussed editing presentations slides in C# using presentation editing API for .NET applications. You can use the API with WYSIWYG editors for the visual editing of your presentations. After that, you can move ahead to build your own presentation editor. Similarly, you can also integrate the editing feature within your .NET application.\nFor more details, options, and examples, you can visit the documentation and the GitHub repository. For further queries, contact the support on the forum.\nRelated Articles Edit PowerPoint Presentations Online Word Documents Editing using C# Excel Spreadsheets Editing using C# How to Edit XML files in C# ","permalink":"https://blog.groupdocs.com/editor/edit-ppt-pptx-presentations-in-csharp/","summary":"The most common and widely used presentation file formats are \u003cstrong\u003ePPT\u003c/strong\u003e, \u003cstrong\u003ePPTX\u003c/strong\u003e, and \u003cstrong\u003eODP\u003c/strong\u003e. The famous Microsoft PowerPoint, OpenOffice Impress and Apple Keynote support these formats and we normally use these formats for making spectacular presentations. As a developer, we can edit presentations in our applications programmatically. In this article, we will discuss \u003cstrong\u003ehow to edit PPT/PPTX presentations in C#\u003c/strong\u003e using the .NET API for presentation editing.","title":"Edit Presentations PPT/PPTX in C#"},{"content":"\rPPT and PPTX are most commonly used file formats of presentation files. Microsoft PowerPoint, Keynote, Impress and all other famous presentation editors support these formats. However, you are here to edit your presentation files either online for free or edit it programmatically. This article will focus on various methods to edit PowerPoint Presentations. Initially, we\u0026rsquo;ll explore online option using a straightforward online presentation editor. Later, we\u0026rsquo;ll discuss how to edit presentation files programmatically using C# and Java.\nEdit PowerPoint Presentations Online Editing your presentation files online is a simple task. We can accomplish this easily through the online GroupDocs.Editor App.\nHere\u0026rsquo;s a simple guide to edit your PowerPoint presentations online:\nVisit the Online PowerPoint Files Editor App website. Upload your PPT/PPTX presentation file using these methods: Click the \u0026ldquo;Browse\u0026rdquo; button and select your file. Drag and drop the file into the designated area. Alternatively, paste the web address (URL) of your presentation and click Open. Your presentation is now ready for online editing. Make the desired changes, such as editing content, altering formats, inserting links or images, and more. Once you\u0026rsquo;re finished, save your changes using the same method as before or choose from various formats like PDF if needed. That’s all! Enjoy editing your PowerPoint PPT/PPTX presentations online.\nPowerPoint Presentation Editor – Developer’s Guide Fellow developers! Ready to tweak your presentation slides using code? Let\u0026rsquo;s experience the libraries designed to make this task a breeze. Next, this article will guide you through using these APIs to edit PowerPoint files using various programming languages. Choose the one that aligns with your requirements the best!\n.NET Java Let\u0026rsquo;s dive right into the coding world to start editing presentation files. Let\u0026rsquo;s begin!\nEdit PowerPoint Presentations (PPT/PPTX Files) using C# .NET programmers, if you\u0026rsquo;re looking to edit your PowerPoint presentations using C#, follow these simple steps:\nIncorporate the library into your program. Use the provided code snippet below to edit PowerPoint presentation files: EditableDocument firstSlide = editor.Edit(); PresentationEditOptions editOptions2 = new PresentationEditOptions(); editOptions2.SlideNumber = 1; // 2nd slide EditableDocument secondSlide = editor.Edit(editOptions2); PresentationEditOptions editOptions3 = new PresentationEditOptions(); editOptions3.SlideNumber = 2; // 3rd slide editOptions3.ShowHiddenSlides = true; // show hidden EditableDocument thirdSlide = editor.Edit(editOptions3); For detailed instructions, refer to the article on How to Edit PowerPoint Presentations in C#.\nIf you need additional resources related to the .NET API, you can find them through the following links:\n.NET API | Documentation | Download\nEdit PowerPoint Presentations (PPT/PPTX Files) using Java Java developers, you can create your own applications to edit presentations too. Here\u0026rsquo;s how you can edit content in Presentation slides using Java:\nDownload and configure the Java library within your application. Utilize the provided source code to edit PowerPoint (PPT/PPTX) files: EditableDocument firstSlide = editor.edit(); PresentationEditOptions editOptions2 = new PresentationEditOptions(); editOptions2.setSlideNumber(1); // 2nd slide EditableDocument secondSlide = editor.edit(editOptions2); PresentationEditOptions editOptions3 = new PresentationEditOptions(); editOptions3.setSlideNumber(2); // 3rd slide editOptions3.setShowHiddenSlides(true); // show hidden EditableDocument thirdSlide = editor.edit(editOptions3); For detailed instructions, refer to the article on How to Edit PowerPoint Presentations in Java.\nFor more resources related to the Java API, you can find them here:\nJava API | Documentation | Download\nConclusion In this guide, we\u0026rsquo;ve covered different approaches to editing PowerPoint presentations. Whether you opt for the ease of online editing through the GroupDocs.Editor App or you\u0026rsquo;re a programmer inclined to modify presentations using C# or Java, there\u0026rsquo;s a solution tailored for each preference. Feel free to select the method that aligns with your needs and begin editing your PowerPoint files effortlessly!\nHappy Editing!\nSee Also How to Edit Word Documents - DOC/DOCX Editor Edit Excel Spreadsheets - XLS/XLSX Editor Edit XML Files - XML Editor ","permalink":"https://blog.groupdocs.com/editor/edit-presentation-ppt-pptx/","summary":"In this article, we’re going to explore various methods for editing PowerPoint presentations. We’ll look into how to achieve this using an easy-to-use online presentation editing tool. Additionally, we’ll see how to edit PowerPoint files using C# and Java programming.","title":"Edit PowerPoint Presentations - PPT/PPTX Editor"},{"content":"\rXML files are common in the world of programming and data exchange. They are used to structure and store data in a way that machines can easily understand. Sometimes, you need to edit XML files to make changes or updates. In this article, we’re going to explore various methods for editing XML files. We’ll look into how to achieve this using an easy-to-use online XML editing tool. Additionally, we’ll see how to edit XML files using C# and Java programming.\nEdit XML Files Online Whenever you want to edit your XML files, it’s straightforward to achieve this online. We’ll utilize the online XML Editor App for this.\nSimply follow these steps to edit your XML files online:\nStart by navigating to the Online XML Editor App website. Upload your XML document file by following one of the two options: Either clicking the Browse button or dragging and dropping the file into the specified area. Just paste the URL of your document and click Open. Your XML file will now be available in the Online Editor to make your changes. Make your changes by editing the content, changing the structure, adding or removing elements, and whatever you want. That’s all! Enjoy editing your XML files online.\nXML Document Editor – Developer’s Guide Programmers! Let\u0026rsquo;s get ready to edit XML files programmatically. We\u0026rsquo;ve got a collection of libraries that make this task a breeze. In this section, we\u0026rsquo;ll explore how to manipulate XML files using APIs tailored for various programming languages. Take your time to choose the one that suits your needs perfectly.\n.NET Java Okay, if you’re ready to roll, let’s jump into the coding world to edit files. Let’s begin!\nEdit XML Files using C# For the .NET programmers, here is how you can edit your XML files using C#. Just follow these easy steps:\nIncorporate the library into your program. Utilize the provided code snippet below to edit XML files: For further guidance, you can also refer to the article on How to Edit XML Files in C#.\nFor additional resources related to the .NET API, you can access these through the following links:\n.NET API | Documentation | Download\nEdit XML Files using Java Java developers can also create their own XML editing applications. Let’s take a look at how XML files can be edited using Java:\nDownload and configure the Java library within your application. Use the provided source code to edit XML files: For a more comprehensive guide, you can refer to the article titled Edit XML Files in Java.\nIf you’re seeking additional resources related to the Java API, you can locate them here:\nJava API | Documentation | Download\nConclusion In conclusion, whether you prefer the simple online editing with the XML Editor or the flexibility of programming, we’ve explored various methods for editing XML files. Whether you’re a user looking for a convenient online solution or a programmer looking into the coding world, these options enables you to edit XML files.\nHappy Editing!\nSee Also C# Way to Edit XML Files Java Way to Edit XML Files How to Edit Word Documents - DOC/DOCX Editor How to Edit Excel Spreadsheets - XLS/XLSX Editor ","permalink":"https://blog.groupdocs.com/editor/edit-xml-files/","summary":"In this article, we’re going to explore various methods for editing XML files. We’ll look into how to achieve this using an easy-to-use online XML editing tool. Additionally, we’ll see how to edit XML files using C# and Java programming.","title":"Edit XML Files - XML Editor"},{"content":"\rDOC, DOCX, and ODT are among the most common and widely used word-processing file formats. Microsoft Word and OpenOffice Writer support these formats and are used for drafting documents. It is often required to edit word-processing documents. In this article, we’re going to explore various methods for editing Word documents. We’ll look into how to achieve this using an easy-to-use online document editing tool. Additionally, we’ll see how to edit Word files using C# and Java programming.\nEdit Word Documents Online Whenever you want to edit your Word-processing documents, it’s straightforward to achieve this online. We’ll utilize the online GroupDocs.Editor App for this.\nSimply follow these steps to edit your Word documents online:\nStart by navigating to the Online Word Editor App website. Upload your DOC/DOCX document file by following one of the two options: Either clicking the Browse button or dragging and dropping the file into the specified area. Just paste the URL of your document and click Open. Your word-processing document will now be available in the Online Editor to make your changes. Make your changes by editing the content, changing the format, adding formatted lists, inserting anchors or pictures, and whatever you want. Finally, save your edited content in the same format or you can download it in PDF format. That’s all! Enjoy editing your Word DOC/DOCX documents online.\nWord Document Editor – Developer’s Guide Programmers! Get ready to edit Word documents programmatically. Here is a set of libraries that allows you to accomplish this task. Here, we will have a look at editing Word documents using APIs for different programming languages. Feel free to take your time and select the one that aligns best with your requirements.\n.NET Java Okay, if you’re ready to roll, let’s jump into the coding world to edit files. Let’s begin!\nEdit Word Documents (DOC/DOCX Files) using C# For the .NET programmers, here is how you can edit your Word documents using C#. Just follow these easy steps:\nIncorporate the library into your program. Utilize the provided code snippet below to edit Word document files: using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; })) { Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions(); editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem; editOptions.EnableLanguageInformation = true; editOptions.EnablePagination = true; using (EditableDocument beforeEdit = editor.Edit(editOptions)) { string originalContent = beforeEdit.GetContent(); List\u0026lt;IHtmlResource\u0026gt; allResources = beforeEdit.AllResources; string editedContent = originalContent.Replace(\u0026#34;document\u0026#34;, \u0026#34;edited document\u0026#34;); } } For further guidance, you can also refer to the article on How to Edit Word Documents in C#.\nFor additional resources related to the .NET API, you can access these through the following links:\n.NET API | Documentation | Download\nEdit Word Documents (DOC/DOCX Files) using Java Java developers can also create their own document editing applications. Let’s take a look at how Word documents can be edited:\nDownload and configure the Java library within your application. Use the provided source code to edit Word DOC/DOCX files: For a more comprehensive guide, you can refer to the article titled Edit Word Documents in Java.\nIf you’re seeking additional resources related to the Java API, you can locate them here:\nJava API | Documentation | Download\nConclusion In conclusion, whether you prefer the ease of online editing with GroupDocs.Editor or the flexibility of programming, we’ve explored various methods for editing Word documents. Whether you’re a user looking for a convenient online solution or a developer diving into the coding world, these options empower you to edit Word documents effortlessly.\nHappy Editing!\nSee Also C# Way to Edit Word DOC/DOCX files Java Way to Edit Word DOC/DOCX files How to Edit Excel Spreadsheets - XLS/XLSX Editor Edit XML Files - XML Editor ","permalink":"https://blog.groupdocs.com/editor/edit-word-documents/","summary":"In this article, we’re going to explore various methods for editing Word documents. We’ll look into how to achieve this using an easy-to-use online document editing tool. Additionally, we’ll see how to edit Word files using C# and Java programming.","title":"Edit Word Documents - DOC/DOCX Editor"},{"content":"\rXLS, XLSX, and ODS are types of files that we use a lot for spreadsheets, kind of like big tables of data. Programs like Microsoft Excel and OpenOffice Writer know how to work with these files. In this article, we\u0026rsquo;re going to learn about different ways to edit Excel spreadsheets. First, we\u0026rsquo;ll see how to do it online using a simple online spreadsheet editing app. Later, we\u0026rsquo;ll also talk about how to edit the same files programmatically using C# and Java.\nEdit Excel Spreadsheets Online Whenever you want to edit your spreadsheet files, it’s straightforward to achieve this online. We’ll utilize the online GroupDocs.Editor App for this.\nSimply follow these steps to edit your Excel spreadsheets online:\nGo to the Online Excel Files Editor App website. Upload your XLS/XLSX spreadsheet file there. You can do it in following ways: Click the \u0026ldquo;Browse\u0026rdquo; button and choose your file. Drag and drop the file into the special area. Or you can just paste the web address (URL) of your spreadsheet and click Open. Now, your spreadsheet is ready to edit online. Do your changes like editing the content, changing the format, adding records, or inserting anchors or pictures, and whatever you want. When you\u0026rsquo;re done, save your changes in the same way it was before or choose many different formats like PDF if you want. That’s all! Enjoy editing your Excel XLS/XLSX spreadsheets online.\nExcel Spreadsheet Editor – Developer’s Guide Fellow programmers! Are you excited to change Excel sheets with code? Check out these special tools (libraries) that make it quiet easily possible. We\u0026rsquo;re going to show you how to use these tools to edit Excel files using different programming languages. Pick the one that suits your needs the most.\n.NET Java Okay, if you’re ready to roll, let’s jump into the coding world to edit files. Let’s begin!\nEdit Excel Spreadsheets (XLS/XLSX Files) using C# For the .NET programmers, here is how you can edit your Excel spreadsheets using C#. Just follow these easy steps:\nIncorporate the library into your program. Utilize the provided code snippet below to edit Excel spreadsheet files: For further guidance, you can also refer to the article on How to Edit Excel Spreadsheets in C#.\nFor additional resources related to the .NET API, you can access these through the following links:\n.NET API | Documentation | Download\nEdit Excel Spreadsheets (XLS/XLSX Files) using Java Java developers can also build their own apps to edit spreadsheets. Now, let\u0026rsquo;s see how we can edit the content in Excel sheets using Java.\nDownload and configure the Java library within your application. Use the provided source code to edit Excel (XLS/XLSX) files: For a more comprehensive guide, you can refer to the article titled Edit Excel Spreadsheets in Java.\nIf you’re seeking additional resources related to the Java API, you can locate them here:\nJava API | Documentation | Download\nConclusion In this article, we\u0026rsquo;ve explored a variety of methods for editing Excel spreadsheets. Whether you prefer the simplicity of online editing with the GroupDocs.Editor App or you\u0026rsquo;re a developer ready to code your way to spreadsheet modifications using C# or Java, there\u0026rsquo;s a solution for everyone. So go ahead, choose the method that suits you best, and start making those Excel edits with ease!\nHappy Editing!\nSee Also C# Way to Edit Excel XLS/XLSX files Java Way to Edit Excel XLS/XLSX files How to Edit Word Documents - DOC/DOCX Editor Edit XML Files - XML Editor ","permalink":"https://blog.groupdocs.com/editor/edit-excel-spreadsheet/","summary":"In this article, we’re going to explore various methods for editing Excel spreadsheets. We’ll look into how to achieve this using an easy-to-use online spreadsheet editing tool. Additionally, we’ll see how to edit Excel files using C# and Java programming.","title":"Edit Excel Spreadsheets - XLS/XLSX Editor"},{"content":"\rDid you ever want to protect and prove that your special drawings or papers are yours? Well, let\u0026rsquo;s learn about different ways to put watermarks on pictures or images (like JPG or PNG files). First, we\u0026rsquo;ll check out a simple online tool for adding watermarks. After that, we\u0026rsquo;ll see how to do it programmatically with C# and Java.\nHow to Add Watermark to Images Online When you want to add watermarks to pictures easily, using online tools can be super helpful. In this article, we\u0026rsquo;ll use a dependable online tool GroupDocs.Watermark App.\nFollow these steps to put watermarks on your images online:\nGo to the Watermark app. Upload your image file (like JPG, JPEG, PNG, and more) either by clicking \u0026ldquo;Browse\u0026rdquo; or just dragging and dropping it into the upload area. Choose whether you want to add a watermark made of text or an image. You can make your watermark look special by changing things like appearance, transparency, rotation, alignment, and size. When you\u0026rsquo;re happy with how it looks, click the \u0026ldquo;Create Watermark\u0026rdquo; button to actually put the watermark on your image. You can then get your picture with the watermark by clicking the \u0026ldquo;Download\u0026rdquo; option. Here\u0026rsquo;s what a picture looks like with a text watermark after doing these steps:\nAnd here\u0026rsquo;s what it looks like with an image as a watermark:\nIt\u0026rsquo;s like putting your signature on your pictures to show they belong to you!\nHow to Watermark Image Files – Developer’s Guide Hey programmers! let’s add text or image watermarks to your images. Here, we have multiple libraries to achieve the target. Here we’ll see how to put cool marks on images using different languages. Take a look at your options and pick the one that fits your needs the best.\n.NET Java So, if you’re all set, let’s jump to programmatically add watermarks. Let’s start coding!\nWatermarking Image Files using C# .NET programmers have the awesome power to add watermarks to images using their code. Let\u0026rsquo;s take a quick look at how it\u0026rsquo;s done:\nIntegrate the library into your application. Utilize the provided code snippet below to add text watermark to your images: Additionally, refer to the article on How to add Text or Image Watermark to Images using C#.\nFor further .NET API resources, you can explore the following links:\n.NET API | Documentation | Download\nWatermarking Image Files using Java Java enthusiasts can also enjoy adding watermarks to images with their code. Let\u0026rsquo;s sneak a peek at how it can be done:\nDownload \u0026amp; Configure the library within your application. Use the provided source code to add image-based watermark to images: Refer to the article on How to add Text or Image Watermark to Images using Java for more in-depth instructions.\nIf you need additional resources for the Java API, you can explore the following links:\nJava API | Documentation | Download\nConclusion Putting watermarks on images is super important to keep your stuff safe. Whether you like using easy online tools or want to get creative with bunch of files with C# and Java, adding watermarks makes your documents safer. Check out all the different ways we talked about in this article and pick the one that works best for you.\nStay secure! 🔒\nSee Also Watermark Images using C# Watermark Images using Java Insert Watermark to PDF Documents Insert Watermark to Word Documents Add Watermark to Excel Spreadsheets Add Watermark to Presentations - PPT/PPTX ","permalink":"https://blog.groupdocs.com/watermark/watermark-images/","summary":"In this article, we will explore various methods to add watermarks to images, both through online tools and programming languages like C# and Java. Whether you’re looking for a quick online solution or a more customized approach, It got you covered.","title":"Add Watermark to Images"},{"content":"\rHave you ever needed to secure and authenticate your important drawings or documents? Let\u0026rsquo;s discover various methods for adding watermarks to PowerPoint presentations in this article. First, we\u0026rsquo;ll explore an easy-to-use online watermarking tool. Later, we will delve into adding watermarks using C# and Java programming.\nHow to Add Watermark to PowerPoint Presentations Online Inserting watermarks into your presentations is a simple task when done online. Let\u0026rsquo;s make use of the online GroupDocs.Watermark App for this purpose.\nHere are the steps to add watermarks online to your PowerPoint file(s) or any presentation file format:\nVisit the Watermark App website. Upload your PowerPoint file by clicking Browse or drag and drop. Choose your watermark, whether it\u0026rsquo;s text or an image. Customize the watermark\u0026rsquo;s appearance, transparency, and position. Click Create Watermark to add it. Download your watermarked presentation using the Download option. That\u0026rsquo;s it! Your presentation now contains a watermark.\nHow to Watermark PowerPoint Presentations – Developer’s Guide Hey programmer! get ready to add text or image watermarks to your presentations (PPT/PPTX). In this article, we present a couple of libraries to help you watermark your presentation files using different programming languages. Take your time to choose the one that suits your needs best.\n.NET Java If you have made up your mind, let\u0026rsquo;s jump into the coding world and discover how to programmatically insert watermarks in your PowerPoint Presentations. Let\u0026rsquo;s begin!\nWatermarking PowerPoint Presentations using C# .NET programmers, if you\u0026rsquo;re looking for a swift solution to add watermarks to your PowerPoint presentations (PPT/PPTX) using C#, here are the simple steps to follow:\nIntegrate the library into your application. Use the provided code snippet below to insert watermarks into your PowerPoint presentations: If you need more assistance, you can also consult the article How to Add Text or Image Watermarks to PowerPoint Presentations using C#.\nFor further .NET API resources, you can access them via the following links:\n.NET API | Documentation | Download\nWatermarking PowerPoint Presentations using Java Java enthusiasts can add watermarks to their PowerPoint presentations as well. Here\u0026rsquo;s a concise outline of the process:\nSet up the library in your application. Use the provided source code to insert a watermark into your PowerPoint presentation: For a detailed guide, refer to the article titled Adding Text or Image Watermarks to PowerPoint Presentations using Java.\nFor more Java API resources, you can find them here:\nJava API | Documentation | Download\nGetting a Free License If you want to try this library without any limits, you can get a temporary free license.\nConclusion Adding watermarks to PowerPoint presentations enhances content security. Whether you prefer online tools or C# and Java programming, explore the techniques in this article to choose the best fit for your needs.\nIf you want to learn more or have questions, you can check the documentation or feel free to ask for help on the forum.\nSee Also Watermarking Image Files (JPG | PNG | \u0026hellip;) PDF File Watermarking Word Document Watermarking Excel Spreadsheet Watermarking Watermarking Presentations using C# Watermarking Presentations using Java ","permalink":"https://blog.groupdocs.com/watermark/watermark-presentations/","summary":"Secure and authenticate your important drawings or documents. Let\u0026rsquo;s discover various methods for adding watermarks to PowerPoint presentations in this article. First we\u0026rsquo;ll explore an easy-to-use online watermarking tool. Later, we will delve into adding watermarks using C# and Java programming.","title":"Watermark PowerPoint Presentations"},{"content":"\rEver had a moment when you wanted to ensure that your special drawings or documents were secure and authentic? You can use watermarks that not only safeguard your important documents but also prove their status and authenticity. In this article, we\u0026rsquo;re going to explore various methods for adding watermarks to Excel spreadsheets. We\u0026rsquo;ll look into how to achieve this using an easy-to-use online watermarking tool. Additionally, we\u0026rsquo;ll see how to insert watermarks into Excel files using C# and Java programming.\nHow to Add Watermark to Excel Spreadsheets Online When you wish to insert watermarks into your Excel Spreadsheets, it\u0026rsquo;s incredibly straightforward to achieve this online. We\u0026rsquo;ll utilize the online GroupDocs.Watermark App for this purpose.\nSimply follow these steps to place watermark imprints on your Excel Spreadsheets online:\nBegin by navigating to the Watermark App website. Upload your Excel Spreadsheet by either clicking the Browse button or by dragging and dropping it into the specified area. Choose the watermark image you desire, whether it\u0026rsquo;s a special word or an image. Personalize your chosen mark by adjusting its appearance, transparency, and placement on the spreadsheet. To include your watermark, simply click the Create Watermark button. Now, you can obtain your marked spreadsheet by using Download option. That\u0026rsquo;s all! Your Excel Spreadsheet now proudly exhibits a watermark.\nHow to Watermark Excel Spreadsheets – Developer’s Guide Programmers! Are you prepared to insert text or image watermarks into your Excel Spreadsheets? Here is a selection of libraries that can assist you in accomplishing this task. Within this guide, we will explore the process of adding watermarks to Excel Spreadsheets using APIs for different programming languages. Feel free to take your time and select the one that aligns best with your requirements.\n.NET Java Okay, if you\u0026rsquo;re ready to roll, let\u0026rsquo;s jump into the coding world and discover how to programmatically include watermarks in your Excel Spreadsheets. Let\u0026rsquo;s begin!\nWatermarking Excel Spreadsheets using C# For the .NET programmers, here is the quick solution to add watermarks to your Excel spreadsheets using C#. Just follow these easy steps:\nIncorporate the library into your program. Utilize the provided code snippet below to insert watermarks into your Excel Spreadsheets: If you require further guidance, you can also refer to the article on How to Add Text or Image Watermarks to Excel Spreadsheets using C#.\nFor additional resources related to the .NET API, you can access them through the following links:\n.NET API | Documentation | Download\nWatermarking Excel Spreadsheets using Java Java enthusiasts can also insert watermarks into their Excel Spreadsheets. Here\u0026rsquo;s a brief overview of how to go about it:\nConfigure the library within your application. Implement the provided source code to embed a watermark into your Excel Spreadsheet: For a more comprehensive guide, you can refer to the article titled Adding Text or Image Watermarks to Excel Spreadsheets using Java.\nIf you\u0026rsquo;re seeking additional resources related to the Java API, you can locate them here:\nJava API | Documentation | Download\nConclusion Adding watermarks to Excel Spreadsheets is an important way to protect your content. You may opt for the ease of online tools or prefer the programmatic approach using C# and Java, watermarking enhances the security of your spreadsheets. Look into the various techniques explored in this article and pick the one that aligns most effectively with your requirements.\nSee Also Add Watermark to PDF Files\nAdd Watermark to Word Documents\nInsert Watermark to Presentations - PPT/PPTX\nInsert Watermark to Images like (JPG, PNG files) Watermarking Spreadsheets using C#\nWatermarking Spreadsheets using Java\n","permalink":"https://blog.groupdocs.com/watermark/watermark-excel-sheets/","summary":"In this article, we will explore various methods to add watermarks to Excel spreadsheets, both through online tools and programming languages like C# and Java. Whether you’re looking for a quick online solution or a more customized approach, it got you covered.","title":"Watermark Excel Spreadsheets"},{"content":"\rIf you want to make sure your documents are safe and show they belong to you, you can use watermarks. This article will show you an easy way to add watermarks to your Word documents using Java. We\u0026rsquo;ll learn how to add text and image watermarks to Word documents using Java.\nHere are some quick links to the topics we\u0026rsquo;ll cover:\nJava Watermarking API Adding Text Watermarks Adding Image Watermarks Java Watermarking API Today, we\u0026rsquo;ll use GroupDocs.Watermark for Java to help us with adding watermarks to Word documents. This library lets us add, remove, and change watermarks in files like Word documents, presentations, spreadsheets, images, and more. You can learn more about how to use it in its documentation.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-watermark\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Adding Text Watermarks with Java Watermarks for words are like special labels on your document. You can add them to one page or all pages. This is how you can do it:\nLoad your Word document using the Watermarker class. Create a text watermark using the TextWatermark class. Set how it looks by adding things like rotation angle, colors, and more. Attach your text watermark to the Word document. Save the document with the new watermark using the save method. Here\u0026rsquo;s an example of how you can use Java to add a text watermark to a Word document:\nWhen you use this code, you\u0026rsquo;ll see your chosen text on all pages of your Word document.\nAdding Image Watermarks with Java Just like text watermarks, you can also add images to your Word documents. Here\u0026rsquo;s how:\nLoad your Word document using the Watermarker class. Get your logo or image ready using the ImageWatermark class. Customize the watermark image by changing things like alignment and opacity. Decide which page(s) you want your image on. Attach your Image watermark to the Word document. Save the document having the image watermark using the save method. This is how the Java code looks when you want to add an image watermark to a Word document:\nIf you use this code, you\u0026rsquo;ll see your chosen image on the page you want in your Word document.\nGetting a Free License If you want to try this library without any limits, you can get a temporary free license.\nWrapping Up To wrap things up, now you know how to add watermarks to Word documents using Java. We\u0026rsquo;ve learned how to add text as well as images as watermarks on different pages of Word files. If you want to learn more or have questions, you can check the documentation or ask for help on the forum.\nSee Also Add Watermarks to Word Documents Online Watermark Password Protected Documents using Java Add Watermarks to PDF Files using Java Watermark Excel Sheets using Java Add Watermark to Presentation Slides using Java ","permalink":"https://blog.groupdocs.com/watermark/watermark-word-documents-using-java/","summary":"To make sure your documents are safe and show they belong to you, you can use watermarks. This article will show you an easy way to add watermarks to your Word documents using Java. We\u0026rsquo;ll learn how to add text and image watermarks to Word documents using Java..","title":"Watermark Word Documents using Java"},{"content":"\rTo keep your documents safe from being used in the wrong way or to put your own brand label on them, you can use watermarks. This article will show you how to easily add watermarks to your Word documents using C#. We\u0026rsquo;ll learn how to add both text watermarks and image watermarks.\nFollowing are quick links to the covered topics:\nText \u0026amp; Image Watermarking .NET API Adding Text Watermarks Adding Image Watermarks Text \u0026amp; Image Watermarking - .NET API GroupDocs.Watermark showcases .NET API for Watermarking that we will use with C# to work with watermarks in Word documents. It helps us add, remove, and take out watermarks from files like word-processing documents, presentations, spreadsheets, images, and more. You can find out more using its documentation. You can download it using NuGet.\nPM\u0026gt; Install-Package GroupDocs.Watermark Adding Text Watermarks to Word Documents with C# Text watermarks are like writing on your document in a special way. You can put these on every page or just one page. Here\u0026rsquo;s how you can do it:\nLoad the Word document using Watermarker class. Initialize text watermarker by using the TextWatermark class. Set the appearance by adding rotation angle, alignment, opacity, foreground and background colors, etc. Add your text watermark to the Word document. Save your document with the new watermark using a Save method. Here\u0026rsquo;s an example of how you can use C# to add a text watermark to a Word document:\nWhen you follow this code, you\u0026rsquo;ll see your chosen text on every page of the Word document.\nAdding Image Watermarks to Word Documents with C# Just like applying text watermarks, you can also add pictures to your Word documents. Here\u0026rsquo;s how:\nLoad your Word document file using the Watermarker class. Get your logo/image ready to be attached using the ImageWatermark class. Customize the watermark image by adjusting the alignment, rotation, opacity, and other options. Set the page(s) you want your picture on. Add your picture watermark to the loaded Word document. Save your document with the picture watermark using the Save method. This is what the code in C# looks like when you want to add an image watermark to a Word document:\nIf you use this code, you\u0026rsquo;ll see your chosen picture on the page you picked in your Word document.\nGetting a License for Free If you want to try this tool out without any limits, you can get a temporary license for free.\nConclusion To finish up, now you know how to add watermarks to your Word documents using C#. We\u0026rsquo;ve learned how to add text as well as pictures as watermarks on the page(s) of Word file. If you want to know more or have questions, you can check the documentation or ask us on the forum.\nSee Also Add Watermarks to Word Documents Online Watermark Password Protected Documents using C# Add Watermarks to PDF Files using C# Watermark Excel Sheets using C# Add Watermark to Presentation Slides using C# ","permalink":"https://blog.groupdocs.com/watermark/watermark-word-documents-using-csharp/","summary":"To keep your documents safe from being used in the wrong way or to put your own brand label on them, you can use watermarks. This article will show you how to easily add watermarks to your Word documents using C#. We\u0026rsquo;ll learn how to add both text watermarks and image watermarks.","title":"Watermark Word Documents using C#"},{"content":"\rYou know how you sometimes want to make sure your special drawings or papers are safe and real? Well, watermarking is like a secret code, brand code that helps keep important papers safe and shows they\u0026rsquo;re real. In this article, we\u0026rsquo;re going to look at different ways to put these watermarks on Word files. We\u0026rsquo;ll learn how to do it using watermarking tool on the internet. We will also do it prgrammatically using tiny source code using C# and Java languages. So, whether you want a fast fix online or something just for you, we\u0026rsquo;ve got everything explained for you.\nHow to Add Watermark to Word Documents Online When you want to watermarks to your Word documents, it\u0026rsquo;s really convenient to do it using the internet. We\u0026rsquo;ll be using online tool GroupDocs.Watermark App for this.\nJust follow these steps to add watermark stamps on your Word documents online:\nStart by going to the Watermark App website. Place your Word document there by either clicking the Browse button or dragging and dropping it into the reserved spot. Choose what kind of secret stamp you want, whether it\u0026rsquo;s a special word or a picture. Make your secret stamp special by changing things like its appearance, transparency, and location on the document. To add your set watermark, click the \u0026ldquo;Create Watermark\u0026rdquo; button. Now you can get your marked document by clicking the \u0026ldquo;Download\u0026rdquo; option. That\u0026rsquo;s it! Your Word document now proudly carries a watermark, and you did it all online.\nHow to Watermark Word Files – Developer’s Guide Programmers! Ready to add text or image watermarks to your Word documents? Here are some libraries to help you do just that. In this guide, we\u0026rsquo;ll find out how to add watermarks to Word files using APIs for different languages. Take your time and pick the one that fits your needs the best.\n.NET Java Alright, if you\u0026rsquo;re good to go, let\u0026rsquo;s dive into the world of coding and learn how to add watermarks to your Word documents. Let the coding begin!\nWatermarking Word Files using C# For those of you who like having more control when adding watermarks, programming languages like C# have a strong solution. Just follow these easy steps:\nInclude the library into your program. Use the given piece of code below to put watermarks on your Word documents: You can also check out the article about How to Add Text or Image Watermarks to Word documents using C# for more help.\nIf you need more resources for .NET API, you can check these links:\n.NET API | Documentation | Download\nWatermarking Word Files using Java Java enthusiasts also have the opportunity to add watermarks to Word files using code. Here\u0026rsquo;s a sneak peek at how it\u0026rsquo;s done:\nGet and set up the library in your application. Apply the given source code to insert a watermark into your Word file: For a more detailed guide, take a look at the article about Adding Text or Image Watermarks to Word documents using Java.\nIf you\u0026rsquo;re looking for more resources related to the Java API, these links can be helpful:\nJava API | Documentation | Download\nConclusion Adding watermarks to Word documents is an important way to safeguard your content. Whether you opt for the ease of online tools or the personalized choices offered by programming languages like C# and Java, putting in watermarks adds the security to your documents. Take a look at the different techniques discussed in this article and select the one that fits your requirements the best.\nSee Also Insert Watermark to PDF\nInsert Watermark to Excel Spreadsheets\nAdd Watermark to Presentations - PPT/PPTX\nAdd Watermark to Images like (JPG, PNG files) Watermark Documents using C#\nWatermark Documents using Java\n","permalink":"https://blog.groupdocs.com/watermark/watermark-word-documents/","summary":"In this article, we will explore various methods to add watermarks to Word files, both through online tools and programming languages like C# and Java. Whether you’re looking for a quick online solution or a more customized approach, It got you covered.","title":"Watermark Word Documents"},{"content":"\rWatermarking is a crucial technique for protecting your PDF documents and ensuring their authenticity. In this article, we will explore various methods to add watermarks to PDF files, both through online tools and programming languages like C# and Java. Whether you’re looking for a quick online solution or a more customized approach, we’ve got you covered.\nHow to Add Watermark to PDF Online When it comes to adding watermarks to PDF files conveniently, online tools prove to be incredibly handy. Here we will use one such reliable option, which is GroupDocs.Watermark App.\nFollow these steps to watermark your PDF files online:\nNavigate to the Watermark app. Upload your PDF file by using the Browse button or Drag and Drop the PDF file to the designated upload area. Choose the watermark text or image you want to add. Customize watermark settings such as styling, transparency, rotation angle, position, and size. Once satisfied, click “Create Watermark” to apply the watermark. You can now download your watermarked PDF using the Download option. Here is the watermarked PDF as an output of the above steps:\nHow to Watermark PDF Files – Developer’s Guide Hey programmers! let’s add text or image watermarks to your PDF documents. Here, we have multiple libraries to achieve the target. Here we’ll see how to put cool marks on PDF files using different languages. Take your time to explore the available options and select the one that best suits your requirements.\n.NET Java So, if you’re all set, let’s jump to programmatically add watermarks to your PDF documents. Let’s start coding!\nWatermarking PDF Files using C# For those who prefer more control over the watermarking process, programming languages like C# offer a robust solution.\nIntegrate the library into your application. Utilize the provided code snippet below to watermark your PDF documents: Additionally, refer to the article on How to add Text or Image Watermark to PDF Files using C#.\nFor further .NET API resources, you can explore the following links:\n.NET API | Documentation | Download\nWatermarking PDF Files using Java Java enthusiasts can also enjoy the flexibility of watermarking PDF files using code. Here’s a glimpse of how it can be achieved:\nDownload \u0026amp; Configure the library within your application. Use the provided source code to add watermark to PDF file: Refer to the article on How to add Text or Image Watermark to PDF using Java for more in-depth instructions.\nIf you need additional resources for the Java API, you can explore the following links:\nJava API | Documentation | Download\nConclusion Watermarking PDF documents is a valuable practice for protecting your content. Whether you choose the convenience of online tools or the customization options provided by programming languages like C# and Java, adding watermarks enhances document security. Explore the various methods presented in this article and choose the one that best suits your needs.\nSee Also Insert Watermark to Word Documents\nInsert Watermark to Excel Spreadsheets\nPut Watermark on Presentations - PPT/PPTX\nPut Watermark on Images\nWatermark Documents using C#\nWatermark Documents using Java\n","permalink":"https://blog.groupdocs.com/watermark/watermark-pdf-documents/","summary":"In this article, we will explore various methods to add watermarks to PDF files, both through online tools and programming languages like C# and Java. Whether you’re looking for a quick online solution or a more customized approach, It got you covered.","title":"Watermark PDF Documents"},{"content":"Let\u0026rsquo;s learn how to keep our spreadsheet files safe so only the right people can use them. Earlier, we talked about adding text and image watermarks to the Excel spreadsheets to stop anyone from using them in a bad way. Now, we\u0026rsquo;re going to see how to password protect an Excel file using Java. We\u0026rsquo;ll also find out how to change the existing password and finally, how to programmatically remove the password of protected spreadsheets to unprotect Excel files.\nThe following topics are discussed below:\nJava API to Password Protect Excel Files Lock Excel Files by Adding Password Change Spreadsheet Password using Java How to Remove Spreadsheet Password - Unlock Excel Files Java API to Lock and Unlock Excel Files To lock and unlock documents, we will use GroupDocs.Merger for Java. This API allows adding, changing, and removing password security features for the documents within the applications. Along with protecting and unprotecting Excel spreadsheets, the API provides many more features like merging and splitting that are explained in the documentation.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-merger\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;23.8\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Password Protect Excel Files using Java - Lock Spreadsheets Let\u0026rsquo;s add security to the Excel file by adding a password protection and lock spreadsheets. The following steps show how to password protect Excel spreadsheets using Java.\nSet up the password using the AddPasswordOptions class. Load the Excel file (XLS/XLSX) with the Merger class. Lock the file by adding a password using the addPassword method. Preserve the protected spreadsheet using the save method. The following Java code adds the password to the Excel file for security.\nThis is what you\u0026rsquo;ll see when you run the provided code. If you attempt to open the spreadsheet file, the editor or viewer will request the password from you as a way to confirm your authorization.\nUpdate Existing Password of Excel Files using Java Has your password been accidentally revealed? Be more careful in the future. Let\u0026rsquo;s modify it, opting for a new and complex one. The following steps allow you to change the current password of your spreadsheet file within your Java application in Java.\nStart by configuring the LoadOptions with your current password. Then, prepare the Update Password Options using the new password. Load the XLS/XLSX file using the Merger class and the loading options. Now, change the existing password using the updatePassword method. Conclude by saving the file with the updated password via the save method. Here\u0026rsquo;s the code snippet for changing the existing password of the spreadsheet file.\nRemove Password to Unprotect Excel Spreadsheet Files using Java - Unlock XLS/XLSX Once your spreadsheets are secure, you can effortlessly eliminate the password for easy access. The subsequent steps outline the process of unlocking an Excel file by eliminating its password using Java.\nSet up the LoadOptions using the existing password of the file. Load the spreadsheet file utilizing the Merger class along with the loading options. Erase the current password using the removePassword method. Save the unlocked spreadsheet file using the save method. The Java code excerpt below demonstrates how to unlock an Excel file by eliminating its current password. This grants unrestricted access without requiring any authorization.\nConclusion Let\u0026rsquo;s conclude what we learned today. We started with the simple Excel spreadsheet (XLS/XLSX) file and programmatically added password protection using small Java code. Then we changed the existing password of that protected spreadsheet. Lastly, we learned how to remove the password of the protected file to unprotect the Excel spreadsheet. Now you can jump to build your own password protector and password remover application using the Java API.\nTo learn more about GroupDocs.Merger for Java, visit the documentation. For queries, contact us via the forum.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nSee Also Password Protect Excel Files Online Unlock Excel Files Online Watermark Excel Files using Java Protect/Unprotect Word Documents using Java Lock/Unlock PowerPoint Presentations using Java Add \u0026amp; Remove Password Protection of PDF Files using Java ","permalink":"https://blog.groupdocs.com/merger/lock-unlock-excel-files-with-password-using-java/","summary":"Let\u0026rsquo;s learn how to keep our spreadsheet files safe so only the right people can use them. Here, we\u0026rsquo;re going to see how to password protect an Excel file using Java. We\u0026rsquo;ll also find out how to change the existing password and finally, how to programmatically remove the password of protected spreadsheets to unprotect Excel files.","title":"Lock and Unlock Excel Files with Password using Java"},{"content":"Let\u0026rsquo;s learn to secure spreadsheet files from unauthorized access. Previously we discussed adding text and image watermarks to the Excel spreadsheets to avoid any illegal use. In this article, we will see how to password-protect an Excel file using C#. Additionally, we will change the existing password and also learn to remove the password to unlock Excel files.\nThe following topics are discussed below:\n.NET API to Password Protect Excel Files Lock Excel Files by Adding Password Change Spreadsheet Password using C# How to Remove Spreadsheet Password - Unlock Excel Files .NET API to Lock and Unlock Excel Files To lock and unlock documents, we will use GroupDocs.Merger for .NET. This API enables adding, changing, and removing password security features for the documents within the .NET applications. Along with protecting and unprotecting Excel spreadsheets, the API provides many more features like merging and splitting that are mentioned in the documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Merger Password Protect Excel Files using C# - Lock Spreadsheets Let\u0026rsquo;s start by adding protection to the file by locking it with the password. The following steps show how to add password security to the Excel spreadsheets using C#.\nDefine the password using the AddPasswordOptions class. Load the Excel file (XLS/XLSX) using the Merger class. Lock the file by adding a password using the AddPassword method. Save the protected spreadsheet using the Save method. The following C# code adds the password to the Excel file for security.\nHere is the output of the above code. When you try to open the spreadsheet file, the editor or viewer will ask for the password to prove your authority.\nUpdate Existing Password of Excel Files using C# Is your password really exposed? Be more careful next time. Let\u0026rsquo;s quickly change it programmatically with the new and a bit difficult one. The following steps allow you to change the current password of your spreadsheet file within your .NET application in C#.\nFirst, prepare the Loading Options using the current password. Then, prepare the Update Password Options using the new password. Then, load the XLS/XLSX file using the Merger class and the loading options. Now, change the existing password using the UpdatePassword method. Finally, save the locked file with the changed password using the Save method. Here is the code snippet to change the current password of the spreadsheet file.\nRemove Password to Unprotect Excel Spreadsheet Files using C# - Unlock XLS/XLSX If your spreadsheets are now in safe hands, you can remove the password to access these easily. The following steps show how to unlock the Excel file by removing its password using C#.\nPrepare the Loading Options using the file\u0026rsquo;s password. Load the spreadsheet file using the Merger class and the load options. Remove the existing password using the RemovePassword method. Save the unlocked file using the Save method. The following C# code snippet unlocks the Excel file by removing its existing password, hence anyone can access it without authorization.\nConclusion Let\u0026rsquo;s conclude what we learned today. We started with the simple Excel spreadsheet (XLS/XLSX) file and added password protection. Then we changed the existing password of that protected spreadsheet. In the end, we learned how to remove the password of the protected file to unprotect the Excel spreadsheet. Now you can jump to build your own password protector and password remover application using the .NET API.\nTo learn more about GroupDocs.Merger for .NET, visit the documentation. For queries, contact us via the forum.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nSee Also Password Protect Excel Files Online Unlock Excel Files Online Watermark Excel Files using C# Protect/Unprotect Word Documents using C# Lock/Unlock PowerPoint Presentations using C# Add \u0026amp; Remove Password Protection of PDF Files using C# ","permalink":"https://blog.groupdocs.com/merger/lock-unlock-excel-files-with-password-using-csharp/","summary":"Let\u0026rsquo;s learn to secure spreadsheet files from unauthorized access. In this article, we will see how to password protect an excel file using C#. Additionally, we will change the existing password and also learn to remove the password to unlock Excel files.","title":"Lock and Unlock Excel Files with Password using C#"},{"content":"In this article, our focus will be on ensuring the utmost security for your vital documents. Let\u0026rsquo;s begin by safeguarding Excel spreadsheets with passwords online. Following that, we will look into the methods through which developers can programmatically add password protection to lock spreadsheets using C# \u0026amp; Java.\nPassword Protect Excel Spreadsheets To add a password to your files, you can utilize the user-friendly and free Online Password Protect App provided by GroupDocs. Just follow these straightforward steps to load and secure your files:\nDrag and Drop your Excel spreadsheet file into the designated area or simply upload it using the \u0026lsquo;Browse\u0026rsquo; option. Once the upload is complete, enter the desired password you wish to apply to your uploaded spreadsheet. Next, click the \u0026lsquo;Protect\u0026rsquo; button to initiate the password protection process. In just a few seconds, your files will be password-protected and available for download. Why Password Protect Excel Spreadsheets? There are many reasons why it\u0026rsquo;s important to add passwords on sensitive spreadsheet files. Password protecting Excel spreadsheets is essential for but not limited to:\nEnsuring confidentiality of sensitive data. Preventing unauthorized edits and maintaining data integrity. Controlling access when sharing with others. Complying with regulations and safeguarding critical information. How to Password-Protect Spreadsheet Files – Developer’s Guide If you have an interest in coding or developing applications for password-protecting documents, various libraries are at your disposal. Take your time to explore the available options and select the one that best suits your requirements. Once you\u0026rsquo;ve chosen a suitable library, you can proceed to develop an online tool that adds passwords to Excel files, ensuring their security.\n.NET Java C# Way to Add Password to Excel Spreadsheet To password-protect your Excel files using C# with GroupDocs.Merger for .NET, follow these steps:\nIntegrate the library into your application. Utilize the provided code snippet below to secure your documents: For more detailed instructions, you can refer to the article Lock and Unlock Excel Files with Password using C#.\nFor further .NET API resources, you can explore the following links:\n.NET API | Documentation | Download Java Way to Add Password to Excel Spreadsheet If you\u0026rsquo;re a Java programmer and want to lock Excel spreadsheets with a password programmatically, you can follow these steps and use the code snippet provided with GroupDocs.Merger for Java:\nFirst, make sure you download and configure the library in your application. Then, you can use the following code snippet to add a password to any Excel spreadsheet: For more detailed information, you can refer to the article Lock and Unlock Excel Files with Password using Java.\nIf you need additional resources for the Java API, you can explore the following links:\nJava API | Documentation | Download FAQ Can I use the app for other file types? Absolutely! GroupDocs\u0026rsquo; Online Password Protect App is not limited to Excel spreadsheet files only. You can use the app to add password protection to various file types, including but not limited to:\nWord documents (e.g., .doc, .docx) PDF files PowerPoint presentations (e.g., .ppt, .pptx) Text files (e.g., .txt) Images (e.g., .jpg, .png) Archive files (e.g., .zip, .rar) The app is designed to be versatile and accommodating, allowing you to secure a wide range of file formats with passwords for enhanced protection and privacy.\nSee Also Protect Word Documents with Password Password Protect PDF Files Password Protect PowerPoint Presentation Files ","permalink":"https://blog.groupdocs.com/merger/password-protect-excel-spreadsheets/","summary":"In this article, our focus will be on ensuring the utmost security for your vital documents. Let\u0026rsquo;s begin by safeguarding Excel spreadsheets with passwords online. Following that, we will look into the methods through which developers can programmatically add password protection to lock spreadsheets using C# \u0026amp; Java. Continue Reading \u0026hellip;","title":"Password Protect Excel Spreadsheets"},{"content":"When documents are securely safeguarded, the need for protection becomes redundant. In this article, we will explore an effortless method to unlock password-protected Excel spreadsheets by eliminating their passwords. Initially, we will demonstrate an online approach to remove the password from Excel files (XLS/XLSX). Subsequently, we will delve into the programmatic ways developers can unlock protected spreadsheets using C# and Java.\nOnline Password Remover for Excel Spreadsheets Discover the hassle-free method of removing password protection from your Excel spreadsheets through the free Excel Spreadsheet Password Remover Online App, thoughtfully provided by GroupDocs.\nTo unlock your password-protected Excel XLS/XLSX files with ease, follow these straightforward steps:\nDrag and Drop: Effortlessly upload the desired XLS/XLSX file by dragging and dropping it into the designated area. Alternatively, you can opt for the Browse option to upload the file.\nPassword Entry: Once the upload is complete, input the password associated with the protected Excel spreadsheet.\nUnlocking Process: Click on the ‘Unlock‘ button to initiate the unlocking process.\nSwift Access: In a matter of seconds, your documents will be unlocked and made readily available for download.\nIf you\u0026rsquo;re dealing with too many files requiring security removal, a better way is to do it programmatically. Let\u0026rsquo;s look into these alternative options to cater to your needs.\nUnlocking Excel Spreadsheets: A Developer\u0026rsquo;s Guide For developers and app enthusiasts seeking to create tools that unlock password-protected documents like Excel (XLS/XLSX) files, a range of libraries are available for this purpose. To find the perfect fit for your needs, explore the options presented below. Once you\u0026rsquo;ve selected the right library, you can easily develop an online tool that allows users to effortlessly remove passwords from their Excel files, ensuring a trouble-free unlocking experience. So, let\u0026rsquo;s dive into the possibilities!\n.NET Java Unlocking Excel Spreadsheets using C# Let\u0026rsquo;s now see how to unlock Excel spreadsheets by eliminating their passwords with the help of GroupDocs.Merger for .NET using C#:\nStart by adding the .NET library to your application. Use the code snippet below to seamlessly remove passwords from your spreadsheet files: For more detailed instructions, you can refer to the article Lock and Unlock Excel Files with Password using C#.\nMaximize the potential of the following links for .NET API resources:\n.NET API | Documentation | Download\nUnlocking Excel Spreadsheets using Java If you\u0026rsquo;re a Java programmer looking to unlock password-protected Excel spreadsheets effortlessly, the following steps and simple Java code snippet will let do it using GroupDocs.Merger for Java:\nTo begin, ensure you download and set up the library in your application. Utilize the provided Java code below to seamlessly remove passwords from your spreadsheet files: For more detailed information, you can refer to the article Lock and Unlock Excel Files with Password using Java.\nFor further information, here are some helpful links for Java API resources:\nJava API | Documentation | Download\nWith these resources, you\u0026rsquo;ll unlock those Excel spreadsheets without any trouble!\nHappy coding!\nSee Also Unlocking PDF Documents How to Unlock Protected Word Documents Unlocking PowerPoint Presentations ","permalink":"https://blog.groupdocs.com/merger/unlock-excel-spreadsheets-xls-xlsx/","summary":"Let\u0026rsquo;s explore an effortless method to unlock password-protected Excel spreadsheets by eliminating their passwords. Initially, we will demonstrate an online approach to remove the password from Excel files (XLS/XLSX). Subsequently, we will look into the programmatic ways developers can unlock protected spreadsheets using C# and Java. Continue Reading \u0026hellip;","title":"Remove Password from Excel Spreadsheets"},{"content":"When the documents are in safe hands, you may no longer need protection. Today, we will see a simple way to effortlessly unlock password-protected PowerPoint presentations by eliminating the password. First, we will use an online method to remove the password from the PowerPoint (PPT/PPTX) files. Afterward, we will delve into how developers can programmatically unlock protected presentations by simply removing their passwords.\nOnline Password Remover for PowerPoint Presentations You can easily remove password protection from your PowerPoint presentations using the free online application called PowerPoint Presentation Password Remover Online App provided by GroupDocs.\nFollow these simple steps to upload and unlock your password-protected PowerPoint PPT/PPTX files:\nDrag and Drop the desired PPT/PPTX file into the designated area, or alternatively, use the Browse option to upload it. Once the upload is complete, enter the password associated with the protected PowerPoint presentation. Click on the ‘Unlock‘ button to proceed. Within a matter of seconds, your documents will be unlocked and ready for download. If you have a large number of files that require security removal, you better consider doing it programmatically. Let\u0026rsquo;s continue to explore these options.\nUnlocking PowerPoint Presentations: Developer\u0026rsquo;s Guide If you\u0026rsquo;re a developer or just someone who wants to make apps that can unlock password-protected PowerPoint (PPT/PPTX) files, there are multiple libraries out there for this job.\nYou can check out these different choices and see which one fits your needs the best. Once you find the right library, you can create a fine online tool that can makes it super easy for user to remove passwords from their PowerPoint files. This way, they can unlock their presentations without any trouble at all. So go ahead and start exploring those options!\n.NET Java Unlocking PowerPoint Presentations using C# Let me show you how you can unlock PowerPoint presentations by getting rid of its password using C# with the help of GroupDocs.Merger for .NET:\nFirst things first, make sure you have the .NET library added to your application. Now, you can use the below mentioned code to easily remove the password from your presentation files: For more details about adding, update, and removing PowerPoint password, you can check out the article How to Lock \u0026amp; Unlock PowerPoint PPTs with Password using C#. It\u0026rsquo;ll give you some more information on the topic.\nYou can make the most of the following links for .NET API resources:\n.NET API | Documentation | Download\nUnlocking PowerPoint Presentations using Java If you\u0026rsquo;re a Java programmer, I\u0026rsquo;ll show you how to easily unlock password-protected PowerPoint presentations using Java code with the help of GroupDocs.Merger for Java:\nFirst, make sure to download and set up the library in your application. Then, you can use the provided Java code below to effortlessly remove passwords from your PPT files: For more detailed information, check out the article How to Lock and Unlock PowerPoint PPTs with Password using Java. It will give you a piece of more information about password protection.\nAlso, here are some useful links for Java API resources:\nJava API | Documentation | Download\nHope this helps you unlock those PowerPoint presentations without any trouble! Happy coding!\nSee Also Unlocking PDF Documents Unlocking Word Documents Locking PowerPoint Presentations with Password Lock \u0026amp; Unlock PowerPoint PPTs with Password using C# Add \u0026amp; Remove Password from PowerPoint PPTs using Java ","permalink":"https://blog.groupdocs.com/merger/unlock-powerpoint-ppt-pptx/","summary":"When the documents are in safe hands, you may no longer need protection. Today, we will see a simple way to effortlessly unlock password-protected PowerPoint presentations by eliminating the password. First, we will use an online method to remove the password from the PowerPoint (PPT/PPTX) files. Afterward, we will delve into how developers can programmatically unlock protected presentations by simply removing their passwords. Continue Reading \u0026hellip;","title":"Remove Password from PowerPoint Presentations"},{"content":"It appears that you no longer require protection, and your documents are now securely stored. Today, you will learn how to unlock password-protected Word documents effortlessly by eliminating the password. Initially, we will remove the password of Word document (DOC/DOCX file format) using an online method. Subsequently, we will explore how developers can unlock these Word documents by removing their passwords programmatically.\nUnlock Word Documents Online To eliminate password protection from your Word documents, you can take advantage of the free Word Document Password Remover Online App offered by GroupDocs.\nSimply follow these easy steps to upload and unlock your Word documents:\nDrag and drop the desired Word document into the designated area, or alternatively, upload it using the Browse option. After the upload is complete, input the associated password of the uploaded protected Word document. Proceed by clicking on the ‘Unlock‘ button. Within a few seconds, your documents will be unlocked and available for download. If you have a large number of documents to unlock their security, you better do it programmatically. Let\u0026rsquo;s move on to explore these options.\nUnlocking Word Documents: Developer\u0026rsquo;s Guide For developers or individuals seeking to develop applications capable of unlocking password-protected Word documents, there are numerous libraries available for this purpose.\nTake the opportunity to explore these choices and identify the platform that best aligns with your specific requirements. Once you have selected the suitable library, you can create an online tool that effortlessly removes passwords from Word documents, enabling users to unlock their documents with ease.\n.NET Java Unlocking Word Documents using C# Allow me to demonstrate how you can unlock a Word document by eliminating its password using C# with GroupDocs.Merger for .NET:\nTo begin, ensure that you include the .NET library in your application. Then, utilize the provided code below to easily remove the password from your Word documents: For more comprehensive information, you can refer to the article How to Lock \u0026amp; Unlock Word Files with Password using C#.\nMake the most of the following links for .NET API resources:\n.NET API | Documentation | Download\nUnlocking Word Documents using Java For Java programmers, you can effortlessly unlock password-protected Word documents programmatically by following these steps and utilizing the Java code snippet provided below, using GroupDocs.Merger for Java:\nBegin by downloading and configuring the library in your application. Next, make use of the provided source code to easily remove passwords from your Word files: For more comprehensive insights, you can refer to the article on How to Lock and Unlock Word Files with Password using Java.\nTake advantage of the following links for Java API resources:\nJava API | Documentation | Download\nSee Also Unlocking PDF Documents Unlocking PowerPoint Presentations Locking Word Documents with Password Lock \u0026amp; Unlock Word Files with Password using C# Add \u0026amp; Remove Password from Word Files using Java ","permalink":"https://blog.groupdocs.com/merger/unlock-word-documents-online/","summary":"Today, you will see how to unlock password-protected Word documents effortlessly by eliminating the password. Initially, we will remove the password of Word document using an online method. Subsequently, we will explore how developers can programmatically unlock Word documents by removing their passwords. Continue Reading \u0026hellip;","title":"How to Remove Password from Word Documents"},{"content":"It seems that you don\u0026rsquo;t need protection anymore. I hope your documents are now in safe hands. Today, you will see how you can open password-protected PDF files by removing the password for easy and quick access next time. First, we will remove the PDF file password online. Afterward, we will also look at how developers can remove passwords to unlock PDF documents programmatically.\nUnlock PDF Online To remove password protection from PDF documents, you can make use of the free PDF Password Remover Online App by GroupDocs.\nJust follow these straightforward steps to load and unlock the PDF files:\nDrag and drop the PDF document to the designated area or upload it using the Browse option. Once the upload is complete, please enter the password of your protected PDF file. Next, click on the ‘Unlock‘ button to start the password remover. Within few seconds, your files will be unlocked and ready to download. Unlocking PDF Files: Developer\u0026rsquo;s Guide If you are a developer or someone looking to create apps that can unlock password-protected PDF files, there are several libraries at your disposal. Take the time to explore these options and find the most suitable platform that meets your requirements. Once you have chosen the appropriate library, you can develop an online tool capable of removing passwords from PDF files, allowing users to unlock them effortlessly.\n.NET Java Unlocking PDF Files using C# Let me show you how to unlock a PDF file by removing its password using C# with GroupDocs.Merger for .NET:\nFirst, make sure to include the library in your application. Next, use the provided code to easily remove the password from your PDF documents: If you want more details, you can find helpful information in the article How to Lock \u0026amp; Unlock PDF Files with Password using C#.\nExplore the following links for .NET API resources:\n.NET API | Documentation | Download\nUnlocking PDF Files using Java If you\u0026rsquo;re a Java programmer, you can follow these steps along with the Java code snippet below to unlock password-protected PDF documents programmatically using GroupDocs.Merger for Java:\nFirst, download and configure the library in your application. Next, utilize the given source code to easily remove passwords from your PDF files: For more detailed insights, you can refer to the article on How to Lock and Unlock PDF Files with Password using Java.\nExplore the following links for Java API resources:\nJava API | Documentation | Download\nSee Also Unlocking Word Documents Unlocking PowerPoint Presentations Lock PDF Files with Password to Protect Lock and Unlock PDF Files with Password using C# Add and Remove Password from PDF Files using Java ","permalink":"https://blog.groupdocs.com/merger/unlock-pdf-files-online/","summary":"It seems that you don\u0026rsquo;t need protection anymore. I hope your documents are now in safe hands. Here, you will see how you can open password-protected PDF files by removing the password for easy and quick access next time. First, we will remove the PDF file password online. Afterward, we will also look at how developers can remove passwords to unlock PDF documents programmatically. Continue Reading \u0026hellip;","title":"How to Remove Password from PDF Documents"},{"content":"In this article, we will talk about how you can keep your important documents super safe. You get to choose different security levels for them, like using watermarks, encrypting files, or putting passwords on them. So, let\u0026rsquo;s get into how you can password-protect your PowerPoint presentations online. Afterward, we will also look at how developers can add password to lock presentations programmatically.\nPassword Protect PowerPoint Presentations If you wanna put a password on your PPT files, you can try this simple free Online Password Protect App by GroupDocs. Just follow these easy steps to load and keep your files safe:\nFirst, drag and drop your PowerPoint presentation into the special area or you can simply click on the \u0026lsquo;Browse\u0026rsquo; option to upload it. After the upload is done, type in the password you want for your PPT file. Then, hit the \u0026lsquo;Protect\u0026rsquo; button to start the process of password protection. Wait just a few seconds, and that\u0026rsquo;s it! Your files will be all password-protected and ready for you to download. If you wanna share the protected file with others, you can send them the download link. Why Password Protect PowerPoint Presentations? There are many reasons why it\u0026rsquo;s important to put passwords on PPT files. When we password protect PowerPoint presentations, we keep them safe and private. It stops unauthorized people from getting in and making changes. By doing this, we also prevent data breaches and follow security rules.\nOverall, adding passwords to PowerPoint presentations is an easy and effective way to make sure important documents stay secure and private. Only the right people with the password can get in and make any changes.\nHow to Password-Protect Presentation Files – Developer’s Guide If you\u0026rsquo;re into coding or want to make apps that protect documents with passwords, there are different libraries you can use. You can take your time and check out the options available to find the one that fits your needs. Once you pick a library, you can create an online tool that adds passwords to PowerPoint files to keep them secure.\n.NET Java C# Way to Add Password to PowerPoint Presentation If you wanna lock your PowerPoint document by adding a password using C#, here\u0026rsquo;s how you can do it with GroupDocs.Merger for .NET:\nFirst, make sure you add the library to your application. Then, you can use the code below to protect your documents: For more detailed instructions, you can refer to the article How to Lock \u0026amp; Unlock PPT Files with Password using C#.\nIf you need additional resources for .NET API, you can explore the following links:\n.NET API Documentation Download Java Way to Add Password to PowerPoint Presentation If you\u0026rsquo;re a Java programmer and want to lock PowerPoint presentations with a password programmatically, you can follow these steps and use the code snippet provided with GroupDocs.Merger for Java:\nFirst, make sure you download and configure the library in your application. Then, you can use the following code snippet to add a password to any PPT file: For more detailed information, you can refer to the article on How to Password-Protect PPT Files using Java.\nIf you need additional resources for the Java API, you can explore the following links:\nJava API Documentation Download See Also Lock Word Documents with Password to Protect Password Protect PDF Files Password Protection of PPT Files using CSharp Lock and Unlock PPT Files with Password using Java ","permalink":"https://blog.groupdocs.com/merger/password-protect-powerpoint-presentations/","summary":"You can give different security levels to your important documents. You can use watermarks, encrypt files, or make them password-protected. In this article, we’ll learn how to add a password to PowerPoint documents to protect them. We’ll also see how to programmatically lock the same PPT files. Continue Reading \u0026hellip;","title":"Password Protect PowerPoint Presentations"},{"content":"You can give different security levels to your important documents. You can use watermarks, encrypt files, or make them password-protected. In this article, we’ll learn how to add a password to PDF documents to protect them. We’ll also see how to programmatically lock the same PDF files.\nPassword Protect PDF Documents To password-protect PDF files, you can make use of the free Online Password Protect App by GroupDocs. Just follow these straightforward steps to load and secure your files:\nDrag and drop the PDF document to the designated area or upload it using the Browse option. Once the upload is complete, please enter the desired password for your PDF file. Next, click on the ‘Protect‘ button to initiate password protection. After clicking ‘Protect,’ within a matter of seconds, your files will be successfully password-protected and ready for download. You can simply copy the download link and share it with others to provide access to the protected file. How to Password-Protect PDF Files – Developer’s Guide If you are a developer or have an interest in creating apps that can protect documents with passwords, there are various libraries available for you to choose from. Take your time to explore the options and select the platform that best fits your requirements. With the chosen library, you can develop an online tool capable of adding passwords to lock PDF files.\n.NET Java C# Way to Add Password to PDF Here’s how you can add a password to a PDF file to lock your document using C# with GroupDocs.Merger for .NET:\nAdd the library to your application. Use the following code to protect the documents: You can gain further insight from the article How to Lock \u0026amp; Unlock PDF Files with Password using C#.\nExplore the following links for .NET API resources:\n.NET API | Documentation | Download\nJava Way to Add Password to PDF Java programmers can use the following steps and the below-mentioned Java code snippet to programmatically lock PDF documents with a password using GroupDocs.Merger for Java:\nDownload \u0026amp; Configure the Library within your application. Use the provided source code to add a password to any PDF file: For more information, refer to the article on How to Password-Protect PDF Files using Java.\nExplore the following links for Java API resources:\nJava API | Documentation | Download\nSee Also Lock Word Documents with Password to Protect Add Password to Lock PowerPoint Presentations Lock and Unlock PDF Files with Password using C# Password Protection of PDF Files in Java ","permalink":"https://blog.groupdocs.com/merger/password-protect-pdf-files-online/","summary":"You can give different security levels to your important documents. You can use watermarks, encrypt files, or make them password-protected. In this article, we’ll learn how to add a password to PDF documents to protect them. We’ll also see how to programmatically lock the same PDF files. Continue Reading \u0026hellip;","title":"Password Protect PDF Online"},{"content":"You have the option to choose different levels of security for your important documents. You can use watermarks, encrypt files, or add passwords to protect them. In this article, we will explain how you can password protect Word documents and lock them programmatically.\nPassword Protect Word Documents To add a password to your Word files, you can utilize the free Online Password Protect App offered by GroupDocs. Follow these simple steps to load and secure your files:\nDrag and drop the Word document into the designated area or use the Browse option to upload it. Once the upload is finished, enter the desired password for your Word file. Click on the \u0026lsquo;Protect\u0026rsquo; button to begin the password protection process. Within seconds, your files will be successfully password-protected and ready for download. You can share the download link with others to grant access to the protected file. Why Password Protect Word Documents ? There are several reasons why it\u0026rsquo;s important to password protect Word files. Password protecting Word documents is crucial for maintaining confidentiality, data security, privacy, and compliance. It ensures that sensitive information remains private, prevents unauthorized access and editing, safeguards against data breaches, and helps meet security regulations and standards.\nOverall, password protecting Word documents is a simple yet effective way to enhance the security and privacy of your important documents, ensuring that only authorized individuals can access and modify them.\nHow to Password-Protect Word Files – Developer’s Guide If you\u0026rsquo;re a developer or interested in creating password protection apps for documents, there are multiple libraries available as per your requirement. Take your time to explore the available options and choose the platform that suits your needs. Once you\u0026rsquo;ve selected a library, you can develop an online tool that effectively adds passwords to secure Word files.\n.NET Java C# Way to Add Password to Word Document Here’s how you can add a password to a Word file to lock your document using C# with GroupDocs.Merger for .NET:\nAdd the library to your application. Use the following code to protect the documents: You can gain further insight from the article How to Lock \u0026amp; Unlock Word Files with Password using C#.\nExplore the following links for .NET API resources:\n.NET API | Documentation | Download\nJava Way to Add Password to Word Document Java programmers can use the following steps and the below-mentioned code snippet to programmatically lock Word documents with a password using GroupDocs.Merger for Java:\nDownload \u0026amp; Configure the Library within your application. Use the provided source code to add a password to any Word file: For more information, refer to the article on How to Password-Protect Word Files using Java.\nExplore the following links for Java API resources:\nJava API | Documentation | Download\nSee Also Add Password to Lock PDF Files Lock PowerPoint Presentations with Password to Protect Password Protection of Word Files using CSharp Lock and Unlock Word Files with Password using Java ","permalink":"https://blog.groupdocs.com/merger/password-protect-word-document-online/","summary":"You can give different security levels to your important documents. You can use watermarks, encrypt files, or make them password-protected. In this article, we’ll learn how to add a password to Word documents to protect them. We’ll also see how to programmatically lock the same Word files. Continue Reading \u0026hellip;","title":"Password Protect Word Document Online"},{"content":"When you have information spread across different documents, sometimes in different file types, you might need to merge everything together into one PDF file. In this article, you’ll learn how to merge multiple documents online, whether they’re the same type or not. You’ll also find out how to do this programmatically.\nMerging Documents to PDF – Free \u0026amp; Online To combine multiple files into PDF format, you can use the free online Merger App by GroupDocs. All you need to do is follow these simple steps for loading and joinings:\nDrag and drop your two or more files (having the same or different file format) to the designated area or upload it using the Browse option. After the upload, you can arrange the sequence of uploaded files by simply dragging the file(s). Click Merge Now. In a matter of seconds, your files will be merged and available for Download. You can also share the download link to any email address. How to Merge Files into PDF – Developer’s Guide This part is for people who like coding and want to make apps that can merge documents. If that’s you, there are different libraries you can choose from. Take your time to explore the options and pick the platform that suits your needs. With it, you can create an online tool that combines multiple documents into one PDF in different ways.\n.NET Java C# Way to Combine Documents to PDF Here’s how you can merge two or more documents into one PDF using C# with GroupDocs.Merger for .NET:\nAdd the library to your application. Use the following code to combine the documents: You can gain further insight from the article Combine Different File Types into One Document using C#.\nExplore the following links for .NET API resources:\n.NET API | Documentation | Download\nJava Way to Combine Documents to PDF Java programmers can use the steps and the below-mentioned code snippet to join two or more files into PDF using GroupDocs.Merger for Java:\nDownload \u0026amp; Configure the Library within your application. Use the provided source code to combine multiple files: For more information, refer to the article on Combine Different File Types into One Document using Java.\nExplore the following links for Java API resources:\nJava API | Documentation | Download\nFAQs Is it Safe to Merge Files with GroupDocs Document Merger? Don’t worry, when you merge files using GroupDocs Document Merger, the download link for your joined PDF file will be only for you. Your uploaded files will be deleted after 24 hours, and the download link will stop working after that time. Nobody else can access your files. So, it’s totally safe and secure. Enjoy Merging.\nWhat Browser Should I Use to Merge Files into PDF? You have the option to use any up-to-date browser such as Google Chrome, Microsoft Edge, Firefox, Opera, or Safari to combine files into PDF.\nSee Also Scan QR Code Online Scan Barcode Online Combine Different File Types into One Document using C# Java Way to Combine Different File Types into One ","permalink":"https://blog.groupdocs.com/merger/merge-to-pdf-online/","summary":"When you have information spread across different documents, sometimes in different file types, you might need to merge everything together into one PDF file. In this article, you’ll learn how to merge multiple documents online, whether they’re the same type or not. You’ll also find out how to do this programmatically. Continue Reading \u0026hellip;","title":"Merge to PDF Online"},{"content":"Sometimes, you have different information in lots of files or presentations, and you have to put it all together in one file. This article will guide you how to merge two or more PowerPoint files online. It will also show you how to programmatically combine slides from different presentations using a few lines of code.\nMerging PowerPoint Presentations – Free \u0026amp; Online If you want to put different presentations together, you can use a Free Online PPT Merger by GroupDocs. It is quite easy to use, just follow these steps:\nFirst, drag and drop your PPT/PPTX files onto the special area or upload the files from your computer. Once your files are uploaded, you can change the order they will be merged. Then, click the Merge Now button. After just a few seconds, your merged file will be ready to download. If you want, you can also share the download link through email. A Guide for Developers: Merging PowerPoint Slides This part is for developers and people who want to make apps that merge PowerPoint presentations and slides. If that\u0026rsquo;s what you\u0026rsquo;re into, you can pick from different standalone libraries.\nIt\u0026rsquo;s a good idea to check out the options and choose the platform that suits your needs for creating an online tool that can combine PowerPoint documents in different ways.\n.NET Java How to Merge PowerPoint Documents using C# If you want to combine multiple PowerPoint documents using C#, you can follow these steps using GroupDocs.Merger for .NET:\nFirst, make sure you integrate the library into your application. Then, use the code snippet provided below to merge the PPT/PPTX files: You can further learn about Merging Presentations using C#.\nExplore the following links for .NET API resources:\n.NET API | Documentation | Download\nHow to Merge PowerPoint Documents using Java Java developers can follow these steps and use the code snippet below to merge multiple PowerPoint presentation files using GroupDocs.Merger for Java:\nDownload and Configure the library in your application. Then, use the provided source code to combine the PPT/PPTX files: If you need more details on joining PowerPoint files with Java, you can refer to the article How to Combine PowerPoint Files with Java.\nExplore the following links for Java API resources:\nJava API | Documentation | Download\nFAQs How safe is it to merge presentations using this Online Presentation Merging Tool? Yes, it is safe to merge files using GroupDocs Presentation Merger. The download link for the merged file will be exclusively accessible to you. Additionally, the uploaded files will be deleted after 24 hours, and the download link will expire after this time period.\nHow quick is this online document merger? It is free, fast and efficient, providing merging functionality within seconds.\nSee Also Join Word Files Online Combine Multiple Excel Sheets and Files Online How to Join PowerPoint Presentations using C# Combine PowerPoint PPT/PPTX Files in Multiple Ways using Java ","permalink":"https://blog.groupdocs.com/merger/merge-powerpoint-ppt-pptx-files-online/","summary":"Sometimes, you have different information in lots of files or presentations, and you have to put it all together in one file. This article will guide you how to merge two or more PowerPoint files online. It will also show you how to programmatically combine slides from different presentations using a few lines of code. Continue Reading \u0026hellip;","title":"Merge PowerPoint Files Online"},{"content":"Sometimes, you might have data in lots of different documents, and you need to put it all together into one file. This article will show you how to merge two or more Word documents online. It will also give you an idea of how to combine multiple documents programmatically.\nMerging Word Documents – Free \u0026amp; Online To combine multiple Word documents, you can use the Free Online Word Documents Merger by GroupDocs. All you need to do is follow these simple steps for loading and joining:\nDrag and drop your two or more Word files to the designated area or upload it using the Browse option. After the upload, you can arrange the sequence of uploaded files. Click Merge Now. In a matter of seconds, your files will be merged and available for Download. You can also share the download link to any email address. How to Merge Word Documents – Developer’s Guide This section is for developers and for someone having an interest in creating document merger applications for Word files. If this is the case, you have the option to choose from various standalone libraries.\nIt is recommended to carefully explore the available options and select the platform that aligns with your requirements for developing an online tool capable of combining Word documents in different ways.\n.NET Java C# Way to Combine Word Documents Here’s how to combine two or more Word documents using C# with GroupDocs.Merger for .NET:\nIntegrate the library into your application. Utilize the following code to merge the Word files: You can gain further insight into developing Word Files Merger using C#.\n.NET API | Documentation | Download\nJava Way to Combine Word Documents Java programmers can use the steps and the below-mentioned code snippet to join two or more Word files using GroupDocs.Merger for Java:\nDownload \u0026amp; Configure the Library within your application. Use the provided source code to combine multiple Word files: For more information, refer to the article on How to Combine Word Files with Java.\nJava API | Documentation | Download\nFAQs How safe is it to merge files using GroupDocs Word Document Merger? The download link for the combined file will be exclusively accessible to you. The uploaded files will be deleted after 24 hours and the download link will stop working after this time period.\nHow quick is this online document merging tool? This free online tool is quick and efficient and provides merging within seconds.\nSee Also Join Multiple Excel Spreadsheet Files Online Combine PowerPoint Presentations Online How to Join Word Documents using C# Combine Word Files in Multiple Ways using Java ","permalink":"https://blog.groupdocs.com/merger/merge-word-files-online/","summary":"Sometimes, you might have data in lots of different documents, and you need to put it all together into one file. This article will show you how to merge two or more Word documents online. It will also give you an idea of how to combine multiple documents programmatically. Continue Reading \u0026hellip;","title":"Merge Word Documents Online"},{"content":"Looking to streamline your data management? Discover how to effortlessly merge Excel files online and combine two or more Excel sheets into one cohesive workbook. This guide introduces a powerful online spreadsheet merger application and also provides developers with programmatic solutions using .NET and Java APIs. Simplify your Excel files merging process and enhance productivity today!\nMerge Excel Files Online - Easy and Free! To merge multiple excel sheets into one workbook, you can use a Free Online Spreadsheet Merging Tool by GroupDocs. Just follow these simple steps:\nDrag and drop your Excel files or click on the Browse option to upload them. Arrange the order of the files if you want. Click Merge Now. After a few seconds, your files will be merged, and you can download the combined file. You can also share the download link with others using email. A Guide for Developers: Merging Excel Files This part is for people who are developers or interested in making apps that can combine Excel spreadsheets. If you\u0026rsquo;re in this category, you can choose from different libraries made just for this purpose.\nIt\u0026rsquo;s a good idea to check out the available options and pick the one that suits your needs for creating an online tool that can merge Excel files and select specific sheets in different ways.\nHere are some platform options you can consider:\n.NET Java How to Merge Excel Files in C# If you want to combine two or more Excel files using C#, you can follow these steps using the GroupDocs.Merger for .NET:\nFirst, include the library in your application. Then, use the provided code to merge the Excel files. For more detailed instructions, you can read the article on How to Combine Multiple Excel Files and Specific Sheets using C#.\n.NET API | Documentation | Download\nHow to Merge Excel Files in Java If you are a Java programmer and want to combine two or more Excel files, you can follow these steps using GroupDocs.Merger for Java:\nFirst, download and configure the library in your application. Then, use the provided source code to merge multiple Excel files. For more detailed instructions, you can refer to the article on How to Merge Excel Files with Java.\nJava API | Documentation | Download\nFrequently Asked Questions (FAQs) Is it safe to merge files using GroupDocs Excel File Merger? Yes, it is safe to merge files using GroupDocs Excel File Merger. The download link for the combined spreadsheet will only be accessible to you. Moreover, the uploaded files will be deleted after 24 hours, and the download link will stop working after this time period.\nHow fast is this online Spreadsheet merging tool? This free online tool is designed to be quick and efficient, providing merging capabilities within seconds.\nSee Also Join Multiple Word Files Online Combine PowerPoint Files Online How to Merge Excel Files using C# Combining Excel Files in Various Ways using Java ","permalink":"https://blog.groupdocs.com/merger/merge-excel-files-online/","summary":"Often, you have information in many different Excel files, and you want to put it all into one file. This article will teach you how to merge two or more Excel files online. It will also show you how to combine multiple spreadsheets programmatically. Continue Reading \u0026hellip;","title":"How to Merge Excel Files \u0026 Spreadsheets Online"},{"content":"In certain scenarios, when you encounter data spread across numerous documents, there may be a need to merge all the documents or specific sections of them into a single file. This article aims to offer instructions on programmatically merging multiple Word documents into one using Java. Furthermore, we will explore how to combine specific pages from two or more Word files within the Java application.\nWord Documents Merger – Java API In this article, I will use GroupDocs.Merger for Java for merging multiple Word documents into a single file. It offers the convenience of combining documents with varying formats or identical formats into a unified file. Additionally, the API provides a comprehensive set of features, including document splitting, trimming, page swapping, moving, removal, rotation, and arrangement.\nDownload and Configure Get the document merger library from the downloads section. For Maven-based Java applications, add the following configuration within pom.xml.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-merger\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; In case you are interested in the API features, you can go through its documentation, and also my favorite area, which is the running examples at GitHub.\nHow to Merge Multiple Word Documents with Java To effortlessly merge multiple Word documents into a single file using Java, follow these straightforward steps:\nStart by loading the source Word document with the help of the Merger class. Utilize the Join method to merge the document. Continue merging any additional Word documents using the same Join method. Lastly, save the merged document as the output by using the Save method. Take a look at this Java source code example, which illustrates the process of merging two or more Word documents into one file:\nBy following these steps and utilizing the provided Java code, you can effortlessly combine multiple Word documents into a single file.\nMerge Selective Pages of Word files into One with Java In certain cases, you may have a requirement to merge specific pages from multiple Word documents, rather than merging the entire documents. Fortunately, the API provides several methods to accomplish this task of selectively combining pages from different Word documents into a single file.\nFollow these steps to merge selective pages from multiple Word documents using Java:\nStart by loading the source document using the Merger class. Configure the merging options using the JoinOptions class. Merge the document by invoking the Join method. Repeat the process by adjusting the Join Options for each document as necessary. Finally, save the merged document using the Save method. Refer to the following Java source code example, which illustrates the process of merging selective pages from Word documents into a single Word file:\nBy following these steps and utilizing the provided Java code, you can merge selective pages from multiple Word documents into a single Word file.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To summarize, we have discussed the steps involved in merging multiple Word documents into a single file using Java within the application. Additionally, we have explored the process of combining specific pages from multiple Word files.\nTo deepen your knowledge of GroupDocs.Merger for Java, I recommend referring to the documentation. If you have any questions or need assistance, feel free to reach out to us through our forum. We are here to support you.\nSee Also Combine Two or More Word Files Online Split PDF Files using Java Join Multiple File Types into a Single Document using Java Merge PowerPoint Presentations \u0026amp; Slides using Java Merge Excel Files and Spreadsheets using Java Combine documents of the same format in Java ","permalink":"https://blog.groupdocs.com/merger/merge-word-files-using-java/","summary":"Java way to merge two or more Word documents into a single file. Combine only the selective pages of multiple Word files within your application. Continue Reading \u0026hellip;","title":"Merge Word Documents using Java"},{"content":"There are situations where you have data distributed across multiple documents and the requirement arises to combine all the documents/information or specific sections of them into a single file. In order to converge the data, this article will provide guidance on how to programmatically merge multiple Word documents into one using C#. Additionally, we will see how to combine only the selective pages of two or more Word files within the .NET application.\nWord Merger – .NET API In this article, I will utilize GroupDocs.Merger for .NET. It enables you to combine multiple Word documents into a single file. With this .NET API, I can effortlessly join documents of different or identical formats into one combined file. Moreover, the API provides a range of functionalities, such as splitting and trimming documents, as well as the ability to swap, move, remove, rotate, or arrange pages.\nIn case you are interested in the API features, you can go through its documentation, and also my favorite area, which is the running examples at GitHub.\nTo acquire the necessary DLLs or MSI installer, you can access the downloads section. Alternatively, you can install the API directly into your .NET application through NuGet.\nPM\u0026gt; Install-Package GroupDocs.Merger How to Merge Multiple Word Documents with C# Merging Word documents into a single file is made simple with just a few lines of code. Follow these steps to combine two or more Word documents into one file using C#:\nBegin by loading the source Word document using the Merger class. Join the document to merge using the Join method. Keep merging any additional Word document(s) using the same Join method. Finally, save the merged document as output using the Save method. Here’s an example of C# source code that demonstrates how to merge two or more Word documents into one file:\nBy following these steps and utilizing the provided C# code, you can effortlessly combine multiple Word documents into a single file.\nMerge Selective Pages of Word files into One in C# There are instances where you may not want to merge the complete document. Instead, you may only wish to select the specific pages from one document and combine them with selected pages from another document, and so on. Fortunately, the API offers various methods to merge selective pages from multiple Word documents into a single file.\nHere are the steps to combine selective pages from multiple Word documents using C#:\nBegin by loading the source document using the Merger class. Set the merging options using the JoinOptions class. Merge the document by invoking the Join method. Continuously combine documents by adjusting the Join Options for each document as needed. Finally, save the merged document using the Save method. Take a look at the following source code, which demonstrates how to merge selective pages from Word documents into a single Word file using C#:\nBy following these steps and utilizing the provided C# code, you can merge selective pages from multiple Word documents into a single Word file.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion In conclusion, we have covered the process of merging two or more Word documents into a single file using C# within a .NET application. Furthermore, we explored the method of combining specific pages from multiple Word files.\nTo further enhance your understanding of GroupDocs.Merger for .NET, I encourage you to refer to the documentation. If you have any questions or concerns, please don’t hesitate to reach out to us through our forum. We are here to assist you.\nSee Also Join Multiple Word Files Online Split PDF Files using C# Join Multiple File Types into a Single Document using C# Merge PowerPoint Presentations \u0026amp; Slides using C# Merge Excel Files and Spreadsheets using C# Combine documents of the same format in C# ","permalink":"https://blog.groupdocs.com/merger/merge-word-files-using-csharp/","summary":"C# way to merge two or more Word documents into a single file. Combine only the selective pages of multiple Word files within your .NET application. Continue Reading \u0026hellip;","title":"Merge Word Documents using C#"},{"content":"A QR code, also known as a Quick Response code, is a type of 2D barcode that contains machine-readable information. It can be scanned using a QR code reader or a smartphone. Nowadays, QR codes are widely used for purposes such as product information, marketing, mobile payments, and access control. Today, in this article, we will see scanning QR code images online and using a camera. Additionally, we will explore how to scan QR codes programmatically.\nFree Online QR Code Scanner To scan QR codes online, you can use the free online scanner by GroupDocs. All you need to do is follow these simple steps for scanning and decoding:\nDrag and drop your QR code image to the designated area or upload it. After the upload, the QR code file will be decoded, and the resulting information will be shown. You have the option to copy the scan result for your use. Additionally, you can copy the URL of the scan result to save it for later reference. Scan QR Code Online using Camera When using mobile devices, taking photos with the built-in camera is a convenient option. To scan QR codes using the camera, simply follow these steps:\nChange the scanning source to Camera. Direct your camera towards the QR code and press the Take a Picture button. You can choose to copy the scan result for further use. Additionally, you have the option to copy the URL of the scan result and save it for later usage. QR Code Scanning – Developer’s Guide Are you someone involved in software development or someone with an interest in creating your own QR code scanner? If so, you have the option to choose from various standalone libraries. It is recommended to carefully explore the available options and select the platform that aligns with your requirements for developing an online tool capable of reading or scanning QR codes.\nQR Code Scanning with C# .NET QR Code Scanning with Java Scan QR Code with C# using .NET Here’s how to scan QR codes with C# using GroupDocs.Parser for .NET:\nIntegrate the library into your application. Utilize the following code to scan the QR code: You can gain further insight into developing QR Code Scanner using C#.\nScan QR Code with Java Java developers can use the steps and the below-mentioned code snippet to read QR codes with Java using GroupDocs.Parser for Java:\nSet up and download the library in your application. Use the provided source code to scan the QR code image: For more information, refer to the article on how to scan QR codes with Java.\nFAQs How to Scan QR Code if is not an image file? It may seem strange or different to us, but the API or tool can handle many different types of documents for scanning. These include PDFs, word-processing documents, presentations, and different image formats.\nHow quick is this online scanning tool? This free online tool is quick and efficient and provides scanning within seconds.\nSee Also Scan Barcode Images Online Scan QR Code using C# QR Code Scanning using Java ","permalink":"https://blog.groupdocs.com/parser/scan-qr-code-online/","summary":"Scan QR codes online. Scan QR code images and scan using the camera. We will also discuss how to programmatically scan QR codes using C# \u0026amp; Java. Continue Reading \u0026hellip;","title":"Scan QR Code Online – Image \u0026 Camera"},{"content":"Today, we will cover the topic of barcode scanning, which involves the utilization of machine-readable optical representations of data. Barcodes typically consist of parallel lines and numbers, and they serve the purpose of uniquely identifying products and facilitating processes such as inventory management and point-of-sale transactions. We will look into scanning barcode images online and utilizing a camera for this purpose. Additionally, we will explore how you can scan barcodes using different programming languages.\nFree Online Barcode Scanner For scanning barcodes online, you can use the free online scanner. Just follow the simple steps to scan \u0026amp; decode.\nDrag and drop your barcode image to the assigned area or upload it. Once uploaded, the barcode file will be decoded and the result will be displayed. You have the option to copy the scanning result. You can also copy the URL of the scanning result and use it later. Scan Barcode Online using Camera From mobile devices, it is easier to take photos using its camera. In order to scan the barcodes using the camera, you just have to point your camera to the barcode.\nSwitch the scanning source to Camera. Point the camera towards the barcode and just press Take a Picture. You have the option to copy the scanning result. You can also copy the URL of the scanning result and use it later. Barcode Scanning – Developer’s Guide Are you a developer or have some interest in creating your own barcode scanner? If yes, you can select among the standalone libraries. Take the time to explore the available choices and determine the platform that best meets your needs for developing an online tool to read or scan barcodes.\nBarcode Scanning with C# .NET Barcode Scanning with Java Scan Barcode with C# using .NET Here’s how to scan barcodes with C# using GroupDocs.Parser for .NET:\nIntegrate the library into your application. Utilize the following code to scan the barcode: You can gain further insight into developing Barcode Scanner using C#.\nScan Barcode with Java Java developers can use the steps and the below-mentioned code snippet to read barcodes with Java using GroupDocs.Parser for Java:\nSet up and download the library in your application. Use the provided source code to scan the barcode image: For more information, refer to the article on how to scan barcodes with Java.\nFAQs How to Scan Barcode if is not an image file? It looks strange/different to us but not to the API or tool. It supports various document formats for scanning; that include PDF, Word processing documents, Presentations, and various image formats.\nHow quick is this online scanning tool? This free online tool is quick and efficient and provides scanning within seconds.\nSee Also Scan QR Code Images Online Scan Barcode using C# Barcode Scanning using Java ","permalink":"https://blog.groupdocs.com/parser/scan-barcode-online/","summary":"Scan barcodes online. Scan barcode images and scan using the camera. We will also discuss how to programmatically scan barcodes using C# \u0026amp; Java. Continue Reading \u0026hellip;","title":"Scan Barcode Online – Image \u0026 Camera"},{"content":"A barcode is like a special code that machines can read. It normally has lines and numbers that help identify products, like keeping track of inventory and making sales. In this article, we will talk about how to use Java to scan barcodes within the application.\nJava API for Barcode Scanning The GroupDocs.Parser for Java API is a useful tool for developers to extract information from various document types such as PDFs, Word files, and Excel spreadsheets. It allows you to extract text, pictures, QR Codes, barcodes, and structured content from documents. I will use this API to scan barcodes from the image within the application using a simple Java code snippet.\nTo get started, you can download the JAR file from the downloads section. For your Maven-based applications, use the following configurations:\n\u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-parser\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;23.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; How to Scan Barcodes with Java If you think scanning barcodes is difficult, let’s try to change your mind. Just follow these steps to read a barcode image with Java:\nUse the Parser class to load the barcode image. Get the barcode(s) from the loaded image. Extract the encoded information from the barcode using the getValue method. Take a look at the following Java source code example to see how to scan a barcode image within your application.\nGet your Full License for a Limited Time You can obtain a temporary license, free of charge, to explore the barcode scanner and other features of the API without any limitations during evaluation.\nConclusion In conclusion, you have discovered a straightforward method to scan barcodes from images using Java. With this knowledge, you can create your own Barcode Reader or even develop an online barcode scanning application.\nFor further learning, you can explore the following valuable resources:\nBarcode Scanning Java API Documentation API Reference Free Support Code Samples See Also Barcode Scanning using C# Scan Barcode Images Online QR Codes Scanning with Java Generate Barcodes using Java Generate QR Codes using Java ","permalink":"https://blog.groupdocs.com/parser/scan-barcode-using-java/","summary":"How to scan barcodes using Java within the application. Java example that reads barcode from an image that will help you build an online barcode scanner. Continue Reading \u0026hellip;","title":"Scan Barcode using Java"},{"content":"A barcode is a machine-readable optical representation of data, consisting of parallel lines and numbers, mostly used to uniquely identify products and streamline processes like inventory management and point-of-sale transactions. In this article, we will discuss how to programmatically scan barcodes using C# with a .NET application.\nBarcode Scanner .NET API GroupDocs.Parser for C# API provides developers with the capability to extract data from diverse document formats like PDF, Word, Excel, and more. With its extensive functionality, it facilitates easy parsing of text, metadata, images, barcodes, and structured content. In this article, we will explore how to utilize this API to scan barcodes from images within a .NET application using C#.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Parser How to Scan Barcode using C# If you are one of those who still believe that scanning barcodes is a complex task, these next lines will clear up your misconception. Follow these steps to read a barcode image:\nUtilize the Parser class to load the barcode image. Obtain the barcode(s) from the loaded image. Extract the encoded data from the barcode using the Value property. The following C# source code demonstrates how to scan a barcode image within a .NET application using C#.\nGet a Free License You can get a free temporary license to analyze the barcode scanner and other features of the API without any evaluation limitations.\nConclusion To conclude, you have learned the simple way to scan barcodes from the image using C#. From this learning, you can develop your own Barcode Reader or simply create an online barcode scanner application.\nFor more learning, you can visit the following useful material:\nBarcode Scanning .NET API Documentation API Reference Free Support Code Samples See Also Scan QR Codes with C# Barcode Scanning with Java Scan Barcode Images Online Generate Barcode using C# Generate QR Code using C# ","permalink":"https://blog.groupdocs.com/parser/scan-barcode-using-csharp/","summary":"How to scan barcodes using C# within a .NET application. C# example that reads barcode from an image that will help you build an online barcode scanner. Continue Reading \u0026hellip;","title":"Scan Barcode using C#"},{"content":"QR code (Quick Response code) is actually a 2D barcode that contains information that can be easily read and scanned by a QR Code reader and smartphone. Nowadays, QR Codes are being used in product information \u0026amp; marketing, mobile payments, access control, etc. In this article, we will discuss how to programmatically scan QR code using C# within a .NET application.\nQR Code Scanner .NET API GroupDocs.Parser for C# API is a solution that allows developers to extract information from various document formats, including PDF, Word, Excel, and many others. It offers a straightforward interface and comprehensive features, enabling effortless parsing of text, metadata, images, barcodes, and structured content from documents. In this article, I will use it to scan QR Codes from images within a .NET application using C#.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Parser How to Scan QR Code using C# The following few lines will compel you to change your mind about the misconception that scanning QR Code is a difficult task. Here are the steps that show how to read a QR code image:\nLoad the QR Code image using the Parser class. Get the QR Code(s) of the loaded image. Extract the enclosed message from the QR Code using the Value property. The following C# source code scans the QR code image with the .NET application using C#:\nGet a Free License You can get a free temporary license to analyze the QR scanner and other features of the API without any evaluation limitations.\nConclusion Today, you have just learned the simple way to scan QR Code from the image using C#. From this learning, you can develop your QR code Reader or simply create an online QR Code scanner application.\nFor more learning, you can visit the following useful material:\nQR Code Scanner .NET API | Documentation\nAPI Reference | Free Support | Code Samples\nSee Also QR Code Scanning with Java Scan QR Code Image Online Scan Barcodes with C# Generate QR Code using C# Generate Barcode using C# ","permalink":"https://blog.groupdocs.com/parser/scan-qr-code-using-csharp/","summary":"How to scan QR Code using C# within .NET application. C# example that reads QR Code from an image that will help you build an online QR scanner. Continue Reading \u0026hellip;","title":"Scan QR Code using C#"},{"content":"A QR code is a type of barcode that can contain different information in it. You can use a QR code reader on your smartphone to scan it and read the information. QR codes are used in many different ways, like showing product details, making payments with your phone, and access control. In this article, we’ll talk about how to use Java to scan QR codes programmatically.\nJava API for QR Code Scanning GroupDocs.Parser for Java API is a tool that helps developers extract information from different types of documents like PDFs, Word files, and Excel spreadsheets. With it, you can extract text, pictures, barcodes, and other structured content from documents. Now let’s move on and scan QR codes from images in your application using a very small piece of Java code.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-parser\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;23.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; How to Scan QR Code using Java These simple steps will help you realize that scanning a QR code is not as difficult as you may think. Take a look at the following instructions on how to read a QR code image:\nLoad the QR Code image using the Parser class. Get the QR Code(s) of the loaded image. Extract the enclosed message from the QR Code using the getValue method. The following Java code scans the QR code image within the application:\nGet a Free License You can get a free temporary license to analyze the QR scanner and other features of the API without any evaluation limitations.\nConclusion Now that you have acquired knowledge on how to easily scan QR codes from images using Java, you can use this newfound skill to create your own QR code reader or even develop an online QR code scanning application. Let’s see what you can do with the endless possibilities.\nFor more learning, you can visit the following useful material:\nQR Code Scanner .NET API Documentation API Reference Free Support Code Samples See Also Scan QR Code using C#\nOnline Scan QR Code Image\nBarcode Scanning using Java\nGenerate QR Code using Java\nGenerate Barcode using Java\n","permalink":"https://blog.groupdocs.com/parser/scan-qr-code-using-java/","summary":"How to scan QR codes using Java within the application. Java example that reads QR Code from an image that will help you build an online QR scanner. Continue Reading \u0026hellip;","title":"Scan QR Code using Java"},{"content":"\rHave you ever played a game called “Spot the Difference”? It’s where you have to find the differences between two pictures that look almost identical. Well, you may be familiar to compare two images online using image comparison tools? It’s really easy and I’ll show you how to do it!\nSelect Online Image Comparison Tool Upload the Images to Compare View Comparison Result Download the Result Step 1: Find an Online Image Comparison Tool The first thing you need to do is find an online image comparison tool. This article focuses on the online image comparison tool which is powered by GroupDocs.Comparison.\nStep 2: Upload the Images You Want to Compare Once you have access to the online image comparison tool, you just need to upload the two images you want to compare. To do this, simply drag \u0026amp; drop or click to upload the source and target images. Hit COMPARE NOW.\nStep 3: View the Results Once the image analyzing process is finished, you will be able to view the results. The tool will show you the results with the summary.\nStep 4: Save the Results If you want to save the results of the comparison, you can do so by clicking on the download button. This will allow you to save the comparison file, which you can then share or use.\nUsing C# to Compare Images You can also create your own image comparison tool using C#. In order to use C# to compare images, you will need to follow the following steps and integrate the below-mentioned simple code snippet within your application:\nIntegrate the library into your application. Utilize the following code to load the files and compare: // Compare JPG, PNG, GIF, BMP, WebP images using .NET Image Comparison API in C# using (Comparer comparer = new Comparer(\u0026#34;path/soureImage.jpg\u0026#34;)) { CompareOptions options = new CompareOptions(); options.GenerateSummaryPage = false; // To get the difference summary, set it \u0026#39;true\u0026#39; comparer.Add(\u0026#34;path/targetImage.jpg\u0026#34;); comparer.Compare(\u0026#34;path/comparisonResultImage.jpg\u0026#34;, options); } For more details, you can visit the documentation of GroupDocs.Comparison for .NET or follow the related article that highlights Spot the Differences by Image Comparison using C#.\nUsing Java to Compare Images In order to compare images within the Java application, you can use the following steps and the code sample:\nSet up and download the library in your application. Use the code provided to load and compare Excel files: // Compare two Images and highlight the differences in Java Comparer comparer = new Comparer(\u0026#34;image-a.jpg\u0026#34;) comparer.add(\u0026#34;image-b.jpg\u0026#34;); comparer.compare(\u0026#34;result-Image.jpg\u0026#34;); // This will return the path of the resultant image. For more information, refer to the documentation of GroupDocs.Comparison for Java or follow the related article that highlights Spot the Differences \u0026amp; Image Comparison using Java.\nConclusion In conclusion, comparing two images online is a fun and easy way to find the differences between two pictures. With the help of an online image comparison tool or a programming language like C# or Java, you can easily compare images and highlight any differences. So, give it a try and see what else you can discover!\nSee Also Excel Spreadsheets Comparison Word Documents Comparison PDF Files Comparison ","permalink":"https://blog.groupdocs.com/comparison/compare-images-online/","summary":"Quick upload and compare images easily with this free online image comparison tool to get the comparison result with summary. Drag, Drop, Compare. That\u0026rsquo;s it. If you are interested in comparing your images, Continue Reading \u0026hellip;","title":"Spot the Difference – Compare Images Online"},{"content":"\rWhy Compare Excel Sheets? There are many reasons why you might want to compare two Excel spreadsheets. Here are a few possible scenarios:\nSpotting changes: If you have two versions of a spreadsheet, you might want to compare data in them to see what are the changes between the two.\nVerifying data accuracy: If you have two spreadsheets that are supposed to contain the same information, you might want to compare them to ensure that they do, in fact, match.\nMerging data: If you have two spreadsheets that contain different pieces of information, you might want to compare them in order to merge the data into a single spreadsheet.\nOverall, comparing two Excel spreadsheets can help you ensure that your data is accurate, up-to-date, and free of errors.\nCompare Two Excel Sheets Online To compare two Excel files and highlight the differences, use this free online comparison tool with ease. Just follow these simple steps:\nDrag and drop or upload your Excel file in the designated Source document area. Repeat the step for the designated Target document area. Click on COMPARE NOW to get the Excel files comparison result. How to Compare Excel Files Programmatically? If you’re a developer, you can choose standalone libraries or cloud-based APIs to compare the spreadsheets accordingly or to develop your Excel Spreadsheets Comparison Tool. Take a look at the options to choose the best that suits you.\nC# Java Cloud Comparing Excel Files using C# Here are the steps for how to compare two Excel spreadsheets and highlight differences using C#:\nIntegrate the library into your application. Utilize the following code to load the files and compare: /* * Compare Two Excel Spreadsheets and Highlight Changes using C# */ using (Comparer comparer = new Comparer(\u0026#34;path/spreadsheet.xlsx\u0026#34;)) { comparer.Add(\u0026#34;path/spreadsheet-ver2.xlsx\u0026#34;); comparer.Compare(\u0026#34;path/comparison-result.xlsx\u0026#34;); } For more details, you can visit the documentation of GroupDocs.Comparison for .NET:\nComparing Excel Files using Java Java developers can use the following steps and code sample below to compare two Excel files using Java:\nSet up and download the library in your application. Use the code provided to load and compare Excel files: /* * Compare Two Excel Spreadsheets and Highlight Changes in Java */ try (Comparer comparer = new Comparer(\u0026#34;path/spreadsheet-ver1.xlsx\u0026#34;)) { comparer.add(\u0026#34;path/spreadsheet-ver2.xlsx\u0026#34;); final Path resultPath = comparer.compare(\u0026#34;path/comparison-result.xlsx\u0026#34;); } For further information, you can visit the documentation of GroupDocs.Comparison for Java:\nCloud API to Compare Spreadsheets For the comparison of Excel files within your cloud-based applications, visit the product and documentation pages. Choose the most suitable API according to your requirements.\nSumming Up Speedy Excel Spreadsheet Comparison Our free online Spreadsheet Comparison Tool is quick and efficient, providing comparison in mere seconds with regular spreadsheet documents.\nSafe Document Comparison Your files are kept safe and secure during the comparison process. To ensure privacy, the tool automatically deletes the files after 24 hours.\nCreate Your Own Spreadsheet Comparison Solution Build your own online Document Comparison Tool using either our standalone libraries or Cloud APIs.\nSee Also Compare PDF Files Online Compare Word Documents Online Spot the Difference in Images Online How to Compare PDF Documents - A Comprehensive Guide Compare Protected Word Documents using Java ","permalink":"https://blog.groupdocs.com/comparison/compare-excel-spreadsheets-online/","summary":"Quick upload and compare Excel files easily with this free online Excel spreadsheet comparison tool to get the comparison result with summary. Drag, Drop, Compare. That\u0026rsquo;s it. If you are interested in comparing your spreadsheets programmatically, Continue Reading \u0026hellip;","title":"Compare Excel Spreadsheets"},{"content":"\rCompare Word Documents Online To compare two Word documents and highlight the differences, use this free online comparison tool with ease. Just follow these simple steps:\nDrag and drop or upload your Word file in the designated Source document area. Repeat the step for the designated Target document area. Click on COMPARE NOW to get the Word file comparison result. Why Compare Word Files? There are several reasons why we may need to compare Word files:\nVersion Control: When multiple users are working on a document, it is important to keep track of changes made to the document. Comparing Word files can help identify the differences between two versions of the same document. This allows collaborators to see what changes were made.\nSave Time: Manually checking for differences in multiple Word files can be very time-consuming. Using automated tools to compare Word documents can save time and effort, and help to improve overall efficiency.\nOverall, comparing Word files can help you ensure accuracy, compliance, and efficiency in a wide range of applications.\nHow to Compare Word Files Programmatically? If you’re a developer, you can decide between using standalone libraries or cloud-based APIs to create your Word Documents Comparison Tool. Take a look at both options and determine which platform is the most suitable for your requirements.\nC# Java Cloud Compare Word Files using C# Here are the steps for how to compare two Word documents and highlight differences using C#:\nIntegrate the library into your application. Utilize the following code to load the files and compare: You can visit The Comprehensive Guide to Compare Word Documents using C# to gain further insight into any of the following:\nHow to Compare Two or more Word files using C# and Highlight Differences. Comparing Password-Protected Word Documents using C#. Compare Word Documents – Accept or Reject the Identified Changes. Compare Word Files using Java Java developers can use the following steps and code sample below to compare two Word documents using Java:\nSet up and download the library in your application. Use the code provided to load and compare Word files: For further information, you can visit the following topics:\nCompare Multiple Word Files using Java – Accept or Reject Identified Changes Compare Password-Protected Word Documents using Java Cloud API to Compare Word Files For the comparison of Word files within your cloud-based applications, visit the product and documentation pages. Choose the most suitable API according to your requirements.\nSumming Up Speedy Word Documents Comparison Our free online Word Comparison Tool is quick and efficient, providing comparison in mere seconds with regular Word documents.\nSafe Document Comparison Your files are kept safe and secure during the comparison process. To ensure privacy, the tool automatically deletes the files after 24 hours.\nCreate Your Own Word Document Comparison Solution Build your own online Document Comparison Tool using either our standalone libraries or Cloud APIs.\nSee Also Word Comparison in .NET: Revision Track vs Highlight Modes Compare PDF Files Online Compare Excel Spreadsheets Online Spot the Difference in Images Online How to Compare PDF Documents - A Comprehensive Guide Compare Protected Word Documents using Java ","permalink":"https://blog.groupdocs.com/comparison/compare-word-documents-online/","summary":"Quick upload and compare Word files easily with this free online Word document comparison tool to get the comparison result with summary. Drag, Drop, Compare. That\u0026rsquo;s it.","title":"Compare Word Documents"},{"content":"\rCompare PDF Documents Online To compare your PDF files, use this free online comparison tool with ease. Just follow these simple steps:\nDrag and drop or upload your PDF file in the designated Source document area. Repeat the step for the designated Target document area. Click on COMPARE NOW to get the PDF file comparison result. Why Compare PDF Files? There are several reasons why we might need to compare PDF files:\nCheck for Differences: When dealing with multiple versions of a document, it’s important to compare them to ensure that all the changes have been incorporated and nothing is missed. Comparing PDF files can help identify even the slightest differences, such as changes in text, images, or formatting. Save Time: Manually checking for differences in multiple PDF files can be very time-consuming. Using automated tools to compare PDF files can save time and effort, and help to improve overall efficiency. Overall, comparing PDF files can help you ensure accuracy, compliance, and efficiency in a wide range of applications.\nHow to Compare PDF Files Programmatically? As a developer, you have the choice of developing a PDF Comparison Tool either using standalone libraries or cloud-based APIs. Explore the options and find the best platform that suits your needs to build from scratch.\nC# Java Cloud Compare PDF Files using C# Here are the steps for how to compare PDF files using C#:\nIntegrate the library into your application. Utilize the following code to load the files and compare it: //Compare Two PDF Documents and Hightlight Changes using C# using (Comparer comparer = new Comparer(@\u0026#34;path/document-ver1.pdf\u0026#34;)) { comparer.Add(@\u0026#34;path/document-ver2.pdf\u0026#34;); comparer.Compare(@\u0026#34;path/compared-result.pdf\u0026#34;); } You can gain further insight into how to compare PDF files using C#.\nCompare PDF Files using Java Java developers can use the following steps and code sample below to compare PDF files using Java:\nSet up and download the library in your application. Use the code provided to load and compare PDF files: // Compare Two PDF Documents and Highlight Changes using Java Comparer comparer = new Comparer(\u0026#34;path/document-ver1.pdf\u0026#34;); comparer.add(\u0026#34;path/document-ver2.pdf\u0026#34;); comparer.compare(\u0026#34;path/comparison-result.pdf\u0026#34;); For more information, refer to how to compare PDF files using Java.\nCloud API to Compare PDF Files For the comparison of PDF files within your cloud-based applications, Visit the product and documentation pages for more details. Choose the most suitable API for your requirements.\nSumming Up Speedy PDF Comparison Our free online PDF Comparison tool is quick and efficient, providing comparison in mere seconds with regular PDF documents.\nSafe PDF Comparison Process Your files are kept safe and secure during the comparison process. To ensure privacy, the tool automatically deletes the files after 24 hours.\nCreate Your Online PDF Comparison Solution Build your own online comparison tool using either our standalone libraries or Cloud APIs.\nRelated Article Online Image Comparison How to Compare Word Files Online Compare Excel Spreadsheets Online Compare PDF Files using Java - A Comprehensive Guide See Also PDF Comparison in .NET: Inline, Side‑by‑Side, and Interleaved Modes Comparing Protected Word Documents using Java How to Compare CSV Files using C# ","permalink":"https://blog.groupdocs.com/comparison/compare-pdf-files-online/","summary":"Quick upload and compare PDF files easily with this free online PDF comparison tool to get the comparison result with summary. Drag, Drop, Compare. That\u0026rsquo;s it.","title":"Compare PDF Documents - Online"},{"content":"Comparing PDF files can be a tedious task, especially when you need to identify differences between multiple documents. Fortunately, GroupDocs.Comparison for Java API provides you the power to compare PDF files programmatically. In this article, we’ll show you step-by-step how to compare two PDF files using Java code, including how to handle password-protected PDFs. We’ll also demonstrate how to compare more than two PDF files and how to either accept or reject any of the identified changes. So if you’re ready to streamline your PDF comparison workflow, read on!\nThe following topics are discussed here:\nPDF Comparison Java API Compare Two PDF Documents Accept or Reject Identified Changes within PDF Documents Compare Password Protected PDF Files Compare More than Two PDF Documents If you are interested in Comparing PDF Files Online, visit the Online PDF Comparison Tool that is powered by GroupDocs.\nJava API to Compare PDF Files In this article, I will utilize the GroupDocs.Comparison for Java API to compare PDF documents, as this API enables comparison among multiple PDF documents. Additionally, it allows the comparison of various other files of the same document format within Java applications.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;groupdocs-artifacts-repository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifacts Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-comparison\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;23.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Compare PDF Documents using Java To identify differences (additions, deletions) among multiple copies of a PDF document, you can compare these files. Once you’ve compared the PDF content, you can generate a new document that highlights all identified changes. The following steps demonstrate how to use Java to compare two PDF documents and highlight any differences.\nLoad the first PDF document using Comparer class. Add the second file to Comparer using add method. Compare both the PDF files and get the changes summary by calling compare method. The following Java code snippet shows how to compare PDF documents and highlight the changes in the resultant document.\nAccept or Reject Identified Changes of PDF Files using Java Quite similar to the functionality of “track changes,” it is also possible to accept or reject each detected change in PDF documents through programming. The steps below demonstrate how to compare and then accept or reject the changes that have been identified within the PDF documents.\nLoad the source and target PDF files using Comparer class. Compare the loaded documents using compare method. Get the identified changes using getChanges method. Now traverse the changes and set the appropriate ComparisonAction. Select Accept to adopt the change Select Reject to deny the change. Call the applyChanges method to get the resultant document with the accepted changes. The following code snippet compares two PDF documents and then accepts an identified change and then rejects another one using Java.\nCompare Password Protected PDF Documents using Java It is possible to compare password-protected files by providing their passwords while loading the documents. The following steps demonstrate how to compare the content of password-protected PDF documents using Java:\nPrepare loading options for both the source and target documents, providing the necessary passwords. Load the source document using the Comparer class. Add the target document to the Comparer, using the prepared loading options. Obtain a summary of the differences by calling the compare method. The Java example below compares two password-protected PDF files and highlights the identified differences in a separate document.\nCompare More than Two PDF Files using Java In the same manner, it is also possible to compare more than two documents for differences. The following steps show how to compare multiple PDF documents and highlight the identified changes:\nLoad the first PDF file using the Comparer class. Utilize the add method to add any additional documents to be compared to the Comparer. Compare all subsequent PDF files using the compare method and obtain the changes and summary of differences. The following example shows how to compare multiple PDF files in Java and get the changes in the resultant document.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion In summary, we covered comparing two or more PDF files using Java, highlighting the differences, and programmatically accepting or rejecting identified changes. Additionally, we explored how to compare password-protected PDF documents within Java applications.\nNumerous other customizations are in your control to manage comparison outcomes. You can adjust comparison sensitivity, choose to display only the summary page, ignore gaps, and more.\nBuild Your Own PDF Comparison Application Here are some important links that will help you in building your own document comparison application.\nDocumentation | API Reference | Supported File Formats\nRunning Examples – GitHub | Free Support Forum | Release Notes\nSee Also CSV Files Comparison in Java Word Documents Comparison using Java Compare Documents with Java Difference Library Image Comparison using Java \u0026amp; Spot the Differences ","permalink":"https://blog.groupdocs.com/comparison/guide-to-compare-pdf-documents-using-java/","summary":"Comparing PDF files can be a tedious task, especially when you need to identify differences between multiple documents. Fortunately, GroupDocs.Comparison for Java API provides you the power to compare PDF files programmatically. In this article, we’ll show you step-by-step how to compare two PDF files using Java code, including how to handle password-protected PDFs. We’ll also demonstrate how to compare more than two PDF files and how to either accept or reject any of the identified changes.","title":"How to Compare PDF Files using Java - A Comprehensive Guide"},{"content":"We talked before about how to compare two password-protected PDF documents in Java. But what if we want to compare more than just two files? Well, today we\u0026rsquo;re going to learn how to do just that! We\u0026rsquo;ll also learn how to accept or reject changes in the documents to get the final version we want.\nThe recent short series of articles already covered the Java way how to:\nPerform a basic comparison of two PDF documents Compare password-protected PDF documents If you are interested in Comparing PDF Files Online, visit the Online PDF Comparison Tool that is powered by GroupDocs.\nBy the end of this article, you will also have a good understanding of how to:\nComparison of more than two PDF files in Java Accept or reject identified changes within PDF files in Java Before we get started, let\u0026rsquo;s make sure our development environment is ready to go.\nJava Library to Compare Two or More PDF Files I believe you are familiar with the document comparison Java API by now. I will be using the same GroupDocs.Comparison for Java to move ahead. You can download or quickly check the development environment of your maven-based applications using the following configurations:\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;groupdocs-artifacts-repository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifacts Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-comparison\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;23.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Now, let\u0026rsquo;s move on to the real stuff!\nCompare More than Two PDF Files using Java Comparing multiple files is pretty similar to comparing just two. All we have to do is add more files to the Comparer and then hit compare like we normally would. Here are the steps to compare multiple PDF documents and highlight the identified changes:\nLoad the first PDF file using the Comparer class. Utilize the add method to add any additional documents to be compared to the Comparer. Compare all subsequent PDF files using the compare method and obtain the changes and summary of differences. The following example shows how to compare multiple PDF files in Java and get the changes in the resultant document.\nCompare and Accept or Reject Identified Changes of PDF Files using Java Quite similar to the functionality of the “track changes” feature in Microsoft Word, it is also possible to accept or reject each detected change in PDF documents through programming. The steps below demonstrate how to compare and then accept or reject the changes that have been identified within the PDF documents.\nLoad the source and target PDF files using the Comparer class. Compare the loaded documents using compare method. Get the identified changes using the getChanges method. Now traverse the changes and set the appropriate ComparisonAction. Select Accept to adopt the change Select Reject to deny the change. Call the applyChanges method to get the resultant document with the accepted changes. The following code snippet compares two PDF documents and then accepts an identified change and then rejects another one using Java.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations to compare multiple PDF documents.\nBuild Your Own PDF Comparison Application Here are some important links that will help you in building your own document comparison application.\nFeatures | Documentation | API Reference | Running Examples – GitHub | Free Support Forum | Release Notes\nRelated Articles Compare Protected PDF Files using Java Compare PDF Files using Java - A Comprehensive Guide See Also Image Comparison using Java \u0026amp; Spot the Differences Word Documents Comparison using Java Compare CSV Files using Java ","permalink":"https://blog.groupdocs.com/comparison/compare-multiple-pdf-documents-using-java/","summary":"What if we want to compare more than just two files? Well, today we\u0026rsquo;re going to learn how to do just that! We\u0026rsquo;ll also learn how to accept or reject changes in the documents to get the final version we want.","title":"Compare Multiple PDF Documents in Java – Accept or Reject Changes"},{"content":"As Java programmer, we often need to compare two versions of the same/similar document. We have already seen the basic comparison of two PDF files, but what if these files are encrypted or have password protection? This article explores how to compare two password-protected PDF documents in Java.\nIf you are interested in Comparing PDF Files Online, visit the Online PDF Comparison Tool that is powered by GroupDocs.\nJava API to Compare Protected PDF Files In this article, I will utilize the GroupDocs.Comparison for Java API to compare PDF documents, as this API enables comparison among multiple PDF documents. Additionally, it allows the comparison of various other files of the same document format within Java applications.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;groupdocs-artifacts-repository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifacts Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-comparison\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;23.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Compare Password Protected PDF Documents using Java It is easily possible to compare password-protected files by providing their passwords while loading the documents. The following steps demonstrate how to compare the content of password-protected PDF documents using Java:\nPrepare loading options for both the source and target documents, providing the necessary passwords. Load the source document using the Comparer class. Add the target document to the Comparer, using the prepared loading options. Obtain a summary of the differences by calling the compare method. The Java example below compares two password-protected PDF files and highlights the identified differences in a separate document.\nHere is the output after comparing two protected PDF files using the above code:\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion So to wrap up, we learned how to compare two PDF files that have passwords in Java. This lets you see what\u0026rsquo;s been added and what\u0026rsquo;s deleted.\nIn another article, we\u0026rsquo;ll talk about how to compare more than two PDFs in Java and decide if you want to keep the changes.\nYou can also try making your own Java program to compare documents online! Check out the documentation and API references to learn more about the tools you need.\nIt\u0026rsquo;s easy to see examples of how to do this on GitHub. And if you have any questions, just ask us on the forum!\nRelated Articles How to Compare two PDF Files using Java Compare PDF Files using Java - A Comprehensive Guide See Also Compare CSV Files in Java Compare Word Documents using Java Image Comparison using Java \u0026amp; Spot the Differences ","permalink":"https://blog.groupdocs.com/comparison/compare-protected-pdf-documents-using-java/","summary":"As Java programmer, we often need to compare two versions of the same/similar document. We have already seen the basic comparison of two PDF files, but what if these files are encrypted or have password protection? This article explores how to compare two password-protected PDF documents in Java.","title":"Compare Password Protected PDF Documents in Java"},{"content":"As PDF is among the most widely used digital formats, it’s often required to compare two versions of the same document. This article outlines how to compare two PDF documents for differences using Java. Very soon, we will also discuss how to compare password-protected PDF files, compare multiple PDF documents and accept or reject changes by providing examples of comparing the PDF files using Java.\nIf you are interested in Comparing PDF Files Online, visit the Online PDF Comparison Tool that is powered by GroupDocs.\nJava API to Compare PDF Files In this article, I will utilize the GroupDocs.Comparison for Java API to compare two PDF documents. Additionally, it allows the comparison of various other files of the same document format within Java applications.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;groupdocs-artifacts-repository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifacts Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-comparison\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;23.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Compare PDF Documents using Java To detect any differences between the two PDF versions, it is possible to compare them and identify any added, deleted, or altered content. By doing so, a new document is generated, which displays all the detected changes.\nThe following steps describe the process for comparing any two PDF files and highlighting any variations.\nLoad the first PDF document using Comparer class. Add the second file to Comparer using add method. Compare both the PDF files and get the changes summary by calling compare method. The following Java code snippet shows how to compare PDF documents and highlight the changes in the resultant document.\nHere is the output after comparing two PDF files using the above code:\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion In summary, we have acquired knowledge on a straightforward approach to comparing two PDF files using Java. The resulting output is a summary of any added or removed content. In next articles, we will explore additional methods for comparing secured PDF documents, comparing multiple PDF files and accepting or rejecting detected changes.\nWhy not try creating your own Java-based document comparison application? Additional insights into APIs can be gained by referring to the documentation and API reference.\nTo easily access examples, GitHub repository is a great resource. If you have any questions, feel free to contact us via the forum.\nRelated Article How to Compare PDF Files using Java - A Comprehensive Guide See Also PDF Comparison in .NET: Inline, Side‑by‑Side, and Interleaved Modes Compare CSV Files in Java Compare Word Documents using Java Compare Images using Java \u0026amp; Spot the Differences ","permalink":"https://blog.groupdocs.com/comparison/compare-pdf-documents-using-java/","summary":"As PDF is among the most widely used digital formats, it’s often required to compare two versions of the same document. This article outlines how to compare two PDF documents and then highlight any differences using Java. Additionally, we will cover how to compare password-protected PDF files, accept or reject changes, and provide examples of comparing more than two PDF files using Java","title":"Compare PDF Documents using Java"},{"content":"\rAs we hava already discussed in a .NET article, XML is a structured data storage and transportation markup language commonly used in programming. In order to properly view or share XML data, it is often necessary to convert it into other document formats such as PDF, JPG, PNG, or HTML. This article provides a basic approach to viewing XML files using simple Java code.\nXML File Viewer – Java API The GroupDocs.Viewer for Java is a document viewing API that allows the conversion of multiple file formats, including XML to PDF, HTML, and image formats like JPG and PNG within Java applications. For demonstration purposes, I will be utilizing Java to convert an XML file to PDF format using this API.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;groupdocs-artifacts-repository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifacts Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-viewer\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;23.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; XML File Viewer using Java The API can convert XML files into various formats including PDF, JPG, PNG, and HTML. However, this guide will only focus on how to convert XML files to PDF format. The following steps outline the process of rendering XML files to PDF:\nLoad the XML file using the Viewer class. Utilize the PDF View Options to specify the desired output path and settings. Invoke the View() method with the set options to obtain the XML file in PDF output. The Java source code below demonstrates how to convert an XML file to PDF format.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations to build an online XML file viewer.\nConclusion In summary, you have learned the fundamentals of viewing XML files within a Java application using the API. In upcoming discussions, we will cover how to convert XML files into JPG, PNG, and HTML formats.\nTo gain more knowledge about the API and build your own XML viewer, refer to the links provided below.\nBuild Your Own XML Viewer Java Application Here are some important links that will help you in building your own XML viewer Java application.\nFeatures | Documentation | API Reference\nRunning Examples – Source Code | Forum | Release Notes\nSee Also Online XML Viewer JSON Viewer using Java Edit XML Files using Java Generate Reports from XML Data in Java ","permalink":"https://blog.groupdocs.com/viewer/xml-viewer-using-java/","summary":"As we hava already discussed, XML is a structured data storage and transportation markup language commonly used in programming. In order to properly view or share XML data, it is often necessary to convert it into other document formats such as PDF, JPG, PNG, or HTML. This article provides a basic approach to viewing XML files using simple Java code.","title":"XML Viewer using Java"},{"content":"\rXML (eXtensible Markup Language), being a markup language used to store and transport data in a structured format, is widely used in the programming world. It is often required to view or share XML data in a proper format. There comes the need to render XML files as other document formats like PDF, JPG, PNG, or HTML. This article explains the basic way to view XML files using simple C# code.\nXML File Viewer – .NET API GroupDocs.Viewer for .NET, an API for document viewing that enables the conversion of various file formats such as XML into PDF, HTML, and image formats like JPG and PNG within the .NET application. As an example, I will be using C# to render an XML file into PDF format using this API.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Viewer XML File Viewer using C# The API allows rendering XML files to render as PDF, JPG, PNG, and HTML formats. Here, you will only see how to render it as a PDF. The following are the step to view XML files by rendering these to PDF.\nLoad the XML file using the Viewer class. Utilize the PDF View Options to specify the desired output path and settings. Invoke the View() method with the set options to obtain the XML file in PDF output. The following C# source code renders the XML file as PDF:\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations to build an online XML file viewer.\nConclusion To sum up, you just learned the basics of how to view XML files within the .NET application using C#. Further, we will soon discuss how to render XML files as JPG, PNG, and HTML.\nYou can learn more about the API regarding building your own XML viewer from the below links.\nBuild Your Own XML Viewer .NET Application Here are some important links that will help you in building your own XML viewer .NET application.\nFeatures | Documentation | API Reference\nRunning Examples – Source Code | Forum | Release Notes\nRelated Articles Online XML Viewer XML Viewer using Java JSON Viewer using C# CSV to XML in C# JSON to XML in C# Edit XML Files using C# Generate Reports from XML Data in C# ","permalink":"https://blog.groupdocs.com/viewer/xml-viewer-using-csharp/","summary":"XML being a markup language used to store and transport data in a structured format, is widely used in the programming world. It is often required to view or share XML data in a proper format. There comes the need to render XML files as other document formats like PDF, JPG, PNG, or HTML. This article explains the basic way to view XML files using simple C# code.","title":"XML Viewer using C#"},{"content":"\rFree Online STL File Viewer You can view STL data using a free online viewer. Just follow the simple steps to display and render.\nDrag and drop your STL file into the assigned area or upload it. After uploading, the file will appear in the viewer. You can Scroll to navigate between pages. Adjust the view of the STL file by zooming in or out. Choose to either Print or Download the STL as PDF \u0026amp; PNG format. Online STL Viewer\nAfter 24 hours, the files will be removed from the servers, and the download links will no longer be active.\nSTL Viewer – Developer’s Guide If you are interested in developing your own STL viewer? Just choose standalone libraries or cloud-based APIs. Explore the options and decide the platform that suits your requirements for building the STL files and CAD design viewer from scratch.\nC# Java Cloud STL Files Viewer using C# Here’s how to view STL files in C# using GroupDocs.Viewer for .NET:\nIntegrate the library into your application. Utilize the following code to view the STL file as PDF: You can gain further insight into developing STL Viewer using C#.\nView STL Files using Java Java developers can use the steps and the below-mentioned code sample to view STL files using GroupDocs.Viewer for Java:\nSet up and download the library in your application. Use the provided source code to view STL as PDF: For more information, refer to how to build STL Viewer using Java.\nCloud API to View STL Files For the STL Viewer within your cloud-based applications, visit Viewer Cloud API. Choose the most suitable API for your requirements by exploring the various available options.\nFAQs How to view STL files online? It’s simple - drag and drop it into the designated area to upload. Once the upload is complete, your STL file will be available for viewing in the STL viewer. From there, you can effortlessly navigate, scroll, zoom, print, and even download the drawings in PDF and PNG format.\nHow quick is this online STL viewing tool? Rendering is completed in mere seconds with this efficient and speedy free online tool.\nHow can I build my own STL viewer? You have the option to use either our standalone libraries or Cloud API for development.\nSee Also JSON Viewer XML Viewer CAD Viewer JSON to CSV CSV to XML ","permalink":"https://blog.groupdocs.com/viewer/stl-viewer-online/","summary":"Quick upload and view STL files easily with this free online STL viewer. Easily render STL to other formats in just a few simple steps.","title":"STL Viewer – View 3D Models and CAD Designs Online"},{"content":"\rFree Online CAD Viewer - Display DXF/DWG You can view CAD data using a free online viewer. Just follow the simple steps to display and render.\nDrag and drop your DXF/DWG file into the assigned area or upload it. Once uploaded, the file will be displayed in the viewer. You can Scroll to navigate between pages. Zoom-in and Zoom-out to adjust the CAD file view. Choose to either Print or Download the CAD as PDF \u0026amp; PNG format. Online CAD Viewer\nAfter 24 hours, the files will be removed from the servers, and the download links will no longer be active.\nCAD Viewer – Developer’s Guide Are you interested in developing your own CAD viewer? Just choose standalone libraries or cloud-based APIs. Explore the options and decide the platform that suits your requirements for building the DXF/DWG viewer from scratch.\nC# Java Cloud View CAD (DXF/DWG) Files using C# Here’s how to view CAD files (DXF/DWG) in C# using GroupDocs.Viewer for .NET:\nIntegrate the library into your application. Utilize the following code to view the CAD file as PDF: // CAD Viewer - Render CAD file as PDF using C# using (Viewer viewer = new Viewer(\u0026#34;/path/drawing.dwg\u0026#34;)) { PdfViewOptions viewOptions = new PdfViewOptions(\u0026#34;/path/cad-drawing.pdf\u0026#34;); viewer.View(viewOptions); } You can gain further insight into developing CAD Viewer supporting DWG, DXF, DWF and DGN using C#.\nView CAD (DXF/DWG) Files using Java Java developers can use the steps and the below-mentioned code sample to view CAD files using GroupDocs.Viewer for Java:\nSet up and download the library in your application. Use the provided source code to view CAD as PDF: // CAD Viewer - Render CAD file as PDF using Java try (Viewer viewer = new Viewer(\u0026#34;/path/drawing.dxf\u0026#34;)) { PdfViewOptions viewOptions = new PdfViewOptions(\u0026#34;/path/cad-drawing.pdf\u0026#34;); viewer.view(viewOptions); } For more information, refer to how to build CAD Viewer supporting DWG, DXF, DWF and DGN in Java.\nCloud API to View CAD Files For the CAD Viewer within your cloud-based applications, visit Viewer Cloud API. Choose the most suitable API for your requirements by exploring the various available options.\nFAQs How to view CAD files online? It’s simple, just drag the file to upload. As soon you finish uploading your CAD (DXF/DWG) file, it will be ready within the CAD viewer. Now you can navigate, scroll, zoom, print, and even download the CAD drawings in PDF and PNG format.\nHow quick is this online CAD viewing tool? This free online tool is quick and efficient and provides rendering within seconds.\nHow can I build my own CAD viewer? You can develop using either our standalone libraries or Cloud API.\nSee Also JSON Viewer XML Viewer STL Viewer JSON to XML CSV to XML ","permalink":"https://blog.groupdocs.com/viewer/cad-viewer-online/","summary":"Quick upload and view CAD files easily with this free online CAD viewer. Easily render CAD to other formats in just a few simple steps.","title":"CAD Viewer – View DXG, DXF Files Online"},{"content":"\rFree Online XML Viewer You can view XML data using a free online viewer. Just follow the simple steps to display and render.\nDrag and drop your XML file into the assigned area or upload it. Once uploaded, XML data will be displayed in the viewer. You can Scroll to navigate between pages. Zoom-in and Zoom-out to adjust the XML data view. Choose to either Print or Download the XML data in PDF \u0026amp; PNG format. Online XML Viewer\nOnce 24 hours have elapsed, the servers will remove the file, and the download links will no longer be active.\nXML Viewer – Developer’s Guide What about developing your own XML viewer? Just choose standalone libraries or cloud-based APIs. Explore the options, you will find the platform that suits your requirements for building the document viewer from scratch.\nC# Java Cloud View XML using C# Here’s how to view XML files in C# using GroupDocs.Viewer for .NET:\nIntegrate the library into your application. Utilize the following code to view the XML file as PDF: // XML Viewer - Render XML file as PDF using C# using (Viewer viewer = new Viewer(\u0026#34;/path/document.xml\u0026#34;)) { PdfViewOptions viewOptions = new PdfViewOptions(\u0026#34;/path/XML-to-PDF-{0}.pdf\u0026#34;); viewer.View(viewOptions); } You can gain further insight into developing XML Viewer using C#.\nView XML using Java Java developers can use the steps and the below-mentioned code sample to view XML files using GroupDocs.Viewer for Java:\nSet up and download the library in your application. Use the provided source code to view XML as PDF: // XML Viewer - Render XML file as PDF using Java try (Viewer viewer = new Viewer(\u0026#34;/path/sample.xml\u0026#34;)) { PdfViewOptions viewOptions = new PdfViewOptions(\u0026#34;/path/XML-to-PDF.pdf\u0026#34;); viewer.view(viewOptions); } For more information, refer to how to build XML Viewer using Java.\nCloud API to View XML Files For the XML Viewer within your cloud-based applications, visit Viewer Cloud API. Choose the most suitable API for your requirements by exploring the various available options.\nFAQs How to view XML files online? It’s simple, just drag the file to upload. As soon you finish uploading your XML file, it will be ready within the XML viewer. Now you can navigate, scroll, zoom, print, and even download the XML in PDF and PNG format.\nHow quick is this online XML viewing tool? This free online tool is quick and efficient and provides rendering within seconds.\nHow can I build my own XML viewer? You can develop using either our standalone libraries or Cloud API.\nSee Also JSON Viewer CAD Viewer STL Viewer JSON to XML CSV to XML ","permalink":"https://blog.groupdocs.com/viewer/xml-viewer-online/","summary":"Quick upload and view XML file easily with this free online XML viewer. Easily render XML to other formats in just a few simple steps.","title":"XML Viewer – View XML Data Online"},{"content":"JSON is a widely used and easy-to-read data format in programming. Often, there\u0026rsquo;s a need to share JSON data in a different format like PDF, PNG, JPG, or HTML. This article explains multiple ways you can view JSON files. Whether you want to view JSON files online or you want to view data programmatically even in other formats, this article will lead you to your solution.\nViewing JSON - Free \u0026amp; Online You can view JSON data using a free online viewer. Just follow the simple steps to display and render.\nDrag and drop your JSON file into the assigned area or upload it by clicking. Once uploaded, JSON data will be available in the viewer. You can Scroll to navigate between pages. Use Zoom-in and Zoom-out options to view JSON data. Either Print or Download the JSON data in PDF \u0026amp; PNG format. Online JSON Viewer\nThe servers will delete the file after 24 hours and the download links will become inactive at that point.\nHow to View JSON Data – Developer’s Guide Developers have many options for creating a JSON viewer application like the one shown above. Just choose to use one of the APIs. By exploring these options, you can find the most suitable platform that meets your requirements for building the document viewer from scratch.\nC# Java View JSON using C# For the .NET developers, here are a few lines of C# code to view .json file:\nIntegrate the library into your application. Utilize the following code to view the JSON file as PDF: You can gain further insight into developing a JSON Viewer in C#.\nFor more .NET API resources, check out these links:\n.NET API | Documentation | Download\nView JSON using Java Java developers can use the steps and the below-mentioned code sample to view JSON files using GroupDocs.Viewer for Java:\nSet up and download the library in your application. Use the provided source code to view JSON as PDF: For more information, refer to how to build JSON Viewer in Java.\nFor more Java API resources, explore these links:\nJava API | Documentation | Download\nFAQs How to view JSON files online? It’s simple, just drag the file to upload. As soon you finish uploading your JSON file, it will be ready within the JSON viewer. Now you can navigate, scroll, zoom, print, and even download the JSON in PDF and PNG format.\nHow quick is this online JSON viewing tool? This free online tool is quick and efficient and provides rendering within seconds.\nSee Also XML Viewer CAD Viewer STL Viewer JSON to CSV JSON to XML CSV to JSON ","permalink":"https://blog.groupdocs.com/viewer/json-viewer-online/","summary":"This article explains multiple ways you can view JSON files. Whether you want to view JSON files online or you want to view data programmatically even in other formats, this article will lead you to your solution.","title":"Different Ways to View JSON Files"},{"content":"\rFree JSON to XML Online Converter You can change JSON data into XML format using a free online converter. Just follow the simple steps to get started.\nDrag and drop your JSON file into the assigned area or upload it. Make any necessary adjustments to the Load and Convert options. Click the CONVERT NOW button, and your JSON file will be converted to the XML format. Convert JSON to XML - Online Free\nThe servers will delete the file after 24 hours and the download links will become inactive at that point.\nWhy JSON to XML? Both the formats are widely used for representing and exchanging structured data. Each format has strengths and weaknesses, and there are various reasons why you might want to convert from JSON to XML:\nData Validation: In comparison to JSON, XML has a strong validation mechanism, such as XML Schema or DTD, that can be used to ensure the data conforms to a specific structure.\nReadability: XML is a markup language that uses tags to represent data, making it easier for humans to read and understand. JSON, on the other hand, is also a well-structured and concise format but it might be a little difficult to read for non-technical users.\nData Transformation: Converting from JSON to XML can be useful when you need to transform or manipulate the data using XSLT.\nThere can be many other use cases, however, the decision to convert from JSON to XML majorly depends on your specific requirements.\nJSON to XML Converter – Developer’s Guide As a developer, you have various options for creating a converter from JSON to XML. You can choose to use standalone libraries or cloud-based APIs. By exploring these options, you can find the most suitable platform that meets your requirements for building a converter from scratch.\nC# Java Cloud JSON to XML Conversion in C# Here’s how to convert a JSON to XML in C# using GroupDocs.Conversion for .NET:\nIntegrate the library into your application. Utilize the following code to load the file and convert it: You can gain further insight on how to construct a JSON to XML converter in C#.\nConvert JSON to XML in Java You can also use Java APIs to convert JSON files to XML. Please visit product and documentation pages for more details.\nCloud API for JSON to XML Converter If you are in need of a Conversion Cloud API for your cloud applications, you can choose the most suitable API for your requirements by exploring the various available options.\nFAQs How to convert JSON to XML online? All you need to do is upload your JSON file, click on the conversion button, and then download the resulting XML file once the conversion process is complete.\nHow quick is this online JSON to XML tool? Our free online JSON to XML converter is quick and efficient, providing conversions in mere seconds.\nHow can I create my JSON to XML converter? You can build your own online conversion tool using either our standalone libraries or cloud APIs.\nSee Also JSON to CSV CSV to JSON CSV to XML SVG to JPG SVG to PNG ","permalink":"https://blog.groupdocs.com/conversion/convert-json-to-xml/","summary":"Quick Upload and Convert JSON easily with this free online JSON to XML converter. Easily transform JSON to XML format in just a few simple steps.","title":"JSON to XML – Free Online Converter"},{"content":"\rFree CSV to XML Online Converter Converting your CSV data to XML is a straightforward process using this free online converter. To get started, simply follow these easy steps:\nDrag and drop or upload your CSV file in the designated area. Adjust the required Load Options and Convert Options. Click on the CONVERT NOW button to change your CSV file into the XML format. Convert CSV to XML - Online Free\nThe servers will delete the file after 24 hours and the download links will become inactive at that point.\nWhy CSV to XML? Data structure: XML is a markup language that allows for structured data to be represented in a hierarchical format. Unlike CSV, which only stores data as flat rows and columns, XML can store data in a more complex and structured format. This can be useful when dealing with data that has a complex structure, such as in the case of hierarchical data.\nCollaboration: XML is a widely used format for exchanging data between different systems and applications. If you need to exchange data with systems that require XML as input, then you require to convert your CSV data to XML.\nData exchange: XML can be used for data exchange in web services, APIs, and other similar scenarios. Many APIs require data to be in XML format, so converting CSV to XML can be necessary to work with such APIs.\nCSV to XML Converter – Developer’s Guide As a developer, you have various options for creating a CSV to XML converter. You can choose to use standalone libraries or cloud-based APIs. By exploring these options, you can find the most suitable platform that meets your requirements for building a converter from scratch.\nC# Java Cloud CSV to XML Conversion in C# Here’s how to convert a CSV to XML in C# using GroupDocs.Conversion for .NET:\nIntegrate the library into your application. Utilize the following code to load the file and convert it: You can gain further insight on how to construct a CSV to XML converter in C#.\nConvert CSV to XML in Java You can also use Java APIs to convert CSV files to XML. Please visit product and documentation pages for more details.\nCloud API for CSV to XML Converter If you are in need of a Conversion Cloud API for your cloud applications, you can choose the most suitable API for your requirements by exploring the various available options.\nFAQs How to convert CSV to XML online? Converting CSV to XML is a simple process that involves only two easy steps. All you need to do is upload your CSV file, click on the conversion button, and then download the resulting XML file once the conversion process is complete.\nHow quick is this online CSV to XML tool? Our free online CSV to XML converter is quick and efficient, providing conversions in mere seconds.\nHow can I create my CSV to XML converter? You can build your own online conversion tool using either our standalone libraries or cloud APIs.\nSee Also CSV to JSON WebP to JPG WebP to PNG SVG to JPG SVG to PNG ","permalink":"https://blog.groupdocs.com/conversion/convert-csv-to-xml/","summary":"Quick Upload and Convert CSV easily with this free online CSV to XML converter. Easily transform CSV to XML format in just a few simple steps.","title":"CSV to XML – Free Online Converter"},{"content":"\rFree JSON to CSV Online Converter You can change JSON data into CSV format using a free online converter. Just follow the simple steps to get started.\nDrag and drop your JSON file into the assigned area or upload it. Make any necessary adjustments to the Load and Convert options. Click the CONVERT NOW button, and your JSON file will be converted to the CSV format. Convert JSON to CSV - Online Free\nThe servers will delete the file after 24 hours and the download links will become inactive at that point.\nWhy JSON to CSV? Both JSON and CSV formats are commonly used for representing and exchanging structured data. There could be several reasons why you might want to convert JSON data to CSV format:\nData analysis: CSV is a simple and efficient format for storing and exchanging tabular data. If you need to perform data analysis or visualization on your JSON data, converting it to CSV can make it easier.\nSimplification: JSON can be a more complex format than CSV, especially when dealing with nested data structures or arrays. Converting to CSV can simplify the data and make it easier.\nThere could be many more reasons, however, the decision to convert depends on your specific use case and the requirements.\nJSON to CSV Converter – Developer’s Guide As a developer, you have various options for creating a JSON to CSV converter. You can choose to use standalone libraries or cloud-based APIs. By exploring these options, you can find the most suitable platform for building a converter from scratch.\nC# Java Cloud JSON to CSV Conversion in C# Here’s how to convert a JSON to CSV in C# using GroupDocs.Conversion for .NET:\nIntegrate the library into your application. Utilize the following code to load the file and convert it: You can find further information on how to create a JSON to CSV converter in C#.\nConvert JSON to CSV in Java You can also use Java APIs to convert JSON files to CSV. Please visit the product and documentation pages for more details.\nCloud API for JSON to CSV Converter If you need Conversion Cloud API for your cloud applications, you can choose the most suitable API for your requirements by exploring the various available options.\nFAQs How to convert JSON to CSV online? To convert JSON to CSV online, simply upload your JSON file, initiate the conversion process, and download the resulting CSV file upon completion.\nHow fast is this online JSON to CSV tool? Our online JSON to CSV converter is highly efficient, providing conversions in a matter of seconds.\nHow can I create my own JSON to CSV converter? You can create your own JSON to CSV converter using our standalone libraries or cloud APIs for building online conversion tools.\nSee Also JSON to XML CSV to JSON CSV to XML WebP to JPG WebP to PNG ","permalink":"https://blog.groupdocs.com/conversion/convert-json-to-csv/","summary":"Quick Upload and Convert JSON easily with this free online JSON to CSV converter. Easily transform JSON to CSV format in just a few simple steps.","title":"JSON to CSV – Free Online Converter"},{"content":"\rFree CSV to JSON Online Converter To convert your CSV data to JSON, use this free online converter with ease. Just follow these simple steps:\nDrag and drop or upload your CSV file in the designated area. Adjust the required Load Options and Convert Options. Click on the CONVERT NOW button to change your CSV file into the JSON format. Convert CSV data to JSON - Online Free\nThe servers will delete the file after 24 hours and the download links will become inactive at that point.\nWhy CSV to JSON? There are several reasons why you may need to convert a CSV (Comma Separated Values) file into JSON (JavaScript Object Notation) format:\nExchange Data: JSON is a widely used data interchange format that is supported by many programming languages and data storage systems, while CSV is primarily used for data import and export. Converting a CSV file to JSON can make it easier to transfer data between systems.\nBetter Data Structure: JSON provides a more structured format for data, making it easier to organize and access complex datasets. JSON objects can contain nested arrays and key-value pairs, while CSV data is limited to a simple two-dimensional table.\nFlexibility: Converting a CSV file to JSON allows you to manipulate and analyze the data in a flexible and dynamic way, using tools and libraries that support JSON data.\nReadability: In comparison to CSV, JSON has more readable syntax, making it easier for humans to understand and inspect data.\nCSV to JSON Converter – Developer’s Guide As a developer, you have the choice of constructing a CSV to JSON converter either using standalone libraries or cloud-based APIs. Explore the options and find the best platform that suits your needs to build a converter from scratch.\nC# Java Cloud CSV to JSON Conversion in C# Here’s how to convert CSV data to JSON in C# using GroupDocs.Conversion for .NET:\nIntegrate the library into your application. Utilize the following code to load the file and convert it: You can gain further insight into how to construct a CSV to JSON converter in C#.\nConvert CSV to JSON in Java You can also use Java APIs to convert CSV files to JSON. Please visit the product and documentation pages for more details.\nCloud API for CSV to JSON Converter If you are in need of a Conversion Cloud API for your cloud applications, you can choose the most suitable API for your requirements by exploring the various available options.\nFAQs How to convert CSV to JSON online? The conversion from CSV to JSON is a breeze with two straightforward steps. Simply upload your CSV file, hit the convert button, and download the JSON file once the process is finished.\nHow quick is this online CSV to JSON tool? Our free online CSV to JSON converter is quick and efficient, providing conversions in mere seconds.\nHow Safe and Secure is CSV to JSON Conversion Process? Your files are kept safe and secure during the conversion process. To ensure privacy, the tool automatically deletes all uploaded and converted files after 24 hours.\nHow can I create my CSV to JSON converter? You can build your own online conversion tool using either our standalone libraries or cloud APIs.\nSee Also WebP to JPG WebP to PNG SVG to JPG SVG to PNG ","permalink":"https://blog.groupdocs.com/conversion/convert-csv-to-json/","summary":"Quick Upload and Convert CSV easily with this free online CSV to JSON converter. Easily transform CSV data to JSON format in just a few simple steps.","title":"CSV to JSON – Free Online Converter"},{"content":"\rBoth PNG and SVG formats support transparency. However, SVG is popular for scalability and PNG is often chosen for small static images, logos, and transparent backgrounds. Compatibility issues may require converting SVG to other formats. This article explores online SVG to PNG conversion and guides you through programmatic conversions using C# and Java.\nConverting SVG to PNG - Online \u0026amp; Free To convert your SVG images to PNG, use this free online converter with ease. Just follow these simple steps:\nDrag and drop or upload your SVG file in the designated area. Adjust the Convert Options if necessary. Click on the CONVERT NOW button to change your SVG file into the PNG format. Convert SVG image to PNG - Online Free\nThe servers will delete the file after 24 hours and the download links will become inactive at that point.\nSVG to PNG Converter – Developer’s Guide As a developer, you have the choice of constructing a SVG to PNG converter either using standalone libraries or cloud-based APIs. Explore the options and find the best platform that suits your needs to build a converter from scratch.\nC# Java SVG to PNG Conversion in C# Here’s how to convert a SVG image to PNG in C# using GroupDocs.Conversion for .NET:\nIntegrate the library into your application. Utilize the following code to load the file and convert it: You can gain further insight on how to construct a SVG to PNG converter in C#.\n.NET API | Documentation | Download\nConvert SVG to PNG in Java Java developers can use the steps and code sample below to create a SVG to PNG converter using GroupDocs.Conversion for Java:\nSet up and download the library in your application. Use the code provided to load and convert the SVG file: To add additional effects to the PNG output, refer to another example of creating a SVG to PNG converter using Java.\nJava API | Documentation | Download\nFAQs Easy Online Conversion from SVG to PNG The conversion from SVG to PNG is a breeze with just two straightforward steps. Simply upload your SVG file, hit the convert button, and download the PNG file once the process is finished.\nSpeedy Transformation from SVG to PNG Our free online SVG to PNG converter is quick and efficient, providing conversions in mere seconds.\nSafe and Secure SVG to PNG Conversion Process Your files are kept safe and secure during the conversion process. To ensure privacy, the tool automatically deletes all uploaded and converted files after 24 hours.\nConvert SVG to JPG Convert WebP to PNG SVG to PNG in C# SVG to PNG in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-svg-to-png/","summary":"Quick Upload and Convert SVG easily with this free online SVG to PNG converter. Easily transform SVG images to PNG format in just a few simple steps.","title":"Convert SVG to PNG"},{"content":"\rSVG and JPG are two different image file formats with different advantages in different scenarios. However, there are requirements where you need to convert SVG vector files into JPG images. This article guides you through converting your SVG images to JPG format online. Additionally, we\u0026rsquo;ll explore how developers can achieve this using only a few lines of code through .NET and Java API.\nConverting SVG to JPG - Online \u0026amp; Free Easily convert your SVG images to JPG using this free online converter. Simply follow these easy steps:\nUpload your SVG file using the Drop or upload your file area. If needed, set the relevant Convert Options. Click CONVERT NOW to transform your SVG file into JPG format. Convert SVG image to JPG - Online Free\nThe servers will delete the file after 24 hours and the download links will become inactive at that point.\nWhy SVG to JPG? There are a few reasons you might need to convert an SVG image to JPG:\nCompression: JPG uses lossy compression, which can result in smaller file sizes compared to SVG. Compatibility: Some devices and web browsers may not support SVG, so converting it to JPG ensures wider compatibility. Edibility: JPG is a raster image format, which makes it easier to edit and make pixel-level changes compared to SVG, which is a vector format. Use case: JPG is more suited for photographs and other types of images with lots of colors and gradients, while SVG is better for graphics, logos, and icons that require scalable, resolution-independent graphics. SVG to JPG Conversion – Developer’s Guide As a developer, you have the option of creating an SVG to JPG converter using standalone libraries or cloud APIs. Discover how to construct one from scratch by choosing the platform that best fits your requirements.\nC# Java SVG to JPG Conversion in C# Here’s how to convert an SVG image to JPG in C# using GroupDocs.Conversion for .NET:\nIntegrate the library into your application. Utilize the following code to load the file and convert it: You can gain further insight on how to construct an SVG to JPG converter in C#.\n.NET API | Documentation | Download\nConvert SVG to JPG in Java Java developers can use the steps and code sample below to create an SVG to JPG converter using GroupDocs.Conversion for Java:\nSet up and download the library in your application. Use the code provided to load and convert the SVG file: To add additional effects to the JPG output, refer to another example of creating an SVG to JPG converter using Java.\nJava API | Documentation | Download\nFAQs Effortless SVG to JPG Conversion Online The conversion process is straightforward and involves only two simple steps. Simply upload your SVG file, press the conversion button, and then download the JPG file once the process is complete.\nQuick SVG to JPG Transformation Our free online SVG to JPG converter is fast and efficient, providing rapid conversions in mere seconds.\nSafe and Secure SVG to JPG Conversion Your files are protected and secure during the conversion process. To maintain privacy, the tool automatically deletes all uploaded and converted files after 24 hours.\nConvert SVG to PNG Convert WebP to JPG SVG to JPG in C# SVG to JPG in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-svg-to-jpg/","summary":"Quick Upload and Convert SVG easily with this free online SVG to JPG converter. Easily transform SVG images to JPG format in just a few simple steps.","title":"Convert SVG to JPG"},{"content":"Need to convert a WebP image to PNG right now? Just upload your .webp file below and get a .png version instantly. No signup, no software, and everything is auto-deleted after 24 hours.\nFree WebP to PNG Online Tool - Convert Instantly\nAre you a developer? Test it live, then scroll down to see how to do the same in C# or Java with just a few lines of code.\nWebP images combine the transparency of PNG and the animation capabilities of GIF while offering a crucial advantage of smaller file sizes without compromising quality compared to JPG format. However, there are instances where converting WebP images to PNG, JPG or other formats is necessary due to compatibility issues or specific requirements. This article will first let you convert your WebP images into PNG format online. Then we will see how developers can perform this conversion with just a few lines of code using .NET and Java API.\nConverting WebP to PNG - Free \u0026amp; Online Within a few clicks, you can convert WebP images to PNG format easily with an online conversion tool. Follow simple steps and get the files transformed:\nUse the Drop or upload your file area to upload the WebP file. Select the relevant Load Options and Convert Options. (Only if required) Click CONVERT NOW to convert the WebP file to PNG format. Convert WebP image to PNG - Online Free\nThe file will be removed from the servers after 24 hours and the download links will no longer be active after this time frame.\nTry Free WebP to PNG Converter\nWebP to PNG Converter – Developer’s Guide This section is for developers and for someone who knows the importance of automation. It is advisable to thoroughly investigate the available choices and choose a platform that suits your needs when developing an online tool capable of converting WebP images to PNG format.\nC# Java WebP to PNG Conversion in C# Here’s how you can convert a WebP image to PNG in C# using GroupDocs.Conversion for .NET:\nInstall the library in your application. Use the following code to load a WebP file and convert it to PNG format: // Convert WebP image to PNG in C# using (Converter converter = new Converter(\u0026#34;path/image.webp\u0026#34;)) { ImageConvertOptions options = new ImageConvertOptions { // Set the conversion format to PNG Format = ImageFileType.Png }; converter.Convert(@\u0026#34;path/converted-image.png\u0026#34;, options); } You can get more knowledge on how to build a WebP to PNG converter in C#.\n.NET API | Documentation | Download\nConvert WebP to PNG in Java Java developers can follow the steps and refer to the code sample provided below to create a WebP to PNG converter using GroupDocs.Conversion for Java.\nConfigure \u0026amp; download the library in your application. Use the following code to load and convert the WebP file: // Convert WebP to PNG in Java using GroupDocs.Conversion API Converter converter = new Converter(\u0026#34;filePath/WebPImage.webp\u0026#34;); ImageConvertOptions options = new ImageConvertOptions(); options.setFormat(ImageFileType.Png); converter.convert(\u0026#34;path/WebPTo.png\u0026#34;, options); To add additional effects to the PNG output, refer to another example of creating a WebP to PNG converter using Java.\nJava API | Documentation | Download\nFAQs Q: Is this WebP to PNG converter free?\nA: Yes, it’s 100% free. No signup or payment required.\nQ: Are my files secure?\nA: All uploaded files are deleted automatically after 24 hours.\nSee Also Convert WebP to JPG Convert SVG to PNG WebP to PNG in C# WebP to PNG in Java ","permalink":"https://blog.groupdocs.com/conversion/webp-to-png/","summary":"Need to convert a WebP image to PNG quickly? This article helps you do that with a free online tool—fast, secure, and no signup required. Developers can also use .NET or Java to automate the WebP to PNG conversion.","title":"Free WebP to PNG Converter – Instant \u0026 Online"},{"content":"\rWebP images blend PNG\u0026rsquo;s transparency and GIF\u0026rsquo;s animation features, offering smaller file sizes without sacrificing quality compared to JPG. However, there are times when converting WebP images to JPG, PNG, or other formats is needed due to compatibility or specific needs. This article guides you through converting your WebP images to JPG format online. Additionally, we\u0026rsquo;ll explore how developers can achieve this using only a few lines of code through .NET and Java API.\nConverting WebP to JPG - Free \u0026amp; Online Unlock the Magic of WebP to PNG Conversion: Discover a Free and Online Solution! Follow these simple steps to effortlessly transform your WebP files into high-quality JPG format.\nUse the Drop or upload your file area to upload the WebP file. Select the relevant Load Options and Convert Options. (Only if required) Click CONVERT NOW to convert the WebP file to JPG format. Convert WebP image to JPG - Online Free\nThe file will be removed from the servers after 24 hours and the download links will no longer be active after this time frame.\nWebP to JPG Converter – Developer’s Guide As a developer, you can effortlessly create a WebP to JPG converter by utilizing any of the standalone libraries. It is advisable to thoroughly investigate the available choices and choose a platform that suits your needs when developing an online tool capable of converting WebP images to PNG format.\nC# Java WebP to JPG Conversion in C# Here’s how you can convert a WebP image to JPG in C# using GroupDocs.Conversion for .NET:\nInstall the library in your application. Use the following code to load a WebP file and convert it to JPG format: You can gain further insights on how to build a WebP to JPG converter in C#.\n.NET API | Documentation | Download\nConvert WebP to JPG in Java For Java developers, below are the steps and a code sample to create a WebP to JPG converter using GroupDocs.Conversion for Java.\nConfigure \u0026amp; download the library in your application. Use the following code to load and convert the WebP file: To apply further effects on JPG output, visit the complete guide to create your WebP to JPG converter in Java.\nJava API | Documentation | Download\nFAQs Convert WebP to JPG Online – Easy 2-Step Process Converting WebP to JPG is simple with our online tool. Simply upload your WebP file and press the Convert button. Once the conversion is finished, you can download your JPG file.\nFast WebP to JPG Conversion – Complete in Seconds Our free online WebP to JPG converter is incredibly fast and efficient. You can expect your file to be converted within seconds.\nSecure WebP to JPG Tool – Added Privacy Your files are kept secure during the WebP to JPG conversion process. For added privacy, all uploaded and converted files are deleted after 24 hours.\nSee Also Convert WebP to PNG Convert SVG to JPG WebP to JPG in C# WebP to JPG in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-webp-to-jpg/","summary":"Converting WebP images to JPG, PNG, or other formats is sometimes needed because of compatibility problems or specific requirements. In this article, we will show you how to change your WebP images into JPG format online and programmatically using .NET and Java.","title":"Convert WebP Images to JPG"},{"content":"\rIncreasing reliance on technology in today’s world demands the ability to view documents as PDFs as a fundamental skill. PDF is a widely accepted standard, so it’s often necessary to convert Word documents into this portable format when sharing. This article will discuss how to programmatically render Word documents as PDF in Java. Additionally, we will see how to create secure PDFs and disable the printing option using Java.\nThe following topics are discussed in this article:\nHow to View Word Documents as PDFs in Java Securing PDFs with Passwords Limiting PDF Permissions by Disabling Printing Word \u0026amp; PDF Viewer – Java API GroupDocs.Viewer empowers developers with its APIs to create powerful document viewer applications. The API enables the rendering of documents into PDF, HTML, and image formats within the application. In this article, we will use its Java API to view Word documents as PDFs.\nDownload or Configure You may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;groupdocs-artifacts-repository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifacts Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-viewer\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.12\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; How to View Word Documents as PDFs in Java The following steps outline how to easily render a Word document to a PDF using a few lines of Java code:\nUtilize the Viewer class to load the Word document. Set up the default PDF View Options. Use the view method to convert the loaded Word document to a PDF. Here is an example of the Java code that can be used to perform this conversion:\nThis is what the above code produces as a result:\nCreating Secure PDF with Disabled Printing Option from Word Document in Java Here, you will find the answers to the following questions in just a few lines of code:\nHow to convert a Word Document into a password-protected PDF in Java? How to create a PDF with disabled printing options in Java? These steps will guide you on how to convert a Word document into a protected PDF with limited permissions in Java:\nSet up the security settings using the Security class. Specify the document opening password to restrict access to the document. Define the permission password to restrict PDF printing, modification, and data extraction. Set the permissions to allow or deny permissions. Set the PDF View Options and add the security settings to it. Load the Word (DOC/DOCX) document using the Viewer class. Use the view method to render the loaded Word document as a password-protected PDF with limited permissions. The following Java code demonstrates how to convert a Word document into a protected PDF with no printing permissions:\nPDF Secured with Password When the PDF is opened, it will now prompt the user to enter a password before accessing the document.\nLimited PDF Permissions by Disabling Printing The output PDF will have limited permissions as set during the conversion process. As a result, the user will not be able to print the PDF due to the disabled printing option.\nObtain a Free Trial License You can obtain a free temporary license to test the library without any limitations.\nSummary In summary, we have discussed how to programmatically view and convert Word documents into PDFs using Java, including the ability to password-protect the resulting PDF. We also learned how to restrict PDF file printing by setting its permissions. With this information, you can now easily create your own Word and PDF viewer application similar to the GroupDocs.Viewer Online App.\nTo gain a deeper understanding of GroupDocs.Viewer for Java, refer to its documentation. If you have any questions or concerns, feel free to reach out to us through the forum for assistance.\nSee Also Word Document Viewer – Open \u0026amp; Read DOCX Files Instantly Convert Word Documents to PDF in Java Render Word documents as Minified HTML in Java JSON Viewer in Java STL File Viewer using Java ","permalink":"https://blog.groupdocs.com/viewer/view-word-documents-as-pdf-in-java/","summary":"Increasing reliance on technology in today’s world demands the ability to view documents as PDFs as a fundamental skill. PDF is a widely accepted standard, so it’s often necessary to convert Word documents into this portable format when sharing. This article will discuss how to programmatically render Word documents as PDF in Java. Additionally, we will see how to create secure PDFs and disable the printing option using Java.","title":"Viewing Word Documents as PDF in Java"},{"content":"\rThe ability to convert documents to PDF is almost a required skill in this digital age. PDF being the universally accepted standard, we often need to convert Word processing documents into this portable format while sharing. In this article, we’ll be looking into the programmatic rendering of Word documents to view as PDF using C#. Additionally, we will see how to transform these word-processing documents into secured PDFs using C# within the .NET application.\nWord \u0026amp; PDF Viewer – .NET API GroupDocs.Viewer for .NET is an API that allows developers to create powerful .NET-based applications. The API enables the rendering of documents into PDF, HTML, and image formats within the application. In this article, we will demonstrate how to use it to view Word documents as PDFs.\nThe API can be downloaded as DLLs or an MSI installer from the download section or installed in your .NET application using NuGet.\nPM\u0026gt; Install-Package GroupDocs.Viewer How to View Word Documents as PDF using C# Let\u0026rsquo;s start with the default rendering options. Here are the steps that show how you can transform a Word document into a PDF with just a few lines of C# code.\nLoad the Word document using the Viewer class. Prepare the default PDF View Options. Invoke the View method to save the loaded Word Document as PDF. Here is the C# code that renders the Word document as a PDF file:\nThe following is the output of the above code: Word Document as Password-Protected PDF with Disabled Printing Option using C# Here, you will find the answer to your following two questions in just a few lines of code:\nHow to convert a Word Document into a Password-Protected PDF ? How to make a PDF with having Disabled Printing Option ? These steps will guide you on how to transform the Word document into a protected PDF having limited permissions using C#:\nLoad the Word (DOC/DOCX) document using the Viewer class. Prepare the security settings using the Security class. Restrict access to the document by setting DocumentOpenPassword. Restrict PDF printing, modification, and data extraction by setting PermissionsPassword. Allow / Deny permissions by setting the Permissions attribute. Now set the PDF View Options and add the security settings to it. Call the View method to view the loaded Word document as a password-protected PDF with limited permissions. The following C# code renders a Word document as a Protected PDF file having no printing permissions:\nPassword-Protected PDF Now, every time the PDF is opened, it will ask you to enter the password to open it.\nPDF with Disabled Printing Option As per the set permission during the conversion, the output PDF will have limited permissions. The user will not be able to print this PDF file due to disabled printing options.\nGet Free Temporary License You can get a free temporary license to try the library without evaluation limitations.\nConclusion In summary, we have explored how to use C# to programmatically view and convert Word documents into PDFs, including the option to password-protect the resulting PDF. We also learned to restrict PDF file printing by settings its permissions. With this knowledge, you can now easily create your own Word and PDF viewer application similar to the GroupDocs.Viewer Online App.\nTo gain further understanding of GroupDocs.Viewer for .NET, consult its documentation. Should you have any questions or inquiries, reach out to us through the forum.\nSee Also Word Document Viewer – Open \u0026amp; Read DOCX Files Instantly Convert Word Documents to PDF using C# Render JSON as PDF, JPG, PNG \u0026amp; HTML using C# Render Word documents as Clean HTML using C# STL File Viewer using C# ","permalink":"https://blog.groupdocs.com/viewer/view-word-documents-as-pdf-using-csharp/","summary":"The ability to convert documents to PDF is almost a required skill in this digital age. PDF being the universally accepted standard, we often need to convert Word processing documents into this portable format while sharing. In this article, we’ll be looking into the programmatic rendering of Word documents to view as PDF using C#. Additionally, we will see how to transform these word-processing documents into secured PDFs using C# within the .NET application.","title":"Viewing Word Documents as PDF using C#"},{"content":"In today’s digital age, the ability to convert PDF documents to HTML format is becoming increasingly important. Whether you’re a developer working on a project that requires this functionality or a user looking to make a PDF document more accessible, understanding how to convert PDF to HTML in Java is essential. In this blog post, we’ll walk you through the process of converting PDF documents to HTML using Java.\nJava Developers: PDF to HTML Conversion API GroupDocs showcases document \u0026amp; image conversion API for Java developers. It supports a large list of document and image formats for conversion from one format to another. Additionally, the conversion results can also be customized using available advanced options. I will use its GroupDocs.Conversion for Java API to convert a PDF document to HTML format.\nDownload or Configure You may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.12.1\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; How to Convert PDF to HTML using Java Converting a PDF to HTML using Java is a straightforward process. The following steps will guide you through the process of converting all the pages of a PDF file into HTML format.\nUse the Converter class to load the PDF file. Utilize the Convert method to transform the loaded document into HTML format. The following code demonstrates how to convert a whole PDF document into HTML using Java.\nConverting Specific Pages of a Secured PDF in Java Converting protected or locked PDF documents is also possible. The following steps will guide you through the process of converting specific pages of a locked PDF document into HTML format using Java.\nUse the PdfLoadOptions class to prepare the loading options. Load the PDF file using the Converter class. Utilize the WebConvertOptions class to prepare the conversion options for the HTML format. Define the specific pages to be converted by setting properties such as Pages, PageNumber, PageCount, Zoom, etc. Finally, use the Convert method to transform the loaded PDF file into HTML format. The following Java code demonstrates how to convert selected pages of a password-protected PDF document into HTML.\nConclusion In summary, this article covered the topic of converting PDF documents to HTML in Java. We walked through two different approaches, including converting the entire document with default options and converting specific pages of a password-protected document.\nTo learn more about the Java Conversion Automation API, refer to the documentation, API Reference, or check out the GitHub examples. If you have any further questions, feel free to reach out to us via the forum.\nSee Also Remove Pages from PDF in Java Watermark PDF Files in Java Convert PDF to Grayscale in Java Highlight PDF using Annotations in Java Redact PDF Scanned Documents in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-pdf-to-html-in-java/","summary":"In today’s digital age, the ability to convert PDF documents to HTML format is becoming increasingly important. Whether you’re a developer working on a project that requires this functionality or a user looking to make a PDF document more accessible, understanding how to convert PDF to HTML in Java is essential. In this blog post, we’ll walk you through the process of converting PDF documents to HTML using Java.\nJava Developers: PDF to HTML Conversion API GroupDocs showcases document \u0026amp; image conversion API for Java developers.","title":"How to Convert PDF to HTML in Java with Just a Few Steps"},{"content":"PDF is a file format that is used to present documents in a manner that is independent of the application software, hardware, and operating system used to create or view them. However, PDFs are not easily editable and are not well-suited for web pages. Converting a PDF to HTML allows the content of the document to be easily edited, searched, and indexed by search engines, and allows the document to be more easily viewed on the web. In this article, we will learn how to convert PDF documents into PDF format using C#.\n.NET API to Convert PDF Files to HTML GroupDocs provides a document conversion solution to empower developers with automation. It helps programmers in the conversion of various documents and image formats with its efficient and reliable .NET API. Today, I will use its GroupDocs.Conversion for .NET API to convert PDF documents into HTML format.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Conversion How to Convert a PDF to HTML using C# Let’s start with the basic conversion of a PDF file into HTML format using C#. The following steps transform all the pages of a PDF file into HTML.\nLoad the PDF file using the Converter class. Call the Convert method to transform the loaded document into PDF format. The following C# code converts the whole PDF document into HTML.\nConvert Selected Pages of Password-Protected PDF Documents using C# You can also convert protected or locked PDF documents. The following steps show how to convert selective pages of a locked PDF document into HTML format using C#.\nPrepare the loading options using the PdfLoadOptions class. Now, load the PDF file using the Converter class. Prepare the conversion options for the HTML format using the WebConvertOptions class. Define the list of conversion candidate pages using Pages, PageNumber, PageCount, Zoom, and other properties. Lastly, use the Convert method to transform the loaded PDF file into HTML format. The following C# code converts the selected pages of the password-protected PDF document into HTML.\nConclusion To conclude the article, we discussed the PDF to HTML conversion using C#. We separately implemented two different conversions. First, we converted the whole document using the default conversion options. Furthermore, we converted the selected pages of a password-protected document into HTML using the same .NET API.\nYou can learn more about the .NET Conversion Automation API using the documentation, API Reference, or by experiencing the GitHub examples. You can reach us for any query via the forum.\nSee Also Watermark PDF Files using C# Remove Pages from PDF using C# PDF to Grayscale using C# Markdown Files to PDF using C# Convert Word Documents to PDF using C# Extract Images from PDF Documents using C# ","permalink":"https://blog.groupdocs.com/conversion/convert-a-pdf-document-to-html-using-csharp/","summary":"PDF is a file format that is used to present documents in a manner that is independent of the application software, hardware, and operating system used to create or view them. However, PDFs are not easily editable and are not well-suited for web pages. Converting a PDF to HTML allows the content of the document to be easily edited, searched, and indexed by search engines, and allows the document to be more easily viewed on the web.","title":"Convert PDF documents to HTML using C#"},{"content":"In this digital world, almost everyone is aware of and is using the popular MS Word (DOC/DOCX) and PDF documents. Both formats have their pros and cons. Everyone uses these document formats according to one’s needs. Such extensive usage increases the requirement to convert these formats into each other. In this article, we will learn how to convert MS Word documents (DOC/DOCX) files into PDF format in Java. Further, we will see how to transform specific pages of any password-protected Word document within the Java application.\nJava API to Convert Word Files to PDF GroupDocs has its GroupDocs.Conversion solution for Java developers. It helps programmers in the conversion of various documents and image formats with its efficient and robust Java API. In this article, I will use its GroupDocs.Conversion for Java API to convert the DOC/DOCX documents into PDF format.\nYou can download the JAR file from the downloads section or use the latest repository and dependency configurations within your Maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;groupdocs-artifacts-repository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifacts Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.12\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; How to Convert Word (DOC/DOCX) to PDF in Java Here we will see the basic conversion of a Word document into a PDF in Java. The following steps transform all the pages of a DOCX file into a PDF file in Java.\nLoad the Word DOC/DOCX file using the Converter class. Transform the loaded document into PDF format using the convert method. That’s it. The following Java code converts the whole Word document into PDF format.\nConvert Selected Pages of Password-Protected Word Documents in Java Similarly, you can also convert locked and protected Word documents into other formats. The following steps show how to convert selective pages of a password-protected Word document into PDF format in Java.\nPrepare the loading options using the WordProcessingLoadOptions class. Now, load the Word DOC/DOCX file using the Converter class. Prepare the conversion options for the PDF file using the PdfConvertOptions class. Prepare the list of targeted pages that needs to get converted using setPages, setPageNumber, and setPageCount methods. Convert the loaded Word file into PDF format using the convert method. The following Java code converts the selected pages of the password-protected Word document into PDF format.\nConclusion To sum up, today we discussed the conversion the MS Word (DOC/DOCX) files to PDF format in Java. Likewise, we also converted the selected pages of a password-protected document into PDF within the Java application.\nYou can learn more about the Document Conversion Automation API using its documentation, API Reference, or by experiencing its GitHub examples. You can reach us for any query via the forum.\nRelated Article How to Convert Word to PDF using C# See Also Watermark PDF Files in Java Remove Pages from PDF in Java PDF to Grayscale in Java Word to Markdown in Java Markdown Files to PDF in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-word-doc-docx-to-pdf-in-java/","summary":"In this digital world, almost everyone is aware of and using the popular MS Word (DOC/DOCX) and PDF documents. Both formats have their pros and cons. Everyone uses these document formats according to one’s needs. Such extensive usage increases the requirement to convert these formats into each other. In this article, we will learn how to convert MS Word documents (DOC/DOCX) files into PDF format in Java. Further, we will see how to transform specific pages of any password-protected Word document within the Java application.","title":"Convert Word Documents to PDF in Java"},{"content":"MS Word and PDF documents are among the popular document formats used by almost every business and industry. Due to their extensive usage, there has been a huge requirement to convert these formats into each other. In this article, we will learn how to convert MS Word documents of DOC/DOCX format into PDF format using C#. Additionally, we will see how to transform specific pages of any password-protected Word document using C# with .NET API for document conversion.\n.NET API to Convert Word Files to PDF GroupDocs empowers .NET developers with GroupDocs.Conversion solution. It helps programmers in the conversion of various documents and image formats with its efficient and reliable .NET API. In the examples of this article, I will use its GroupDocs.Conversion for .NET API to convert Word documents into PDF format.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Conversion How to Convert Word (DOC/DOCX) to PDF using C# Let’s start with the basic conversion of a Word document into a PDF using C#. The following steps transform all the pages of a Word file into a PDF file.\nLoad the Word DOC/DOCX file using the Converter class. Call the Convert method to transform the loaded document into PDF format. The following C# code converts the whole Word document into PDF format.\nConvert Selected Pages of Password-Protected Word Documents using C# You can also convert protected or locked Word documents. The following steps show how to convert selective pages of a locked Word document into PDF format using C#.\nPrepare the loading options using the WordProcessingLoadOptions class. Now, load the Word DOC/DOCX file using the Converter class. Prepare the conversion options for the PDF file using the PdfConvertOptions class. Define the list of candidate pages to convert using Pages, PageNumber, and PageCount properties. Convert the loaded Word file into PDF format using the Convert method. The following C# code converts the selected pages of the password-protected Word document into PDF format.\nConclusion To conclude the article, we discussed converting the MS Word (DOC/DOCX) files to PDF format using C#. Furthermore, we converted the selected pages of password-protected word documents into PDF using the same .NET API.\nYou can learn more about the .NET Conversion Automation API using the documentation, API Reference, or by experiencing the GitHub examples. You can reach us for any query via the forum.\nRelated Article How to Convert Word to PDF in Java See Also Watermark PDF Files using C# Remove Pages from PDF using C# PDF to Grayscale using C# Word to Markdown using C# Markdown Files to PDF using C# Convert PDF to HTML using C# ","permalink":"https://blog.groupdocs.com/conversion/convert-word-doc-docx-to-pdf-using-csharp/","summary":"MS Word and PDF documents are among the popular document formats used by almost every business and industry. Due to their extensive usage, there has been a huge requirement to convert these formats into each other. In this article, we will learn how to convert MS Word documents of DOC/DOCX format into PDF format using C#. Additionally, we will see how to transform specific pages of any password-protected Word document using C# with .NET API for document conversion.","title":"Convert Word Documents to PDF using C#"},{"content":"Portable Document Format (PDF) is a popular and widely used document format developed by Adobe. PDF documents can contain a variety of content including formatted text, images, annotations, form fields, etc. Parsing PDF documents programmatically is a popular use case and there are multiple ways of extracting the text. However, extracting images from a PDF document is a complex task. This article demonstrates how easily you can extract images from PDF documents programmatically in C#.\n.NET API to Extract Images from PDF Files GroupDocs.Parser for .NET API will play its part in the extraction of images from PDF files. Along with the PDF, the API supports the parsing, and extraction of images from word-processing documents, spreadsheets, eBooks, presentations, emails, ZIP archives, and many other document formats.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Parser Steps to Extract Images from a PDF document using C# Let’s quickly look step by step at how to get images from the PDF file using a few lines of C# code.\nCreate a new project. Download the API as mentioned above or update to the latest API version. Add the following namespaces: Load the PDF document using Parser class. Extract images from the document using GetImages method. Access each image from the collection and save it using the Save method. You can save the images in various different images like JPG, PNG, BMP, WebP, or GIF.\nC# Complete Code – Image Extraction from PDF Here is the complete code that will allow you to get all the images from a PDF file.\nResults Sample PDF Document\nExtracted Images\nIf you require, it is also explained in a separate article that how you can Extract Images from any Specific Page of a PDF Document using C#.\nRead More You can explore more about the .NET data extraction API using its documentation. Also, you can share your queries with us via our forum.\nSee Also Convert Images to PDF in C# Add Watermark to Images using C# Extract Images from EPUB, FB2, CHM eBooks in C# Find and Replace Text in PDF using C# ","permalink":"https://blog.groupdocs.com/parser/extract-images-from-pdf-files-in-csharp/","summary":"Portable Document Format (PDF) is a popular and widely used document format developed by Adobe. PDF documents can contain a variety of content including formatted text, images, annotations, form fields, etc. Parsing PDF documents programmatically is a popular use case and there are multiple ways of extracting the text. However, extracting images from a PDF document is a complex task. This article demonstrates how easily you can extract images from PDF documents programmatically in C#.","title":"Extract Images from PDF Documents using C#"},{"content":"Two and more spreadsheets are often required to get merged. In order to combine Excel files in large numbers or merge them within your application, you can write just a few lines of Java code. This article discusses ways how you can merge Excel files and spreadsheets into a single one in Java. Further, it also shows how to join specific sheets from different files.\nThe following topics are covered in this article:\nJava API to Merge Excel Files Merge Excel Files and Spreadsheets Merge Specific Sheets of Multiple Excel files Java API to Merge Excel Files GroupDocs showcases document automation Java APIs for merging identical and distinct types of documents. Along with merging multiple Excel files, it also allows documents to split, move certain pages, and remove, swap, or extract pages from various documents using very thin code.\nThis article uses GroupDocs.Merger for Java in the examples. You can download the JAR file from the downloads section or use the latest repository and dependency configurations within your Maven-based Java applications.\n\u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-merger\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.12\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; How to Merge Excel Files and Spreadsheets in Java If two spreadsheets have identical or matching records, these can be combined to eliminate data redundancy and confusion. The following are the steps for how to combine Excel files (XLS or XLSX) within the Java application.\nLoad the first Excel spreadsheet using the Merger class. Combine the second spreadsheet using the join method. Keep joining more spreadsheets using the same join Method. Save the merged spreadsheet output file using the save method. The following Java code snippet merges multiple Excel spreadsheets.\nHow to Merge Specific Sheets of Multiple Excel files in Java You can also merge specific sheets of your choice from the multiple Excel spreadsheet files. The following steps show how to merge specific sheets from Excel files in Java.\nLoad the first Excel file using the Merger class. Select the specific sheets to join using the JoinOptions class. Now, combine both sets of spreadsheets using the join method with the prepared join options. Save the merged spreadsheets into a separate file using the save method. The following Java code snippet combines the selected spreadsheets of the multiple Excel files into one.\nFree API License You can get a free temporary license and merge your Excel files data without evaluation limitations.\nConclusion To sum up, today we discussed how two or more Excel spreadsheets can be merged within the Java application. More specifically first, we combined all the sheets of Excel files. Later, we merged a few selected sheets from multiple files into one. You can use the document merging feature within your Java applications to combine multiple Excel files online.\nLearn More \u0026amp; Get in Touch In case you want to know more about the .NET Merger API by GroupDocs, visit: Documentation | API Reference | GitHub Examples\nContact us on the forum about any queries.\nSee Also Combine Multiple Excel Files Online Merge PowerPoint Files \u0026amp; Presentation Slides in Java Merge Multiple File Types into One using Java Different Ways to Split PDF Files in Java Merge or Split PDF, Word, and Excel Documents in Java ","permalink":"https://blog.groupdocs.com/merger/merge-excel-files-and-spreadsheets-in-java/","summary":"Two and more spreadsheets are often required to get merged. In order to combine Excel files in large numbers or merge them within your application, you can write just a few lines of Java code. This article discusses ways how you can merge Excel files and spreadsheets into a single one in Java. Further, it also shows how to join specific sheets from different files.","title":"Merge Excel Files and Spreadsheets in Java"},{"content":"PDF, being one of the most popular file formats is in use by almost every business and industry. PDF documents can contain diverse content including formatted text, images, annotations, etc. It is often required to extract the content from the PDF files. Here in this article, we will discuss how to programmatically extract images from PDF documents in Java.\nJava API to Extract Images from PDF Files GroupDocs provides GroupDocs.Parser for Java developers for the extraction of images from PDF files. Along with the PDF file, the same API supports the parsing as well as extraction of images from various other document formats like word-processing documents, spreadsheets, eBooks, presentations, emails, ZIP archives, and many other document formats.\nDownload or Configure You may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;groupdocs-artifacts-repository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifacts Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://releases.groupdocs.com/java/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-parser\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.11\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Steps to Extract Images from a PDF document in Java The following are the step-by-step points that show how to get images from the PDF file using a few lines of Java code.\nCreate a new project. Download the API as mentioned above or update to the latest API version. Import the following classes: Load the PDF document using the Parser class. Extract all the images from the document using getImages method. Access each image from the collection and save it using the save method. Images can be saved in various different image formats like PNG, JPG, BMP, WebP, or GIF.\nJava Complete Code – Image Extraction from PDF Here is the complete source code that allows you to get all the images from the provided PDF file.\nResults Sample PDF Document\nExtracted Images\nIf you require, it is also explained in a separate article that how you can Extract Images from any Specific Page of a PDF Document in Java.\nRead More You can explore more about the data extraction Java API using its documentation. You can share your queries with us via our forum.\nSee Also Convert Images to PDF in Java Add Watermark to Images in Java Extract Images from EPUB, FB2, CHM eBooks in Java Word Search and Replace Text in PDF using Java ","permalink":"https://blog.groupdocs.com/parser/extract-images-from-pdf-files-in-java/","summary":"PDF, being one of the most popular file formats is in use by almost every business and industry. PDF documents can contain diverse content including formatted text, images, annotations, etc. It is often required to extract the content from the PDF files. Here in this article, we will discuss how to programmatically extract images from PDF documents in Java.","title":"Extract Images from PDF Documents in Java"},{"content":"Merging data from two spreadsheet files is not a difficult task in Excel but what about if you have to combine files in large numbers? Don’t think to do it manually, just automate it. Combining two or more spreadsheets into a single one is just a job of a few lines of code. This article discusses ways how to merge Excel files and spreadsheets into a single one using C#. Further, it will also show how you can join specific sheets of different files using a similar C# code.\nThe following topics are covered in this article:\n.NET API to Merge Excel Files Merge Excel Files and Spreadsheets Merge Specific Sheets of Multiple Excel files .NET API to Merge Excel Files GroupDocs provides high-code document automation APIs for merging similar and multiple types of documents. Along with merging multiple Excel files, it allows splitting documents, moving certain pages, and removing, swapping, or extracting pages from various documents using very less code.\nThe examples in this article use GroupDocs.Merger for .NET. Before you proceed, you better set the environment to use the API from either of the following options:\nInstall or Update the package from NuGet Packages Gallery. Install-Package GroupDocs.Merger OR Update-Package GroupDocs.Merger Download the MSI or DLLs from the downloads section. How to Merge Excel Files and Spreadsheets using C# If two spreadsheets have the same or similar records, you might be thinking to merge such files to avoid switching between files and to reduce workload and confusion. The following steps show how to combine Excel files (XLS or XLSX) within the .NET application using C#.\nLoad the first Excel spreadsheet using the Merger class. Combine the second spreadsheet using the Join method. Keep joining more spreadsheets using the same Join method. Save the merged spreadsheet output file using the Save method. The following C# code snippet merges multiple Excel spreadsheets.\nHow to Merge Specific Sheets of Multiple Excel files using C# Spreadsheet merging should not be limited to just combining the whole spreadsheet. You can also merge specific sheets of your choice from the multiple Excel spreadsheet files. The following steps show how to merge specific sheets using C#.\nLoad the first Excel file using the Merger class. Select the sheets to join using the JoinOptions class. Now, combine both sets of spreadsheets using the Join method along with the prepared join options. Save the merged spreadsheets into a separate file using the Save method. The following C# code snippet combines the selected spreadsheets of the multiple Excel files.\nFree API License You can get a free temporary license and merge your Excel files data without evaluation limitations.\nConclusion To conclude, today we discussed how to merge two or more Excel spreadsheets using C# within the .NET application. More specifically we combined whole Excel spreadsheet files and then merged a few selected sheets from multiple files. You can use this document merging feature within your .NET applications to combine multiple Excel files and chosen spreadsheets online.\nLearn More \u0026amp; Get in Touch In case you want to know more about the .NET Merger API by GroupDocs, visit: Documentation | API Reference | GitHub Examples.\nContact us on the forum about any queries.\nSee Also Join Two or More Excel Spreadsheet Files Online Merge PPT files using C# How to Split PDF Files using C# Merge Multiple File Types into Single Document using C# Merge PDF, Word Documents, Spreadsheets, and Presentation Files in C# ","permalink":"https://blog.groupdocs.com/merger/merge-excel-files-and-spreadsheets-using-csharp/","summary":"Merging data from two spreadsheet files is not a difficult task in Excel but what about if you have to combine files in large numbers? Don’t think to do it manually, just automate it. Combining two or more spreadsheets into a single one is just a job of a few lines of code. This article discusses ways how to merge Excel files and spreadsheets into a single one using C#. Further, it will also show how you can join specific sheets of different files using a similar C# code.","title":"Merge Excel Files and Spreadsheets using C#"},{"content":"Joining multiple presentations into a single one is now just a task of few lines of code. This article discusses different ways how to merge multiple PowerPoint presentations into a single one in Java. Furthermore, it will show how you can merge specific slides of two or more presentations using a similar java source code.\nThe following topics are covered in this article:\nPresentation Merger Java API How to Merge PowerPoint Presentations How to Merge Specific Presentation Slides Java API to Merge Presentations GroupDocs equips high-code document automation APIs for merging similar and multiple types of documents. It allows the merging and splitting of documents, moving certain pages, removing, swapping, and extracting pages from various documents with just a few lines of code.\nThis article uses GroupDocs.Merger for Java in the examples. You can download the JAR file from the downloads section or use the latest repository and dependency configurations within your Maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;groupdocs-artifacts-repository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifacts Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://releases.groupdocs.com/java/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-merger\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.7\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; How to Merge PowerPoint Presentations (PPT/PPTX) in Java Combining multiple presentations is quite similar to combining just 2 files. The following steps show how to merge PPT or PPTX presentation files within the application using Java.\nLoad the first presentation using the Merger class. Combine the second presentation using the join method. Keep joining more PPT or PPTX files using the same join Method. Save the merged presentations file using the save method. The following Java code snippet merges multiple PowerPoint presentations.\nHow to Merge Specific Presentation Slides in Java You can also merge specific slides of multiple presentations. The following steps show how to merge specific presentation slides in Java.\nLoad the first presentation using the Merger class. Define the slides to join using the JoinOptions class. Now, combine both presentations using the join method with prepared join options. Save the merged presentation file using the save method. The following Java code snippet combines the selected slides of the presentations.\nFree API License You can get a free license and merge your presentations without evaluation limitations.\nConclusion In this article, we discussed how to merge two or more PPT files in Java. Precisely we combined whole presentations and then also merged a few selected slides from multiple presentations. You can use this merging feature in your Java applications.\nLearn More \u0026amp; Get in Touch In case you want to know more about the Java Merger API by GroupDocs, visit: Documentation | API reference | GitHub Examples\nContact us on the forum about any queries.\nSee Also Combine Multiple PPT/PPTX Files Online Merge PPT files using C# Merge Multiple File Types into One using Java Different Ways to Split PDF Files in Java Merge or Split PDF, Word, and Excel Documents in Java ","permalink":"https://blog.groupdocs.com/merger/merge-powerpoint-ppt-pptx-slides-in-java/","summary":"Joining multiple presentations into a single one is now just a task of few lines of code. This article discusses different ways how to merge multiple PowerPoint presentations into a single one in Java. Furthermore, it will show how you can merge specific slides of two or more presentations using a similar java source code.","title":"Merge PowerPoint Presentations \u0026 Slides in Java"},{"content":"Combining two or more presentations into a single one is just a few lines of code away. This article discusses different ways how to merge multiple PowerPoint presentations into a single one using C#. Further, it will also show how you can join specific slides of different presentations using a similar C# code.\nThe following topics are covered in this article:\n.NET API for Combining Presentations How to Merge PowerPoint Presentations How to Merge Specific Presentation Slides .NET API to Merge Presentations GroupDocs provides high-code automation APIs for merging similar and multiple types of documents. Along with merging PowerPoint files, it allows splitting documents, moving certain pages, and removing, swapping, or extracting pages from various documents using very little code.\nI will be using its GroupDocs.Merger for .NET in the examples below. Before you proceed, you may get the API from either of the following options:\nInstall or Update the package from NuGet Packages Gallery. Install-Package GroupDocs.Merger OR Update-Package GroupDocs.Merger Download the MSI or DLLs from the downloads section. How to Merge PowerPoint Presentations (PPT/PPTX) using C# Combining two or more presentations is quite simple. The following steps show how to merge PPT or PPTX files within the .NET application using C#.\nLoad the first presentation using the Merger class. Combine the second presentation using the Join method. Keep joining more PPT or PPTX files using the same Join Method. Save the merged presentations file using the Save method. The following C# code snippet merges multiple PowerPoint presentations.\nHow to Merge Specific Presentation Slides using C# You can also merge specific slides of multiple presentations. The following steps show how to merge specific presentation slides using C#.\nLoad the first presentation using the Merger class. Select the slides to join using the JoinOptions class. Now, combine both presentations using the Join method with prepared join options. Save the merged presentation file using the Save method. The following C# code snippet combines the selected slides of the presentations.\nFree API License You can get a free temporary license and merge your presentations without evaluation limitations.\nConclusion To conclude, today you learned to merge two or more PPT files using C# within your .NET application. More specifically we combined whole presentations and then merged a few selected slides from the presentations. You can use the merging feature in your .NET applications to merge ppt files online.\nLearn More \u0026amp; Get in Touch In case you want to know more about the .NET Merger API by GroupDocs, visit: Documentation | API reference | GitHub Examples.\nContact us on the forum about any queries.\nSee Also Merge PPT files in Java Combine PowerPoint Presentations Online How to Split PDF Files using C# Merge Multiple File Types into Single Document using C# Merge PDF, Word Documents, Spreadsheets, and Presentation Files in C# ","permalink":"https://blog.groupdocs.com/merger/merge-powerpoint-ppt-pptx-slides-using-csharp/","summary":"Combining two or more presentations into a single one is just a few lines of code away. This article discusses different ways how to merge multiple PowerPoint presentations into a single one using C#. Further, it will also show how you can join specific slides of different presentations using a similar C# code.","title":"Merge PowerPoint Presentations \u0026 Slides using C#"},{"content":"\rThe support of markdown files by word processing editors has increased its usage at a large scale. Hence the conversion of existing text content into markdown format is often demanded. This article discusses how to programmatically convert Word documents into markdown files in Java. Recently, we have already discussed some of the following related topics:\nConvert Word to Markdown using C# Extract Text from Markdown Files in Java Convert Markdown Files to PDF Java Java API to Parse and Convert Markdown Files GroupDocs provides APIs that allow Word document parsing and its conversion into other formats within applications. We will use its Java API to parse and transform Word DOC/DOCX files into MD files. Further, the API supports parsing many other file formats like PDFs, spreadsheets, presentations, eBooks, markup documents, email messages, images, and many others mentioned in the documentation.\nYou can download the JAR file from the downloads section or use the latest repository and dependency configurations within your Maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;groupdocs-artifacts-repository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifacts Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://releases.groupdocs.com/java/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-parser\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.6\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; How to Convert Word to Markdown in Java Why not just move straight to the topic of your interest and let’s transform the Microsoft Word document into markdown format? The following steps show how to convert the Word DOC/DOCX to Markdown in Java.\nLoad the MS Word file using the Parser class. Get the formatted text of the loaded file using the FormattedTextOptions class and Markdown mode. Read the complete content using the readToEnd method. Convert it to markdown format by writing the content to an MD file using the write method of FileWriter class. The following Java source code converts the MS Word to a Markdown file.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To summarize, we learned to convert Word files into markdown format in Java within the applications. You can utilize this feature within your application. You can extend your application by using other available features of the API.\nLearn more about the Java Parser API using its documentation and by experiencing the examples available on GitHub. Contact us for any query via the forum.\nSee Also Compare Word Documents in Java Watermark Password Protected Documents in Java ","permalink":"https://blog.groupdocs.com/parser/convert-word-to-markdown-in-java/","summary":"The support of markdown files by word processing editors has increased its usage at a large scale. Hence the conversion of existing text content into markdown format is often demanded. This article discusses how to programmatically convert Word documents into markdown files in Java.","title":"Convert Word to Markdown in Java"},{"content":"Word-processing documents are present in almost every device in this digital world. Similarly, almost every word processing editor started supporting the markdown format. The continuous increase of MD files as the webpages increases the transformation of Word content into websites using markdown format. This article discusses how to programmatically convert Word documents into markdown files using C#.\n.NET API to Parse and Convert Markdown Files GroupDocs showcases its .NET API that allows the parsing and Word document conversion into other formats within the .NET applications. We will use its GroupDocs.Parser for .NET for the parsing and transforming Word DOC/DOCX files into MD files. Additionally, the API supports parsing many other file formats like PDFs, spreadsheets, presentations, eBooks, markup documents, email formats, archives, images, and many others mentioned in the documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Parser How to Convert Word to Markdown using C# Let’s quickly jump to the objective and transform the Microsoft Word document into markdown format. The following steps show how to convert the Word DOC/DOCX to Markdown using C#.\nLoad the MS Word file using the Parser class. Get the formatted text of the loaded file using the FormattedTextOptions class and Markdown mode. Read the complete content using the ReadToEnd method. Convert it to Markdown by writing the content to an MD file using the Write method of TextWriter class. The following C# source code converts the MS Word docx file to Markdown format.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To sum up, we learned to convert Word files into markdown format using C# within our .NET applications. You can use this feature within your application. You can extend your application by using other available features of the API.\nLearn more about the .NET Parser API using its documentation and by experiencing the examples available on GitHub. Contact us for any query via the forum.\nSee Also Convert Word to Markdown in Java Extract Text from Markdown Files using C# Convert Markdown Files to PDF using C# Compare Word Documents using C# Watermark Password Protected Documents using C# ","permalink":"https://blog.groupdocs.com/parser/convert-word-to-markdown-using-csharp/","summary":"Word-processing documents are present in almost every device in this digital world. Similarly, almost every word processing editor started supporting the markdown format. The continuous increase of MD files as the webpages increases the transformation of Word content into websites using markdown format. This article discusses how to programmatically convert Word documents into markdown files using C#.","title":"Convert Word to Markdown using C#"},{"content":"Developers often have requirements to extract text from various documents. We have already discussed extracting ZIP archives, counting words in documents, extracting images from eBooks, and a few other parsing ways. Today, in this article, you will learn how to parse and extract text from the Markdown files in Java.\nJava API for Markdown Text Extraction GroupDocs provides Java API to parse documents and extract text from various document formats within the Java applications. The API supports parsing of many file formats like:\nWord-processing Documents: DOC, DOCX, … Spreadsheets: XLS, XLSX, … Presentations: PPT, PPTX, …. eBooks: EPUB, FB2, … Barcode images: JPG, PNG, … The complete list is mentioned in the documentation. In this article, we will use its GroupDocs.Parser for Java to only extract text from the MD files using Java.\nYou may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;groupdocs-artifacts-repository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifacts Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://releases.groupdocs.com/java/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-parser\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.6\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Extract Text from Markdown File in Java The following are the steps to extract the whole text content from the markdown file in Java.\nLoad the MD file using the Parser class. Extract the whole text into TextReader using the getText method. Use the text as you wish. The following Java source code extracts the textual content of the MD file.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To sum up, the article explained the basic and quick way how to extract text from the markdown files in Java. This approach may have let you think to develop your text extraction and document parser application like the Online Document Parser developed by GroupDocs.\nYou can learn more about document parsing Java API using its documentation. The quick way to learn is to experience the examples that are available on GitHub. Contact us for any query via the forum.\nSee Also Extract Text from Markdown Files using C#\nCount Words and Occurrences of Each Word in a Document in Java\nExtract ZIP Files Data in Java\nExtract Images from EPUB, FB2, and CHM eBooks in Java\nRead PDF Form Fields in Java\n","permalink":"https://blog.groupdocs.com/parser/extract-text-from-markdown-files-in-java/","summary":"Developers often have requirements to extract text from various documents. We have already discussed extracting ZIP archives, counting words in documents, extracting images from eBooks, and a few other parsing ways. Today, in this article, you will learn how to parse and extract text from the Markdown files in Java.","title":"Extract Text from Markdown Files in Java"},{"content":"As a programmer, we often have a requirement to get the text extracted from various kinds of documents. Previously we have discussed counting words in documents, extracting ZIP archives, extracting images from eBooks, and parsing PDF form fields. Today, in this article, you will learn how to parse and extract text from Markdown files using C#.\n.NET API for Markdown Text Extraction GroupDocs provides its .NET API to parse documents and extract text from various document formats within the .NET applications. In this article, we will use its GroupDocs.Parser for .NET to extract text from the MD files using C#.\nAdditionally, the API supports parsing of many other file formats like word-processing documents (DOC, DOCX, …), spreadsheets (XLS, XLSX, …), presentations (PPT, PPTX, …), eBooks (EPUB, FB2, …), barcode images (JPG, PNG, …), and many others mentioned in its documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Parser Extract Text from Markdown File in C# The following are the steps to extract the whole text content from the markdown file using C#.\nLoad the MD file using the Parser class. Extract the whole text into TextReader using the GetText method. Use the text as you wish. The following C# source code extracts the textual content of the MD file.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To sum up, we discussed how to extract text from the markdown files in C# with an example. This may have guided you to develop your own text extraction or document parser application like the Online Document Parser developed by GroupDocs.\nYou can learn more about the document parsing .NET API using its documentation. The best way to learn is to experience the examples that are available on GitHub. Contact us for any query via the forum.\nSee Also Extract Text from Markdown Files in Java\nCount Words and Occurrences of Each Word in a Document using C#\nExtract ZIP Files Data in C#\nExtract Images from EPUB, FB2, and CHM eBooks in C#\nRead PDF Form Fields using C#\n","permalink":"https://blog.groupdocs.com/parser/extract-text-from-markdown-files-using-csharp/","summary":"As a programmer, we often have a requirement to get the text extracted from various kinds of documents. Previously we have discussed counting words in documents, extracting ZIP archives, extracting images from eBooks, and parsing PDF form fields. Today, in this article, you will learn how to parse and extract text from Markdown files using C#.","title":"Extract Text from Markdown Files using C#"},{"content":"Markdown is the markup language widely used for creating websites, readme files, and documents. It simply requires adding formatting elements to the plain text. It has vast compatibility that increases its usage and also its rendering requirement to other document formats. In this article, you will learn how to programmatically convert markdown files to PDF format in Java.\nJava API to Convert Markdown Files GroupDocs provides its Java API to transform markdown files into other formats within Java applications. This article uses GroupDocs.Conversion for Java for the conversion of MD files to PDF format. Additionally, the API supports many other conversions of file formats like word-processing documents, spreadsheets, presentations, eBooks, images, and many others mentioned in the documentation.\nYou can download the JAR file from the downloads section or use the latest repository and dependency configurations within your Maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;groupdocs-artifacts-repository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifacts Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.8.1\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert Markdown to PDF in Java To convert the whole markdown file content to PDF, there are simple steps. The following steps show how to convert the markdown MD file to PDF format in Java.\nLoad the markdown file using the Converter class. Prepare the PDF conversion options. Set any other PDF options like page margins, watermark, page orientation, etc. Convert the markdown file into PDF format using the convert() method. The following Java source code converts the Markdown file to PDF.\nThe snippet of MD file and the converted PDF file from the above code is shown below.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To sum up we learned how markdown files can be converted into PDF format using Java. This should help you develop an online document conversion application.\nYou can learn more about the API from its documentation. Start experiencing the GitHub examples of the features. Contact us for any query via the forum.\nSee Also Convert Markdown Files to PDF using C# Convert SVG to JPG in Java Convert Images to PDF in Java AutoCAD DWG Drawings Conversion to PDF in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-markdown-to-pdf-in-java/","summary":"Markdown is the markup language widely used for creating websites, readme files, and documents. It simply requires adding formatting elements to the plain text. It has vast compatibility that increases its usage and also its rendering requirement to other document formats. In this article, you will learn how to programmatically convert markdown files to PDF format in Java.","title":"Convert Markdown Files to PDF in Java"},{"content":"Markdown is a lightweight markup language widely used to create websites, documents, and readme files by simply adding formatting elements to plain text. It is widely supported by almost all browsers and text editors. Its huge compatibility increases its usage and also its rendering to and from other portable document formats. In this article, you will learn how to programmatically convert the markdown files to PDF format using C#.\n.NET API to Convert Markdown Files GroupDocs showcases its .NET API to convert markdown files into other formats within .NET applications. In this article, we will use its GroupDocs.Conversion for .NET for the conversion of MD files to PDF format. Additionally, the API supports the conversion of many other file formats like word-processing documents, spreadsheets, presentations, eBooks, images, and many others mentioned in the documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Conversion Convert Markdown to PDF using C# Let’s quickly jump to the objective and transform the markdown files into PDF format. The following steps show how to convert the markdown MD file to PDF format in C#.\nLoad the markdown file using the Converter class. Prepare the PDF conversion options. Set any other PDF options like page margins, page orientation, watermark, etc. Convert the markdown file into PDF format using the Convert() method. The following C# source code converts the Markdown file to PDF.\nThe snippet of MD file and the converted PDF file from the above code is shown below.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To conclude we discussed how markdown files can be converted into PDF format in C#. This may have guided you to develop your own conversion application like the online MD to PDF Converter developed by GroupDocs.\nYou can learn more about the Conversion .NET API using its documentation. In my opinion, the best way to learn is to start experiencing the examples that are available on GitHub. Contact us for any query via the forum.\nSee Also Convert Markdown Files to PDF in Java Convert SVG to JPG using C# Convert Excel Spreadsheets to PDF using C# AutoCAD DWG Drawings Conversion to PDF in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-markdown-to-pdf-in-csharp/","summary":"Markdown is a lightweight markup language widely used to create websites, documents, and readme files by simply adding formatting elements to plain text. It is widely supported by almost all browsers and text editors. Its huge compatibility increases its usage and also its rendering to and from other portable document formats. In this article, you will learn how to programmatically convert the markdown files to PDF format using C#.","title":"Convert Markdown Files to PDF using C#"},{"content":"\rThe self-describing, easy-to-understand, and easy-to-parse, JSON format is one of the ideal choices to interchange data in web services. With this huge usage, it is often required to convert JSON data format into other formats for various requirements. In this article, we will see how to render JSON files into PDF format in Java. Furhter, we will also convert the JSON files into JPG, PNG, and HTML formats within the Java application.\nToday, we will separately see how to render:\nJSON to PDF in Java JSON to JPG in Java JSON to PNG in Java JSON to HTML in Java We have already discussed the following topics regarding JSON:\nGenerate Reports from JSON Data in Java JSON Viewer using C# Render JSON as PDF, JPG, PNG \u0026amp; HTML using C# Just in case, if you are not having the updated environment, let’s quickly get what is needed for JSON rendering.\nJSON File Viewer – Java API GroupDocs offers document viewer API for Java applications that allows rendering various file formats into PDF, JPG, PNG, and HTML formats. I will use this GroupDocs.Viewer for Java to view a JSON file by rendering it to other mentioned formats using source code examples.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;groupdocs-artifacts-repository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifacts Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-viewer\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.9\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; JSON to PDF using Java PDF format is famous for its portability and it is often required while sharing files. The following steps show how to render JSON files in PDF format using Java.\nLoad the JSON file using the Viewer class. Prepare the PDF rendering options using the PdfViewOptions class. Convert the JSON file to PDF by just calling the view() method. The following Java code example renders the JSON files into PDF format.\nView JSON File as JPG, PNG, or HTML using Java Similarly, other formats can be obtained from a JSON file. The following steps help you render the JSON files into different formats using Java.\nLoad the JSON file using the Viewer class. Prepare the rendering options according to the conversion format: JPG rendering uses the JpgViewOptions class. PNG rendering requires the PngViewOptions class. HTML rendering needs the HtmlViewOptions class. There are different additional options while converting JSON to HTML: Convert to HTML with embedded resources. JSON to HTML with external resources. Convert to responsive HTML. Use the view() method to render JSON files as HTML, JPG, or PNG files. Below Java examples separately render JSON files into each format using the respective conversion options.\nJSON to JPG using Java The following Java code converts the JSON file into JPG format.\nJSON to PNG using Java The following code converts the JSON file into PNG format using Java.\nJSON to Responsive HTML using Java The following Java source code converts the JSON file into Responsive HTML with embedded resources. Similarly, you can also convert it with external resources using the forExternalResources method.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations to build an online JSON file viewer.\nConclusion To sum up, we learned to render the JSON files into other formats. Specifically, we converted the JSON Data files into PDF, JPG, and PNG in Java. Finally, we learned to render the JSON as responsive HTML with either external or embedded resources using the Java example.\nI hope, this will boost you to develop a JSON viewer Java application like Groupdocs.Viewer Online App.\nYou can learn more about GroupDocs.Viewer for Java from its documentation and GitHub examples. For queries, contact us via the forum.\nSee Also STL File Viewer using Java JSON Viewer in Java Generate Reports from JSON Data in Java Render Word documents as Minified HTML in Java ","permalink":"https://blog.groupdocs.com/viewer/render-json-as-pdf-jpg-png-html-using-java/","summary":"The self-describing, easy-to-understand, and easy-to-parse, JSON format is one of the ideal choices to interchange data in web services. With this huge usage, it is often required to convert JSON data format into other formats for various requirements. In this article, we will see how to render JSON files into PDF format in Java. Furhter, we will also convert the JSON files into JPG, PNG, and HTML formats within the Java application.","title":"Render JSON as PDF, JPG, PNG \u0026 HTML using Java"},{"content":"\rFor being lightweight, text-based, very much human-readable, and easy to parse structured data format, JSON has popularity in the programming universe. As it is in too much use, It is often required to view or share JSON files in different others formats. This article briefly shows, how to render a JSON file in PDF format using Java.\nJSON File Viewer – Java API GroupDocs.Viewer provides a document viewing Java API that allows rendering various types of documents into PDF, JPG, PNG, and HTML formats within the applications. I will use it to view a JSON file by rendering it to PDF format in Java.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;groupdocs-artifacts-repository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifacts Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-viewer\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.9\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; JSON File Viewer in Java The API lets rendering JSON files in PDF, JPG, PNG, and HTML formats. Here, we will only discuss how to render it in a PDF. The following are the step to view JSON files by rendering these to PDF in Java.\nLoad the JSON file using the Viewer class. Use the PDF View Options to define the output file path and additional settings. To render the JSON file in PDF, just call the view() method. The following Java source code renders the JSON file as PDF:\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations to build an online JSON file viewer.\nConclusion To conclude, we just discussed the basic way how to view JSON files within the Java application. We will discuss soon how to render these JSON files as JPG, PNG, and HTML in Java. You can learn more about the API regarding building your JSON viewer from the below links.\nBuild Your Own JSON Viewer Java Application Here are some important links that will help you in building your JSON viewer Java application.\nFeatures | Documentation | API Reference\nRunning Examples – Source Code | Forum | Release Notes\nSee Also STL File Viewer in Java View CAD Documents in Java Generate Reports from JSON Data in Java ","permalink":"https://blog.groupdocs.com/viewer/json-viewer-using-java/","summary":"For being lightweight, text-based, very much human-readable, and easy to parse structured data format, JSON has popularity in the programming universe. As it is in too much use, It is often required to view or share JSON files in different others formats. This article briefly shows, how to render a JSON file in PDF format using Java.","title":"JSON Viewer in Java"},{"content":"\rJSON is one of the favorite structured data formats of developers for passing information within applications. However, it is often required to convert JSON data into other formats for various reasons. In this article, we will see how to render JSON files into PDF format using C#. Additionally, we will convert the JSON files into JPG, PNG, and HTML formats within the .NET application using examples.\nToday, we will separately see the C# way for how to render:\nJSON to PDF JSON to JPG JSON to PNG JSON to HTML We have already discussed the following topics regarding JSON using C#:\nTransform JSON into XML Generate Reports from JSON Data Quick conversion of JSON to CSV \u0026amp; CSV to JSON Now, if you have not yet prepared the environment, let’s quickly get what we need for rendering JSON files.\nJSON File Viewer – .NET API GroupDocs showcases GroupDocs.Viewer that offers document viewer API for .NET applications and efficiently allows rendering various file formats into PDF, JPG, PNG, and HTML formats. I will use this API to view a JSON file by rendering it to other mentioned formats using C# source code examples.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Viewer JSON to PDF using C# It is often required while sharing files to convert the JSON format to PDF format due to its high portability. The following steps show how to render JSON files in PDF format using C#.\nLoad the JSON file using the Viewer class. Prepare the PDF rendering options using the PdfViewOptions class. Use the View() method to render the JSON file as a PDF. The following C# code example renders the JSON files into PDF format.\nView JSON File as JPG, PNG, or HTML using C# Likewise, you can convert JSON files into other formats. The following steps help you render the JSON files into different formats using C#.\nLoad the JSON file using the Viewer class. Prepare the rendering options according to the conversion format: JPG rendering uses the JpgViewOptions class. PNG rendering requires the PngViewOptions class. HTML rendering needs the HtmlViewOptions class. (You can use either embedded or external resources) Use the View() method to render JSON files as HTML, JPG, or PNG. Below are the C# examples that separately render JSON files into each format using the respective format options.\nJSON to JPG using C# The following C# code converts the JSON file into JPG format.\nJSON to PNG using C# The following code converts the JSON file into PNG format using C#.\nJSON to HTML using C# The following C# source code converts the JSON file into HTML format with embedded resources.\nSimilarly, you can also convert it to HTML with external resources using the ForExternalResources method.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations to build an online JSON file viewer.\nConclusion To conclude, we learned to render the JSON files into other formats. Specifically, we converted the JSON Data files into PDF, JPG, PNG, and HTML formats using the C# examples.\nYou can develop your own JSON viewer application like Groupdocs.Viewer Online App.\nTo learn more about GroupDocs.Viewer for .NET, visit its documentation and source code from GitHub. For queries, contact us via the forum.\nSee Also JSON Viewer using C# STL File Viewer using C# Convert JSON to XML in C# Generate Reports from JSON Data in C# Convert JSON to CSV and CSV to JSON using C# ","permalink":"https://blog.groupdocs.com/viewer/render-json-as-pdf-jpg-png-html-using-csharp/","summary":"JSON is one of the favorite structured data formats of developers for passing information within applications. However, it is often required to convert JSON data into other formats for various reasons. In this article, we will see how to render JSON files into PDF format using C#. Additionally, we will convert the JSON files into JPG, PNG, and HTML formats within the .NET application using examples.","title":"Render JSON as PDF, JPG, PNG \u0026 HTML using C#"},{"content":"\rJSON, being very much human-readable and structured data format, it is widely used in the programming world. It is often required to view or share JSON data in a proper format. There comes the need to render JSON files as other document formats like PDF, PNG, JPG, or HTML. This article explains the basic way to view JSON files using simple C# code.\nJSON File Viewer – .NET API GroupDocs.Viewer for .NET is a document viewer API and allows rendering various file formats into PDF, HTML, and image formats like JPG and PNG within the .NET application. I will use it in examples to view a JSON file by rendering it to PDF formats using C#.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Viewer JSON File Viewer using C# The API allows rendering JSON files to render as PDF, JPG, PNG, and HTML formats. Here, you will only see how to render it as a PDF. The following are the step to view JSON files by rendering these to PDF.\nLoad the JSON file using the Viewer class. Use the PDF View Options to define the output path and settings. Call the View() method with set options to get the JSON file in PDF output. The following C# source code renders the JSON file as PDF:\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations to build an online JSON file viewer.\nConclusion To sum up, you just learned the basics of how to view JSON files within the .NET application using C#. Further, we will soon discuss how to render JSON files as JPG, PNG, and HTML.\nYou can learn more about the API regarding building your own JSON viewer from the below links.\nBuild Your Own JSON Viewer .NET Application Here are some important links that will help you in building your own JSON viewer .NET application.\nFeatures | Documentation | API Reference\nRunning Examples – Source Code | Forum | Release Notes\nSee Also STL File Viewer using C# View CAD Documents using C# Convert JSON to CSV and CSV to JSON using C# Generate Reports from JSON Data in C# ","permalink":"https://blog.groupdocs.com/viewer/json-viewer-using-csharp/","summary":"JSON, being very much human-readable and structured data format, it is widely used in the programming world. It is often required to view or share JSON data in a proper format. There comes the need to render JSON files as other document formats like PDF, PNG, JPG, or HTML. This article explains the basic way to view JSON files using simple C# code.","title":"JSON Viewer using C#"},{"content":"We already discussed the comparison of two Word documents even if they were password protected. What if, there are more than two files for comparison? In this article, we will look at how to compare multiple Word documents in Java. Further, we will learn how to accept or reject each of the identified changes to get the desired output.\nThe recent short series of articles already covered the Java way how to:\nPerform a basic comparison of two Word documents Compare password-protected Word documents By the end of this article, you will also have a good understanding of how to:\nComparison of more than two Word files in Java Accept or reject identified changes within Word files in Java If your development environment is not yet ready to perform the comparison, let’s quickly prepare it.\nJava Library to Compare Two or More Word Documents – Setup I hope you are familiar with the document comparison Java API by now. I will be using the same GroupDocs.Comparison to move ahead. You can download or quickly check the development environment of your maven-based applications using the following configurations:\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-comparison\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Now let’s jump to the objective and start with comparing multiple Word files.\nCompare More than Two Word Files in Java Comparing multiple files is not so different as compared to comparing only two files. Just keep on adding more files to the Comparer and finally, hit the compare as you do when comparing two files. The following are the steps to compare more than two Word documents in Java to identify the changes and highlight the found differences.\nLoad the first DOC/DOCX file using the Comparer class. Add the second file to Comparer using the add() method. Keep on adding further document(s) to the Comparer using the same/similar add() methods. Call the compare method to perform the comparison and get the summary of identified changes. The following example shows how to compare multiple Word files in Java and get the changes in the resultant document.\nAccept or Reject Identified Changes within Word Files using Java Pretty sure that you are familiar with the track changes feature of Microsoft Word. Similar to that, you can programmatically accept or reject each of the identified changes for the final output document. The following steps show how you can compare and then accept or reject the identified changes within the DOC/DOCX files of Word documents.\nLoad the source DOC/DOCX document using the Comparer class. Add the second Word document to the Comparer using the add() method. Compare the loaded files using the compare() method. Fetch the collection of identified differences using the getChanges() method. Now traverse the changes, analyze, and then you can set the ComparisonAction of each change accordingly. Set it as Accept to agree with the change. Set it as Reject to deny the change. Call the applyChanges() method to get the modified document with embraced changes. The following Java code snippet compares two DOCX documents and then shows how to accept and reject identified changes.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations to compare multiple Word documents.\nBuild Your Own Comparison Application Here are some important links that will help you in building your own document comparison application.\nFeatures | Documentation | API Reference | Running Examples – Source Code | Support | Release Notes\nSee Also Compare Images in Java CSV Files Comparison in Java Compare Text, Word, and PDF Files using Java Difference Library ","permalink":"https://blog.groupdocs.com/comparison/compare-multiple-word-documents-in-java/","summary":"We already discussed the comparison of two Word documents even if they were password protected. What if, there are more than two files for comparison? In this article, we will look at how to compare multiple Word documents in Java. Further, we will learn how to accept or reject each of the identified changes to get the desired output.","title":"Compare Multiple Word Documents in Java – Accept or Reject Changes"},{"content":"We just learned the basic comparison of DOC/DOCX files. What if, the file(s) are locked or password protected? In this article, we will look at how to compare two or more Word documents in Java if they are password protected.\nMS Word is among the top rich-text editors that are used to draft official documents, invoices, reports, and personal documents. DOC and DOCX are the file formats of word-processing documents that are in vast use.\nAs a Java programmer, you often need to compare two different versions of the same document. So let’s see in this article, how to compare two password-protected Word documents in Java.\nJava Library to Compare Protected Word Documents Steps to Compare Word Documents in Java Compare Word Documents in Java Java Library to Compare Protected Word Documents GroupDocs.Comparison for Java is a robust document and image comparison API for developers. Using this library, you can easily perform comparisons between multiple files. Today, we will use it to compare two or more password-protected documents in Java.\nYou may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-comparison\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Steps to Compare Protected Word Documents in Java To compare two protected Word documents in Java using GroupDocs.Comparison, we will perform the following steps:\nLoad the first Word document by providing the file’s password. Load the second document. (Provide its password if it is also protected) Compare both the loaded document. It’s all done. Check the results.\nNow, let’s implement these steps in Java to compare two protected Word documents.\nCompare Protected Word Documents in Java The following are the steps for the comparison of any two password-protected Word documents (DOC, DOCX) and highlighting their differences in Java.\nPrepare the loading option using the LoadOptions class. Load the first Word document using the Comparer class and loading options. Add the second file to the Comparer using add() method. Finally, call the compare() method to get the comparison summary of the found changes. The following Java code shows how to compare protected Word documents and get the changes in the resultant document.\nHere is the output after comparing two protected Word files using the above code:\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations to compare multiple protected word documents.\nConclusion To conclude, we learned the comparison of two password-protected Word documents in Java. As a result, you got the summary of added and deleted content. In a separate article, we will discuss way to compare more than two Word documents and accept or reject the identified changes.\nYou can also try building your online Java application for document comparison. Learn more about the APIs using its documentation and API References.\nThe easy way to experience the examples is from GitHub. Contact us for any query via the forum.\nSee Also Compare Word Documents in Java Compare Multiple Word Documents in Java – Accept or Reject Changes Compare Image in Java to Spot the Differences Compare Multiple CSV Files in Java ","permalink":"https://blog.groupdocs.com/comparison/compare-protected-word-documents-in-java/","summary":"We just learned the basic comparison of DOC/DOCX files. What if, the file(s) are locked or password protected? In this article, we will look at how to compare two or more Word documents in Java if they are password protected.","title":"Compare Password Protected Word Documents in Java"},{"content":"DOC and DOCX are among the most common document formats used to draft official and personal documents. If a document is changed several times or if it has multiple versions, you can easily compare two different versions of that document. For you as a Java programmer, this article discusses the basic way of how to compare two Word documents and how to highlight the identified differences in Java.\nJava API to Compare Word Documents GroupDocs provides document and image comparison APIs for different platforms. I will use its GroupDocs.Comparison for Java APIs for comparing Word documents.\nYou may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-comparison\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Compare Word Documents in Java You can compare the two versions of a document to find the added, deleted, and changed content. As a result, you will get a new document that shows all the identified changes. The following are the steps to compare any two Word (DOC, DOCX) documents and highlight their differences.\nFirstly, load the first Word document using Comparer class. Then, add the second file to the Comparer using add() method. Finally, compare and get the summary of the changes by just calling compare() method. The following Java code shows how to compare Word documents and get the changes in the resultant document.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To sum up, we learned the simple way to compare two Word documents (DOC/DOCX) in Java. As an output, you got the summary of inserted or deleted content. In a separate article, we will discuss further ways to compare protected word documents and accept or reject the identified changes.\nTry building your own document comparison Java application. You may learn more about the APIs using the documentation and API reference.\nThe easy way to experience the examples is from GitHub. Contact us for any query via the forum.\nSee Also How to Compare Protected Word Documents in Java Compare Multiple Word Documents in Java – Accept or Reject Changes Compare Multiple CSV Files in Java Image Comparison in Java to Spot the Differences ","permalink":"https://blog.groupdocs.com/comparison/compare-word-documents-in-java/","summary":"DOC and DOCX are among the most common document formats used to draft official and personal documents. If a document is changed several times or if it has multiple versions, you can easily compare two different versions of that document. For you as a Java programmer, this article discusses how to compare two Word documents and how to highlight the identified differences in Java.","title":"Compare Word Documents in Java"},{"content":"Whenever transparency is needed in images on the web, PNG is one of the formats that come to mind. SVG image is also one of the commonly used image formats due to its scalability. For displaying small static images, logos, and for images with transparent backgrounds, PNG images are often preferred. Due to compatibility or any other reason, it is often required to convert SVG vector graphics into other formats. This article discusses how to convert SVG vector graphics to PNG images using C#.\n.NET API to Convert Images GroupDocs empowers develpers with its Conversion API to convert image formats into various other formats. The converted image can also be altered while the conversion process by using different advanced options. In this article, I will use its GroupDocs.Conversion for .NET to convert the SVG vector image into PNG images.\nYou can download the DLLs or MSI installer from the downloads section or install the API by adding its package to your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Conversion Running examples for its features are also available on GitHub. Visit its documentation and API Reference for guidance.\nConvert SVG to PNG Image using C# Let’s begin with the conversion of vector graphics into PNG format using the default settings. The following steps show how to convert the SVG image into PNG using C#.\nLoad the SVG file using the Converter class. Prepare the image conversion options. Set the conversion file type as PNG. Invoke Convert() method with prepared options. The following C# source code converts the SVG into a PNG image.\nSVG to PNG Image using Advanced Options using C# Various customizations can be applied to PNG output while conversion of the vector graphics. Here are some of the PNG image features that we can adjust:\nBrightness Contrast Gamma Grayscale Flip Mode (Horizontal / Vertical) Rotation Angles Height Width Watermark The following steps show how to convert an SVG image to PNG, and further apply adjustments to the resultant PNG file.\nLoad the SVG graphic using the Converter class. Prepare the image conversion options. Set the conversion file type as PNG. Define the selective customizations and adjust their values. Convert to a PNG image using the Convert() method with prepared options. The following source code applies customization in SVG to PNG conversion using C#. You can apply any of these or the combination of effects for the desired PNG output.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion Let’s conclude. We learned the basis and little advanced conversion of SVG vector graphics into PNG format using C# within .NET applications. We further learned how to rotate, flip or add watermark to SVG files when converted to PNG format. Additionally, we learned to fine-tune the gamma and brightness, and how to ON and OFF the grayscale options.\nTry running examples from GitHub that will help you build your own SVG to PNG Converter similar to the one available at groupdocs.app. Contact us for any query via the forum.\nSee Also SVG to PNG Online Conversion Convert SVG to JPG using C# Convert Presentations to Images using C# Convert Images to PDF in C# Convert WebP to JPG, PNG, TIFF, and PDF in C# ","permalink":"https://blog.groupdocs.com/conversion/convert-svg-to-png-using-csharp/","summary":"Whenever transparency is needed in images on the web, PNG is one of the formats that come to mind. SVG image is also one of the commonly used image formats due to its scalability. For displaying small static images, logos, and for images with transparent backgrounds, PNG images are often preferred. Due to compatibility or any other reason, it is often required to convert SVG vector graphics into other formats. In this article we will discuss how to convert SVG vector graphics to PNG images using C#.","title":"Convert SVG to PNG using C#"},{"content":"SVG files are Scalable Vector Graphics mainly used on the web. Technically, SVG is an XML-based vector image format for defining 2-dimensional graphics with animation support. SVG Images have high pixel density, so these hardly reduce their quality on zoom-in. These features make the SVG images larger in size as compared to JPG images. Due to differences in features, there comes the need to convert images from one format to another. This article discusses how to convert SVG vectors to JPG images in Java.\nJava API to Convert Images GroupDocs.Conversion equips Java developers with its API to convert various images into different formats. The conversion results can be further customized using multiple advanced options. I will use this Java API, GroupDocs.Conversion for Java to convert the SVG vector files into JPG image format.\nDownload or Configure You may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert SVG to JPG Image in Java Let’s start with the basic conversion with the default settings. The following steps show how to convert the SVG vector graphic into JPG image format in Java.\nLoad the SVG graphic using the Converter class. Prepare the image conversion options. Set the conversion file type as JPG. Convert to JPG image using the appropriate convert() method with prepared options. The following Java source code converts the SVG to a JPG image.\nSVG to JPG Image using Advanced Options in Java While converting the vector graphics, many other options can be applied to JPG output to customize the image according to the requirement. The following are some of the properties that can be adjusted while SVG to JPG conversion:\nBrightness Contrast Gamma Grayscale Flip Mode (Horizontal / Vertical) Rotation Angles Height Width Watermark The following steps show how to apply customizations while converting an SVG graphic to a JPG image in Java.\nLoad the SVG graphic using the Converter class. Prepare the image conversion options. Set the conversion file type as JPG. Set other relevant properties using the respective setter methods and adjust their values accordingly. Convert to JPG image using the convert() method with prepared options. The following source code applies customization to the JPG image while SVG to JPG conversion in Java. You may apply any of these effects or in combination to get the desired JPG output.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To conclude, we learned to convert SVG vector graphics into JPG format within Java applications. We also discussed how we can rotate, flip, or watermark SVG files when converted to JPG. Furthermore, we adjusted brightness, gamma, and grayscale options.\nTry building your own image conversion Java application, you may learn more about the low code and high code Java APIs from the documentation for the automation of document and image conversions.\nThe easiest way is to experience the examples from GitHub. Contact us for any query via the forum.\nSee Also SVG to JPG - Online \u0026amp; Programmatic Conversion Convert SVG to PNG in Java CAD Drawings to PDF in Java WebP Image to JPG, PNG, PDF in Java Convert PDF to Grayscale in Java Presentations to PDF in Java Transform Presentations to Images in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-svg-to-jpg-in-java/","summary":"SVG Images have high pixel density, so these hardly reduce their quality on zoom-in. These features make the SVG images larger in size as compared to JPG images. Due to differences in features, there comes the need to convert images from one format to another. This article discusses how to convert SVG vectors to JPG images in Java.","title":"Convert SVG to JPG in Java"},{"content":"\rWe have already discussed the basic way how to compare two CSV files within our Java applications. Today, in this article, we will further learn to compare more than two CSV in Java. We will further discuss how to compare password-protected CSV files. Lastly, will look into how to accept and reject the found changes using the comparison API within the Java application.\nThe following topics are covered below:\nJava API for Comparing CSV Files Simple Comparison of CSV Files Compare More than Two CSV Files Compare Password Protected CSV Files Accept or Reject Identified Changes Java API for Comparing CSV Files GroupDocs.Comparison showcases its Java API that allows comparing CSV files with different options. I will again use it to compare CSV files within the Java application. Additionally, it supports the comparison of more than two CSV files, accepting and rejecting the discovered changes, and comparing password-protected files.\nDownload and Configure Get the CSV comparison library from the downloads section. For Maven-based Java applications, add the following configuration within pom.xml.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-comparison\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Running examples for its features are also available on GitHub. Visit its documentation and API Reference for guidance.\nCompare CSV Files in Java The basic comparison of two CSV files using Java has already been discussed in a separate article. There, we looked into the file comparison Java source code, sample input, and the comparison output file. You can visit that article before you move forward.\nCompare More than Two CSV Files in Java If the requirement is to compare more than two CSV files, it is quite similar as we are comparing only two files. Just add the third file to the Comparer object.\nThe following are the steps to compare more than two CSV files in Java.\nInstantiate the Comparer class with the first CSV file. Add the second file using the appropriate add method. Similarly, add as many other CSV files using the add methods. Finally, call the compare method the get the comparison results. The following Java source code compares multiple CSV files. As the comparison results, it generates separate CSV and HTML files. The HTML output file highlights the identified changes in different colors.\nCompare Password Protected CSV Files in Java There are different available options that can be used while loading different documents. If your CSV files are password-protected, you can provide the password while loading. The rest of the procedure remains the same for comparing multiple password-protected CSV files.\nThe following are the steps for how to compare password-protected CSV files in Java.\nPrepare the loading options using the LoadOptions class and set the password to open the CSV file. Now load the first CSV file to compare while initializing the Comparer class. Add the second file using the appropriate add method. Similarly, add as many other CSV files using any of the add methods. Finally, invoke the compare method to get the comparison result of all the added files. The following source code compares multiple password-protected CSV files in Java and generates the comparison results.\nAccept or Reject Identified Changes of CSV Files in Java Just like the track changes feature of Microsoft Word that allows us to accept or reject the made changes within the documents. You can implement the same feature within the Java applications. After performing the file comparison, you can accept or reject each of the identified changes. The following are the steps to compare CSV files and accept or reject the identified changes.\nLoad the source and as well as target CSV files using the Comparer class. Perform the comparison of the loaded files using the compare method. Fetch the identified changes using the getChanges method. Now you can traverse the changes and set their ComparisonAction accordingly for each change. For the agreed changes you can set it as ACCEPT. For the disagreed changes you can set it as REJECT. Finally, call the applyChanges method to get the resultant document having the applied changes. The following Java source code compares two CSV files and then accepts and rejects the found changes.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, today we learned the Java way how to compare two or more CSV files. Along with the option of accepting and rejecting the identified changes, we also learned to compare password-protected CSV files within the Java applications.\nYou can find many other options to customize the comparison results. You can set the comparison sensitivity, show only the summary page, ignore gaps, and many more. Learn about these features from the documentation.\nYou can start building your own comparison applications for various supported document formats. For queries, contact us via the forum.\nSee Also Basic Comparison of CSV files in Java Compare PDF Files in Java Compare Word Documents (DOC/DOCX) in Java Compare Images for differences in Java ","permalink":"https://blog.groupdocs.com/comparison/compare-multiple-csv-files-in-java/","summary":"In this article, we will learn to compare more than two CSV in Java. Additionally, we will discuss how to compare the password-protected CSV files. Finally, how to accept and reject the found changes within Java application using the document comparison API.","title":"Compare Multiple CSV Files in Java - Accept, Reject or Highlight Changes"},{"content":"\rWe recently discussed the basic way how to compare two CSV files within our .NET applications. Today, in this article, we will further learn to compare more than two CSV using C#. Additionally, we will discuss how to compare the password-protected CSV files. Last but not least, how to accept and reject the found changes using C# within .NET application.\nThe following topics are covered below:\n.NET API for Comparing CSV Files Simple Comparison of CSV Files Compare More than Two CSV Files Compare Password Protected CSV Files Accept or Reject Identified Changes .NET API for Comparing CSV Files GroupDocs.Comparison has its .NET API that allows comparing CSV files in various ways. We will use it to compare CSV files within the .NET application. It further supports the comparison of more than two CSV files, password-protected files, accepting and rejecting the discovered changes.\nYou can download the DLLs or MSI installer from the downloads section or install the API by adding its package to your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Comparison Running examples for its features are also available at GitHub. Visit its documentation and API Reference for guidance.\nCompare CSV Files using C# We have already discussed the basic comparison of two CSV files earlier. There, we looked into the files comparison C# source code, sample input files for comparison, and the comparison output file. You can visit that article for a basic comparison.\nCompare More than Two CSV Files using C# If you have more than two CSV files to compare, nothing to worry about. It is just as simple as comparing two files. You just need to add the third file to the Comparer.\nThe following are the steps to compare more than two CSV files using C#.\nInstantiate the Comparer class with the first CSV file to compare. Add the second CSV file using the appropriate Add method. Similarly, add as many other CSV files using the Add method. Lastly, invoke the Compare method the get the comparison results of all the added CSV files. The following C# source code compares multiple CSV files and generates the comparison results in separate CSV and HTML files. The HTML output file highlights the changes in different colors.\nCompare Password Protected CSV Files using C# If your CSV files are password-protected, you just need to provide the password while loading these files. There is no difference in the rest of the procedure for comparing multiple password-protected CSV files.\nThe following are the steps to compare password-protected CSV files using C#.\nPrepare the loading options using the LoadOptions class and by setting the password to open the CSV file. Load the first CSV file to compare while instantiating the Comparer class. Add the second CSV file using the appropriate Add method. Similarly, add as many other CSV files using any of the Add methods. Lastly, call the Compare method to get the comparison of all the added CSV files. The following C# source code compares multiple password-protected CSV files and generates the comparison results in separate CSV and HTML files.\nAccept or Reject Identified Changes of CSV Files using C# Just like the feature of Microsoft Word, you can implement the track changes option for the CSV files within your .NET applications. After the file comparison, you can accept or reject each of the identified changes. The following are the steps to compare CSV files and then accept or reject the identified changes.\nLoad the source and add target CSV files using the Comparer class. Perform the comparison of the loaded files using the Compare method. Fetch the identified changes using the GetChanges method. Now you can traverse the changes and set the ComparisonAction of each change. For the agreed changes you can set them as Accept. For the disagreed changes you can set them as Reject. Finally, call the ApplyChanges method to get the resultant document having the applied changes. The following C# source code compares two CSV files and then accepts and rejects the changes accordingly.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, today we learned how to compare two or more CSV files using C#. Along with the comparison of password-protected CSV files, we learned to programmatically accept and reject the identified changes within the .NET applications.\nThere are many other customizations to control the comparison results, like setting the comparison sensitivity, showing only the summary page, ignoring gaps, and much more. Learn about these features from the documentation.\nYou can start building your own comparison applications for various supported document formats. For queries, contact us via the forum.\nSee Also Basic Comparison of CSV file using C# Compare PDF Files using C# Compare Word Documents (DOC/DOCX) using C# Compare Images for differences using C# ","permalink":"https://blog.groupdocs.com/comparison/compare-multiple-csv-files-using-csharp/","summary":"Today, in this article, we will further learn to compare more than two CSV using C#. Additionally, we will discuss how to compare the password-protected CSV files. Last but not least, how to accept and reject the found changes using C# within .NET application.","title":"Compare Multiple CSV Files in C# - Accept, Reject or Highlight Changes"},{"content":"One of the reasons for the popularity of SVG images is the retainment of quality when enlarged. JPG images are also one of the commonly used image formats and have huge compatibility support from almost every third-party application. So there is a large requirement to convert images from one format to another comes. This article discusses how to convert SVG vector graphics to JPG images using C#.\n.NET API to Convert Images GroupDocs.Conversion provides .NET developers with its API to convert image formats into various other formats. The converted image can be treated during the conversion process using the available multiple advanced options. I will use its GroupDocs.Conversion for .NET to convert the SVG vector image into a JPG image.\nYou can download the DLLs or MSI installer from the downloads section or install the API by adding its package to your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Conversion Running examples for its features are also available on GitHub. Visit its documentation and API Reference for guidance.\nConvert SVG to JPG Image using C# The basic conversion of vector graphics into JPG format is quite simple. It can be performed using the default conversion settings. The following steps show how to convert the SVG image into JPG using C#.\nLoad the SVG file using the Converter class. Prepare the image conversion options. Set the conversion file type as JPG. Invoke Convert method with prepared options to convert SVG into JPG. The following C# source code converts the SVG into a JPG image.\nSVG to JPG Image using Advanced Options using C# There are many customization options available that can be applied to JPG output while converting the vector graphics. The following are some of the properties that you can tweak while SVG to JPG conversion:\nBrightness Contrast Gamma Grayscale Flip Mode (Horizontal / Vertical) Rotation Angles Height Width Watermark The following steps show how to convert an SVG image and further apply customizations while converting it into a JPG image using C#.\nLoad the SVG graphic using the Converter class. Prepare the image conversion options. Set the conversion file type as JPG. Set other customization options and adjust their values accordingly. Convert to JPG image using the Convert method with prepared options. The following source code adds customization during SVG to JPG conversion using C#. You may apply any of these effects or in combination to get the desired JPG output.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To sum up, we discussed converting SVG vectors into JPG format within .NET applications. We also learned to flip, rotate or watermark SVG files when converted to JPG using C#. Additionally, we tweaked the gamma, brightness, and grayscale options.\nTry building your own image conversion .NET application, you may learn more about the document and image conversion .NET APIs from the documentation. Contact us for any query via the forum.\nSee Also Convert SVG to JPG - Online \u0026amp; Programmatically SVG to JPG in Java Convert Images to PDF in C# WebP Image to JPG, PNG, PDF in C# Presentations to Images C# ","permalink":"https://blog.groupdocs.com/conversion/convert-svg-to-jpg-using-csharp/","summary":"One of the reasons for the popularity of SVG images is the retainment of quality when enlarged. JPG images are also one of the commonly used image formats and have a huge compatibility support from almost every third-party application. So there is a large requirement to convert images from one format to another comes. This article discusses how to convert SVG vector graphics to JPG images using C#.","title":"Convert SVG to JPG using C#"},{"content":"SVG (Scalable Vector Graphics) is an XML-based vector image format for defining two-dimensional graphics with animation support. These images are mainly used on web because of the high pixel density. On the other hand, the rich features also enhances the size of SVG images as compared to the PNG image having same dimension. Such differences let developers think about to convert images from one format to another. This article discusses how to convert SVG vectors to PNG images in Java.\nJava API to Convert Images GroupDocs.Conversion showcases document \u0026amp; image conversion API for Java developers. It supports a large list of images formats for conversion from one format to another. Additionally, the conversion results can also be customized using available advanced options. I will use this API, GroupDocs.Conversion for Java to convert the SVG vector graphics into PNG image format.\nDownload or Configure You may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert SVG to PNG Image in Java Without wasting any time, let’s begin with the basic conversion with the default configuration. The following steps show how to convert the SVG vector graphics file into PNG image in Java.\nLoad the PNG graphic using the Converter class. Prepare the image conversion options. Set the conversion file type as PNG. Call the convert() method to get the loaded SVG file converted into PNG image. The following Java source code converts the SVG into a PNG image.\nSVG to PNG Image using Advanced Options in Java Many customization options can be applied to PNG output while converting from SVG to get the desired result. The following are some of the properties that can be adjusted while SVG to PNG conversion:\nCustomization Option Method Brightness setBrightness(int value) Contrast setContrast(int value) Flip Mode (Horizontal / Vertical) setFlipMode(ImageFlipModes value) Gamma setGamma(float value) Grayscale setGrayscale(boolean value) Height setHeight(int value) Rotation Angles setRotateAngle(int value) Watermark setWatermark(WatermarkTextOptions value) Width setWidth(int value) The following steps show how to apply variations while converting an SVG graphic to a PNG image in Java.\nLoad the SVG graphic using the Converter class. Prepare the image conversion options. Set the conversion file type as PNG. Set other relevant properties using the respective setter methods and adjust their values accordingly. Convert to PNG image using the convert() method with prepared options. You may apply any of these effects or in combination to get the required PNG output. The following source code applies customization to the PNG image while SVG to PNG conversion in Java.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To sum up, we learned to convert SVG files into PNG format within the Java applications. We furhter learned, how we can rotate, flip, or watermark PNG files when converted from SVG format. Furthermore, we discussed how to adjust brightness, gamma, and grayscale options.\nYou may try building your own image conversion Java application. You may learn more about the APIs from the documentation for the automation of document and image conversions.\nThe easiest way is to experience the examples from GitHub. Contact us for any query via the forum.\nSee Also SVG to PNG Online Conversion Convert SVG to JPG in Java CAD Drawings to PDF in Java Convert Images to PDF in Java Convert PDF to Grayscale in Java Transform Presentations to Images in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-svg-to-png-in-java/","summary":"SVG images are mainly used on web because of the high pixel density. On the other hand, the rich features also enhances the size of SVG images as compared to the PNG image having same dimension. Such differences let developers think about to convert images from one format to another. This article discusses how to convert SVG vectors to PNG images in Java.","title":"Convert SVG to PNG in Java"},{"content":"CSV files data is basically comma-separated values and it is very difficult to read such data in raw format. However, when these files are viewed using any of the well-known editors like Microsoft Excel, OpenOffice Calc, or LibreOffice that support CSV format, it becomes quite easy to manipulate CSV files. Even then, what about if you want to compare two large CSV files for their difference in data? Let\u0026rsquo;s do it programmatically. This article quickly covers the basic way how to compare two CSV files in Java.\nJava API for Comparing CSV Files GroupDocs showcases its APIs that allow comparing two or more CSV files for differences within the applications. I will use its Java API i.e. GroupDocs.Comparison for Java to compare CSV files.\nThe API also supports the comparison of more than two CSV files, comparing password-protected CSV files, accepting and Rejecting the discovered changes, and much more.\nDownload and Configure Get the CSV comparison library from the downloads section. For Maven-based Java applications, add the following configuration within pom.xml. Later, you can try the examples of this article as well as many more from GitHub. For the details, you may also visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-comparison\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; How to Compare CSV Files in Java Straight to the topic, let\u0026rsquo;s do the basic comparison. It is as simple as any online CSV comparison application. Just load the comparison file and then hit compare. The following are the files that are compared below:\nThe following are the steps to compare two CSV files for differences in Java:\nLoad the first CSV file using the Comparer class. Add the second CSV file using the respective add method. Compare both the files using compare method. The following Java code compares the CSV files and provides the differences in a CSV output. The output result is as follows:\nConclusion To sum up, we just learned to compare two comma-separated values CSV files within a Java application. In the summary of the comparison, we also get the count for differences found within the compared files. This feature lets you find the dissimilarities between two large CSV files. Similarly, you can build your own CSV files comparison Java application using this simple feature.\nFor more details and to learn about the API, visit its documentation. For queries, contact us via the forum.\nSee Also Compare Images for differences using Java Compare PDF Documents using C# – Highlight Differences, Accept or Reject Changes ","permalink":"https://blog.groupdocs.com/comparison/compare-csv-files-in-java/","summary":"CSV files data is basically comma-separated values and it is very difficult to read such data in raw format. However, when these files are viewed using any of the well-known editors like Microsoft Excel, OpenOffice Calc, or LibreOffice that support CSV format, it becomes quite easy to manipulate CSV files. Even then, what about if you want to compare two large CSV files for their difference in data? Let\u0026rsquo;s do it programmatically. This article quickly covers the basic way how to compare two CSV files in Java.","title":"Compare CSV Files in Java"},{"content":"Writing is not just a simple task for everyone. It is recommended not to repeat the same words and phrases again and again. In today\u0026rsquo;s world of optimization, you often need to count and then limit the repetition of words and phrases. This article discusses, how to programmatically count words in documents and the occurrences of each word in Java.\nJava API to Count Words \u0026amp; Occurrences GroupDocs.Parser showcases the document parsing solution for developers. I will use its Java API i.e. GroupDocs.Parser for Java for the extraction of text from documents, and counting occurrences. The API also allows the images, and metadata extraction for a large list of supported document formats like word-processing documents, presentations, spreadsheets, emails, databases, eBooks, and many others.\nDownload and Configure Get the library from the downloads section. For your Maven-based Java application, just add the following pom.xml configuration. After this, you can run the examples of this article, and many more examples available on GitHub. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-parser\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Count Words in Document using Java Firstly, it is important to accurately parse and extract the whole content of the document before counting the words. After the extraction of the text, we can easily split its content into a collection of words and phrases. The following steps show how to count the words within the document using Java.\nLoad the document using the Parser class. Fetch the text of the loaded document using TextReader. Split the text into words using delimiters. Perform word count. The following Java source code counts the number of words in a document.\nCount Words Occurrences in Java Likewise, we can count how many times a particular or any unique word or a phrase appeared in the document. By using this feature, you can avoid the repetition of any word within the article. The following steps count the occurrence of each word within the document using Java.\nLoad the document using the Parser class. Retrieve the text of the loaded document using TextReader. Read and split the whole text into words collection. Traverse the words collection to count the appearance of each words. The following Java code snippet counts the occurrence of each unique word within the document.\nThe following is the output of the above code:\nlorem: 6 ipsum: 2 eleifend: 2 integer: 1 augue: 3 aliquet: 1 ligula: 1 dolor: 1 venenatis: 2 viverra: 1 amet: 2 urna: 1 senectus: 2 lectus: 2 volutpat: 1 massa: 1 blandit: 1 dapibus: 1 habitant: 2 pharetra: 2 ... Get a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, you learned how to count words in a document using Java. Additionally, we discussed how we can get the word occurrence count for each word used in the document. Try developing your online word counter Java application. For more details and learning about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Extract ZIP Files Data in Java Extract Images from EPUB, FB2, CHM eBooks in Java Read PDF Form Fields in Java ","permalink":"https://blog.groupdocs.com/parser/count-words-and-occurrences-in-java/","summary":"Writing is not just a simple task for everyone. It is recommended not to repeat the same words and phrases again and again. In today\u0026rsquo;s world of optimization, you often need to count and then limit the repetition of words and phrases. This article discusses, how to programmatically count words in documents and the occurrences of each word in Java.","title":"Count Words and Occurrences of Each Word in a Document using Java"},{"content":"Repetition of data can diminish the worth of the content. Working as a writer, you must follow DRY (don\u0026rsquo;t repeat yourself) principle. The statistics such as word count or the number of occurrences of each word can let you analyze the content but it\u0026rsquo;s hard to do it manually for multiple documents. So this article demonstrates how to programmatically count words and the word occurrence count of each word in PDF, Word, Excel, PowerPoint, eBook, Markup, and Email document formats using C#.\n.NET API to Count Words \u0026amp; Occurrences GroupDocs.Parser provides the document parsing solution for developers. For the extraction of text from documents, and counting occurrences, we will use its GroupDocs.Parser for .NET. The API further allows the extraction of images, and metadata from a long list of supported document formats like word-processing documents, presentations, spreadsheets, emails, databases, eBooks, and many others.\nYou can download the DLLs or MSI installer from the downloads section or install the API by adding its package to your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Parser Count Words using C# For the counting of words, the main thing is to parse and extract the whole content of the document. After the extraction of the text, we can split its content into a collection of sentences and words. The following step allows counting the words within the document using C#.\nLoad the document using the Parser class. Fetch the text of the loaded document into TextReader. Get the text of the document from the TextReader as a string. Split the text into words and save them into a string array. Perform word count. The following C# source code counts the number of words in a document.\nCount Words Occurrence in C# Similarly, we can count how many times a particular word or a phrase has been used in the document. By using this feature, you can avoid the excessive repetition of any word within an article. The following steps count the occurrence of each word used in a document.\nLoad the document using the Parser class. Retrieve the text of the loaded document into TextReader. Read and split the whole text into the word collection. Traverse the word collection to count words. The following C# code snippet counts the occurrence of each unique word within the document.\nThe following is the output of the above code:\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, you learned how to count words in a document using C#. Additionally, we discussed how we can get the word occurrence count for each word in the document. Try developing your online word counter .NET application. For more details and learning about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Extract ZIP Files Data in C# Parse Documents to Extract Images using C# Extract Images from EPUB, FB2, CHM eBooks in C# Read PDF Form Fields using C# ","permalink":"https://blog.groupdocs.com/parser/count-words-and-occurrences-using-csharp/","summary":"This article demonstrates how to programmatically count words and the word occurrence count of each word in PDF, Word, Excel, PowerPoint, Ebook, Markup, and Email document formats using C#.","title":"Count Words and Occurrences of Each Word in a Document using C#"},{"content":"When an old document is updated; the outdated, obsolete, or even highly confidential pages are required to be removed from the latest version of the document. In this article, we will learn how to programmatically remove such pages from the PDF documents in Java. Further, we will discuss different ways to remove list of pages, pages range, even and odd pages of PDF document.\nThe following topics are discussed below:\nPDF Page Removal Java API Remove List of Pages Delete Pages Range Remove Odd or Even Pages in Range Java API to Remove Pages from PDF GroupDocs.Merger privides the Java API that allows programmatically removing of pages from the PDF document. Furthermore, it allow changing pages orientation, moving pages location, splitting of documents, extraction, and rotation of document pages. I will use this GroupDocs.Merger for Java to delete various pages of PDF files in Java. For the details and other features of the API, you can visit its documentation.\nDownload and Configure Get the library from the downloads section. For your Maven-based Java application, just add the following pom.xml configuration. After this, you can try the examples of this article as well the many more example available on GitHub. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-merger\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Remove Selected Pages from PDF in Java To remove any set of pages, you only need to provide the list of pages numbers from the loaded PDF document. The below steps allow removing the provided list of selective pages from a PDF document in Java.\nInitialize RemoveOptions class with the page numbers to remove. Instantiate Merger object with source document path or stream. Call removePages() method to delete the listed pages. Call the appropriate save() method to save the resultant document. The following Java code example removes the selected 2nd and 4th page from the PDF document.\nRemove Pages Range from PDF in Java Similarly, you can remove any range of pages within your PDF document. The following steps allow removing any range of pages from the PDF files in Java.\nInitialize RemoveOptions. Provide the page range by setting starting and ending page number. Instantiate Merger object with source document path or stream. Call removePages() method with the range. Call the appropriate save() method to save the resultant document. The following Java sample code removes all the pages from the PDF document within the provided range i.e. 3 to 5.\nRemove Even or Odd Pages from PDF in Java You can also remove any even/odd pages of the document. The following steps show how to remove even or odd pages of the PDF file within the given range in Java.\nInitialize RemoveOptions class with the page range. Set the mode to even or odd. Instantiate Merger object with source document path or stream. Call removePages() method with the removal options. Call the appropriate save() method to save the resultant document. The following Java code snippet removes all the odd pages from the whole PDF document.\nThe following Java code sample removes all the even pages from the PDF document within the provided range i.e. 1-5.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, we learned to delete different set of pages from PDF documents within Java applications. Specifically, we have seen how to delete pages by providing page numbers and page ranges. Additionally, we saw how to remove odd or even pages from any PDF document in Java. You can try building your own application to eliminate any set of pages from your PDF files.\nFor more details about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Watermark PDF Files in Java Rearrange PDF Pages in Java Word Search and Replace Text in PDF in Java Convert PDF to Grayscale in Java Password Protection of PDF Files in Java ","permalink":"https://blog.groupdocs.com/merger/remove-pages-from-pdf-in-java/","summary":"When an old document is updated; the outdated, obsolete, or even highly confidential pages are required to be removed from the latest version of the document. In this article, we will learn \u003cstrong\u003ehow to programmatically remove such pages from the PDF documents in Java\u003c/strong\u003e. Further, we will discuss different ways to remove list of pages, pages range, even and odd pages of PDF document.","title":"Remove Pages from PDF in Java"},{"content":"We often require removing the unwanted, obsolete, highly confidential pages from the documents while sharing or finalizing the drafts. In this article, we will learn how to programmatically remove such pages from the PDF document using C#. Requirements may differ at times, so we will discuss different ways to remove the different sets of pages within the PDF document.\nThe following topics are discussed below:\nPDF Page Removal .NET API Remove Selection/List of Pages Delete Pages Range Remove Even or Odd Range of Pages .NET API to Remove Pages from PDF GroupDocs.Merger showcases the .NET API that allows programmatically deleting pages from the PDF document. Additionally, it allows .NET applications to change pages orientation, move pages, split documents, extract, and rotate document pages. We will use this GroupDocs.Merger for .NET to delete selective pages of PDF files using C#. For the details and other features of the API, you can visit the documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Merger Remove Selected Pages from PDF using C# Just provide the list of pages from the loaded PDF document to remove. The below steps allow removing the provided list of selective pages from a PDF document using C#.\nInitialize RemoveOptions class with the list of page numbers to remove. Instantiate Merger object with source document path or stream. Call RemovePages() method to delete the listed pages. Call the appropriate Save() method to save the resultant document. The following C# code example removes the selected 3rd and 5th pages from the PDF document.\nRemove Pages Range from PDF using C# Likewise, you can remove any range of pages within the PDF document. The following steps allow removing a sequence of pages within the provided range using C#.\nInitialize RemoveOptions. Provide the page range by setting starting and ending page number. Instantiate Merger object with source document path or stream. Call RemovePages() method with the range. Call the appropriate Save() method to save the resultant document. The following C# sample code removes all the pages from the PDF document within the provided range i.e. 2 to 4.\nRemove Even or Odd Pages from PDF using C# Similarly, you can remove all the even or odd pages of the document. The following steps show how to remove even or odd pages of the PDF file within the given range using C#.\nInitialize RemoveOptions class with the page range. Set the mode to even or odd. Instantiate Merger object with source document path or stream. Call RemovePages() method with the removal options. Call the appropriate Save() method to save the resultant document. The following C# code sample removes all the even pages from the PDF document within the provided range i.e. 1-6.\nThe following C# code snippet removes all the odd pages from the whole PDF document.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, we just learned how to delete pages from a PDF document using C# within .NET applications. Specifically, we have seen how to delete pages by providing page numbers and page ranges. Finally, we saw how to remove even or odd pages from any PDF document. You can try building your own application to eliminate any variation of selected pages from the PDF files.\nFor more details about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Remove Watermarks from PDF Documents in C# Convert PDF to Grayscale using C# How to Rearrange PDF Pages using C# Find and Replace Text in PDF using C# Lock \u0026amp; Unlock PDF Files with Password using C# ","permalink":"https://blog.groupdocs.com/merger/delete-pages-from-pdf-in-csharp/","summary":"We often require removing the unwanted, obsolete, highly confidential pages from the documents while sharing or finalizing the drafts. In this article, we will learn \u003cstrong\u003ehow to programmatically remove such pages from the PDF document using C#\u003c/strong\u003e. Requirements may differ at times, so we will discuss different ways to remove the different sets of pages within the PDF document.","title":"Remove Pages from PDF using C#"},{"content":"Every page of the document may contain different layouts. It depends on the content of the page; that which orientation suits it. As a developer, we can change the orientation of each page to the one it suits. In this article, we will learn to change the orientation of a page in a Word document using C#. Separately, we will see how to change the portrait layout to landscape and then how to change the landscape orientation to portrait with the .NET applications.\n.NET API for Changing Word Page Orientation GroupDocs.Merger showcases the .NET API that enables changing the orientation of Word document pages. Additionally, the API allows moving pages, removing pages, splitting of documents, extraction, and rotation of document pages within the .NET applications. We will use this GroupDocs.Merger for .NET to change the page orientation of DOC/DOCX files using C#. For the details and other features of the API, you can visit the documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Merger Change Orientation of a Word Page to Landscape using C# Let’s begin with a simple way how to programmatically make a page landscape in a Word document. The following steps allow changing the page orientation of a Word document to landscape using C#:\nLoad the Word document using Merger. Prepare the orientation options and set the mode to landscape. Change the orientation using ChangeOrientation(). Save the updated document using the appropriate Save(). The following C# code changes the portrait orientation of some pages of a Word document to the landscape.\nChange Orientation of a Word Page to Portrait using C# Similarly, you can make any set of pages of the Word document in portrait orientation. The following steps allow changing the orientation of a Word document page to portrait using C#:\nLoad the Word document using Merger. Prepare the orientation options and set the mode to portrait. Use ChangeOrientation() method to change the orientation. Use the appropriate Save() method to save the updated document. The following C# code changes the portrait orientation of some pages of a Word document to portrait.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, we learned how to change the page orientation of Word documents using C# within .NET applications. We saw the source code example that changed the portrait orientation of the selected pages of a DOCX file to the landscape. Similarly, we changed the landscape orientation of the selected pages to portrait using the C# example. You can try building your own application that can toggle the orientation Word pages online.\nFor more details about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Rearrange Pages in Word using C# Add and Remove the Password Protection of Word Documents using C# Compare Word Documents Edit Word Documents Add or Remove Annotations or Markup Word files ","permalink":"https://blog.groupdocs.com/merger/change-page-orientation-of-a-word-document-in-csharp/","summary":"Every page of the document may contain different layouts. It depends on the content of the page; that which orientation suits it. As a developer, we can change the orientation of each page to the one it suits. In this article, we will learn to \u003cstrong\u003echange the orientation of a page in a Word document using C#\u003c/strong\u003e. Separately, we will see how to change the portrait layout to landscape and then how to change the landscape orientation to portrait with the .NET applications.","title":"Change Page Orientation of a Word Document in C#"},{"content":"Watermarks are mostly used to mentioned documents as drafts and to avoid any illegal use of confidential documents. When draft as finalized or confidentiality is over, you can remove the watermarks from such documents. Watermarks can be either text or image-based. In this article, we will have a look about how to remove watermarks from PDF documents in Java.\nJava API to Remove PDF Watermarks GroupDocs.Watermark provides Java API to deal with watermarks within documents and images of different file formats. If you are making a watermark removal app, It provides you some useful ways to:\nRemove all the watermarks from the PDF document Remove hyperlink watermarks Delete watermarks with particular text formatting Let’s learn how a Java developer can remove watermarks from PDF using GroupDocs.Watermark for Java API in different ways. First of all, download and configure the API with your application.\nDownload or Configure You can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-watermark\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Remove All Watermarks from PDF Files in Java The API gives you the power to easily find and then remove a particular watermark and all the watermarks from the document. The following steps show how to remove all the watermarks from a PDF document in Java.\nLoad the PDF document using Watermarker. Fetch all the possible watermarks as a collection using search. Traverse the whole collection and remove every watermark or the one that meets the criterion. Save the updated PDF having no watermark on it. The following Java code removes all the watermarks from a PDF document.\nRemove Hyperlink Watermark in Java The watermarking API allows to search and remove hyperlinks from the PDF document. The following steps allow removing hyperlink watermarks from a PDF document within the Java application.\nLoad the PDF file using Watermarker. Fetch the possible watermarks as a collection using search. Traverse the collection and remove the watermark(s) that meets the criterion. Save the updated PDF with no more watermarks on it. The following Java code sample shows how to find and remove hyperlink watermarks with a particular URL from a PDF document.\nRemove Watermark from PDF with particular Text Formatting in Java The watermark having the specific text formatting can also be removed. You can provide the font name, its size, color, etc as the search criterion. The API will find the watermarks having matched properties. The following steps demonstrate how to search and remove watermarks from a PDF file having a specific text formatting in Java.\nLoad the PDF file using Watermarker. Set the search criterion using TextFormattingSearchCriteria. Provide all the required formatting properties. Search and get all the possible watermarks as a collection by providing the defined criteria. Remove all the searched watermarks using the clear() method. Save the updated PDF having no watermark with the defined properties. The following Java code removes the watermarks in a PDF document having the specified text formatting.\nConclusion To sum up, we learned ways to remove different watermarks from the PDF documents in Java. We specifically removed all the applied watermarks, then removed hyperlinks watermarks and watermarks with specific text formatting. Try building your own Java application for finding and removing the watermarks from PDF documents. Besides, you can learn more about GroupDocs.Watermark for Java from its documentation. For queries, contact us via the forum.\nSee Also Watermark Password Protected Documents in Java Watermark Excel Sheets in Java Add Watermark to PDF Files in Java Watermark Presentation Slides using Java Find and Remove Watermarks from Documents in Java ","permalink":"https://blog.groupdocs.com/watermark/remove-watermark-from-pdf-in-java/","summary":"Watermarks are mostly used to mentioned documents as drafts and to avoid any illegal use of confidential documents. When draft as finalized or confidentiality is over, you can remove the watermarks from such documents. Watermarks can be either text or image-based. In this article, we will have a look about \u003cstrong\u003ehow to remove watermarks from PDF documents in Java\u003c/strong\u003e.","title":"Remove Watermarks from PDF Documents in Java"},{"content":"Page orientation depends on the content layout of the page. As a developer, we can programmatically change the orientation of each page to the one it suits. In this article, we will learn to change the orientation of a page in a Word document in Java. Separately, we will see how to change the landscape orientation to portrait and then how to change the portrait orientation to landscape with the Java applications.\nJava API for Changing Word Page Orientation GroupDocs.Merger for Java is the API to deal with document pages within the Java applications. It allows changing the orientation of Word document pages and many other supporting document formats. We will use it to change the page orientation of DOC/DOCX files. For the details and other features of the API, you can visit the documentation.\nDownload and Configure Get the library from the downloads section. For your Maven-based Java application, just add the following pom.xml configuration. After this, you can try the examples of this article as well the many more example available on GitHub. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-merger\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Change Orientation of a Word Page to Landscape in Java Start with how to programmatically make a page landscape in a Word document. The following steps allow changing the page orientation of a Word DOC/DOCX document to landscape in Java:\nPrepare the orientation option and set it to landscape mode. Load the Word document using Merger. Change the orientation using the changeOrientation() method. Save the updated document using the appropriate save() method. The following Java code changes the portrait orientation of some pages of a Word document to the landscape.\nChange Orientation of a Word Page to Portrait in Java Likewise, you can set any set of pages of the Word document in portrait orientation. The following steps allow changing the orientation of a Word document page to portrait in Java:\nLoad the Word document using Merger. Prepare the orientation option and set the mode to portrait. Use the changeOrientation() method to change the orientation. Use the appropriate save() method to save the updated document. The following Java code changes the portrait orientation of some pages of a Word document to portrait.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, we learned how to change the page orientation of Word documents within Java applications. We discussed the code snippet that changed the landscape orientation of the selected pages of a DOCX file to the portrait. Similarly, we changed the portrait orientation of the selected pages to landscape using the Java code example. Start building your own application that can toggle the orientation of Word pages.\nFor more details about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Annotate Word files in Java Edit Word Documents in Java Rearrange Pages in Word using Java Render Word documents as Minified HTML in Java ","permalink":"https://blog.groupdocs.com/merger/change-page-orientation-of-word-document-in-java/","summary":"Page orientation depends on the content layout of the page. As a developer, we can programmatically change the orientation of each page to the one it suits. In this article, we will learn to \u003cstrong\u003echange the orientation of a page in a Word document in Java\u003c/strong\u003e. Separately, we will see how to change the landscape orientation to portrait and then how to change the portrait orientation to landscape with the Java applications.","title":"Change Page Orientation of a Word Document in Java"},{"content":"\rXLS, XLSX, and ODS are among the most common and widely in-use spreadsheet file formats. We normally maintain various accounts and different spreadsheets using famous Microsoft Excel and OpenOffice Calc which support these formats. Therefore, as a developer, we widely require programmatically editing Excel files within our applications. In this article, we will discuss how to edit Excel files in Java.\nThe following topics are covered in this article:\nJava API for Spreadsheet Editing Edit Spreadsheets in Java Java API for Editing Excel Spreadsheets and Automation GroupDocs.Editor provides Java API for spreadsheet editing and allows developers to load, edit, and save various document formats using WYSIWYG HTML editors. In addition to the spreadsheet formats, the API supports editing word-processing documents, presentations, HTML, XML, TXT, CSV, and many other formats.\nDownload or Configure You may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-editor\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.11\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Edit Excel Spreadsheets in Java You can edit the spreadsheets right after setting up the API. You can get all the content including images within the spreadsheet. The following steps will let you edit the spreadsheet XLS/XLSX spreadsheets in Java.\nPrepare the loading options. Load the Excel XLS/XLSX Spreadsheet using Editor. Set the worksheet tab index and fetch the Editable Document using edit(). You can get the content of the loaded worksheet tab using the respective getter method. Edit the content programmatically or by using any WYSIWYG editor. Convert the edited content back to an Editable Document. Save the updated spreadsheet with the appropriate save() method using relevant save options. The following Java code allows you to edit the Excel spreadsheet within the application.\nLoad: You can apply additional options while loading the spreadsheet; like providing the password if the document is protected.\nEdit: After loading, you can edit the loaded spreadsheet. The above example replaces all the occurrences of \u0026ldquo;Old Company Name\u0026rdquo; with \u0026ldquo;New Company Name\u0026rdquo; in the first tab of the XLSX spreadsheet.\nSave: While saving the edited spreadsheet, you can set various options like password protection, file format, and more.\nConclusion To conclude, we learned how to edit Excel spreadsheets in Java using document \u0026amp; spreadsheet editing Java API. You can use the API along with WYSIWYG editors to visually edit the spreadsheets. You can build your own spreadsheet editing Java application. For more details, options, and examples, you can visit the documentation and the GitHub repository. For further queries, contact the support on the forum.\nSee Also Watermark Excel Sheets in Java Convert Excel Spreadsheets to PDF in Java Convert Excel (XLS XLSX) to CSV \u0026amp; vice versa in Java Insert OLE Objects in Word, Excel, PowerPoint using Java Edit Word Documents in Java ","permalink":"https://blog.groupdocs.com/editor/edit-excel-files-in-java/","summary":"\u003cstrong\u003eXLS\u003c/strong\u003e, \u003cstrong\u003eXLSX\u003c/strong\u003e, and \u003cstrong\u003eODS\u003c/strong\u003e are among the most common and widely in-use spreadsheet file formats. We normally maintain various accounts and different spreadsheets using famous Microsoft Excel and OpenOffice Calc which support these formats. Therefore, as a developer, we widely require programmatically editing Excel files within our applications. In this article, we will discuss \u003cstrong\u003ehow to edit Excel files in Java\u003c/strong\u003e.","title":"How to Edit Excel Files in Java"},{"content":"\rDOC, DOCX, and ODT are among the most common and widely in-use word-processing file formats. Microsoft Word and OpenOffice Writer support these formats and are used for drafting documents. Therefore, as a developer, we often need to programmatically edit Word documents within the applications. In this article, we will discuss how to edit Word documents using the Java API for document editing.\nThe following topics are covered in this article:\nJava API - Word Documents Editing Edit Word Documents in Java Java API for Word Documents Editing and Automation GroupDocs.Editor provides Java API for document editing and allows developers to load, edit, and save various document formats using WYSIWYG HTML editors. In addition to the word-processing document formats, the API supports editing spreadsheets, presentations, HTML, XML, TXT, CSV, and many other formats.\nDownload or Configure You may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-editor\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.11\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Edit Word Documents in Java After setting up the API, you can quickly move towards editing the Word document. The following steps will let you edit the word-processing documents DOC/DOCX in Java.\nLoad the Word document using Editor. Fetch the EditableDocument using edit method. Get the embedded HTML of the loaded DOC/DOCX document. Edit the content programmatically or by using any WYSIWYG editor. Convert the edited content back to an Editable Document. Save the updated document using the appropriate save method. The following Java code allows editing Word documents within the application.\nLoad: You can apply additional options while loading the Word document; like providing the password if the document is protected.\nEdit: After loading, you can edit the loaded document as per your requirement. The above example replaces all the occurrences of the word “document” with the “edited document” in a Word document.\nSave: While saving the edited document, you can set different options. These options include; pagination, setting a password, memory optimization settings, and more.\nThe following is the output of the above code.\nOutput document - All the occurrences are replaced\nConclusion To sum up, we learned to edit Word documents in Java using document editing Java API. You can use the API along with WYSIWYG editors to visually edit your documents. You can build your own document editing Java application. For more details, options, and examples, you can visit the documentation and the GitHub repository. For further queries, contact the support on the forum.\nSee Also Annotate Word files in Java How to Edit XML files in Java Render Word documents as Minified HTML in Java ","permalink":"https://blog.groupdocs.com/editor/edit-word-documents-in-java/","summary":"\u003cstrong\u003eDOC\u003c/strong\u003e, \u003cstrong\u003eDOCX\u003c/strong\u003e, and \u003cstrong\u003eODT\u003c/strong\u003e are among the most common and widely in-use word-processing file formats. Microsoft Word and OpenOffice Writer support these formats and are used for drafting documents. Therefore, as a developer, we often need to programmatically edit Word documents within the applications. In this article, we will discuss \u003cstrong\u003ehow to edit Word documents using the Java API for document editing\u003c/strong\u003e.","title":"Edit Word Documents in Java"},{"content":"Watermarks are normally used to avoid any illegal use of confidential documents. When confidentiality is no more needed, you better remove the watermarks from such documents. There can be text and image-based watermarks in a document. Today, we will have a look at how to remove watermarks from PDF documents using C#.\n.NET API to Remove PDF Watermarks GroupDocs.Watermark showcases .NET API to deal with watermarks within documents and images of different file formats. If you are making a watermark removal app, It provides you some useful ways to:\nRemove all watermarks from PDF Delete watermarks with particular text formatting Remove hyperlink watermarks Let\u0026rsquo;s learn how a C# developer can remove watermarks from PDF using GroupDocs.Watermark for .NET API in different ways.\nRemove All Watermarks from PDF document using C# The API gives you the power to easily find and then remove a particular watermark and all the watermarks from a document. The following code removes all the watermarks from a PDF document using C#.\nLoad the PDF file using Watermarker. Fetch all the possible watermarks as a collection using search. Traverse the whole collection and remove every watermark or the one that meets your criterion. Save the updated PDF with no more watermarks on it. The following C# code removes all the watermarks from a PDF document.\nRemove Watermark from PDF with particular Text Formatting using C# Using API you can search and remove the watermarks on the basis of text formatting. You can provide a search criterion containing name, font, size, color, etc and the API will find the watermarks with matching properties. The following code snippet demonstrates how to search and remove watermarks from a PDF file with a specific text formatting using C#.\nLoad the PDF file using Watermarker. Define the search criterion using TextFormattingSearchCriteria. Mention all the required formatting properties. Perform Search() and get all the possible watermarks as a collection by providing the defined criteria. Remove all the searched watermarks using the Clear() method. Save the updated PDF having no watermark with the defined properties. The following C# code removes the watermarks in a PDF document having the specified text formatting.\nHyperlink Watermark Remover in .NET The document watermarking .NET API allows you to search and remove hyperlinks in a document of any supported document format. The following steps allow removing hyperlink watermarks from a PDF document within the .NET application using C#.\nLoad the PDF file using Watermarker. Fetch all the possible watermarks as a collection using search. Traverse the whole collection and remove every watermark or the one that meets your criterion. Save the updated PDF with no more watermarks on it. The following C# code sample shows how to find and remove hyperlink watermarks with a particular URL from a PDF document.\nConclusion To conclude, today we learned to remove different watermarks from the PDF documents using C#. I believe that you will now be more confident to build your own .NET application for finding and removing text watermarks as well as image watermarks from PDF documents. Additionally, you can add features of removing watermarks with specified formatting and hyperlink watermarks.\nBesides, you can learn more about GroupDocs.Watermark for .NET from its documentation. For queries, contact us via the forum.\nSee Also Watermark Password Protected Documents using C# Watermark PDF Files using C# Add Watermark to Images using C# Find and Remove Watermarks from Documents in Java ","permalink":"https://blog.groupdocs.com/watermark/remove-watermark-from-pdf-in-csharp/","summary":"Watermarks are normally used to avoid any illegal use of confidential documents. When confidentiality is no more needed, you better remove the watermarks from such documents. There can be text and image-based watermarks in a document. Today, we will have a look at \u003cstrong\u003ehow to remove watermarks from PDF documents using C#\u003c/strong\u003e.","title":"Remove Watermarks from PDF Documents in C#"},{"content":"Annotations are normally used to mentioned errors in documents or to discuss their content. With annotations, you can avoid long and never-ending discussions within emails threads. In this article, you will learn how to programmatically add and remove annotations to markup Word documents in Java.\nThe following are the topics discussed briefly below:\nJava API for Word DOC/DOCX Annotations Add Annotations to Word Arrow annotations Rectangle annotations Ellipse or Oval annotations Distance annotations Remove Annotations from Word Files Java API to Annotate and Markup Word Files GroupDocs.Annotation provides the Java API to deal with the annotations. The API allows the addition, removal, and extraction of annotations from Word documents and many other file formats. Supported document formats include; spreadsheets, presentations, images, PDF files, webpages, email messages, Visio drawings.\nDownload or Configure Download the JAR file from the downloads section, or just get the latest repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-annotation\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.7.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Add Annotations to Word in Java Let\u0026rsquo;s add different types of annotations to the Word documents. Annotations are of many types, so we will be covering only a few here.\nAdd Arrow Annotation to Word in Java The following are the steps to add an arrow annotation to a Word document in Java.\nLoad the document using the Annotator class. Initialize arrow annotation with ArrowAnnotation class. Adjust the position, size, page number of the arrow annotation. Add the created arrow annotation using the add() method. Save the annotated Word document to the path using appropriate save() method. The following Java code sample shows how to add an arrow annotation to a Word document.\nInsert Rectangle or Area Annotation to Word in Java The following are the steps to add rectangle or area annotation to a DOC/DOCX document with some customizations. It is similar to adding Arrow annotations but it uses AreaAnnotation.\nLoad the Word DOC/DOCX document using the Annotator class. Initialize rectangle annotation using AreaAnnotation class. Adjust the position, size, and color of the rectangle. Set other properties like page number, background, opacity, style, pen width, messages, and time. Add the created rectangle annotation to the Annotator. Save the annotated Word document to the path using the save() method. The following Java code sample shows how to add rectangle/area annotation to a Word document.\nAdd Oval or Ellipse Annotation to Word in Java The following are the steps to add oval/ellipse annotation to a document in Java.\nLoad the DOC/DOCX document using the Annotator class. Initialize ellipse annotation using EllipseAnnotation class. Set the position and size of the initialized ellipse annotation. Add the created ellipse annotation to the Annotator. Save the annotated Word file using the appropriate save() method. The following Java code sample shows how to add oval/ellipse annotation to any Word document.\nInsert Distance Annotation to Word in Java Likewise, you can mention the distance between two points using the distance annotation. The following are the steps to add distance annotation to the document in Java.\nAfter loading the Word document, initialize distance annotation using DistanceAnnotation class. Set the appearance of the annotation. Add the distance annotation to the Annotator object. Save the annotated document at the given location or use the right save() mehod, The following Java code sample shows how to add distance annotation to a DOC/DOCX document.\nRemove Annotations from Word DOC/DOCX files in Java There are many ways to remove annotations from Word documents. You can remove specific annotations by providing the indexes to remove the specific annotations. Additionally, you can remove all the annotations at once. Details and Java source code for removing annotations are discussed in a separate article.\nThe following are the steps to remove all the annotations from a Word file.\nLoad the document. Initialize saving options. Set the annotation type to None. Save the Word file. It will be free of annotations. The following code shows how to remove annotations from a Word file in Java.\nConclusion To sum up, you have learned how to add annotations to Word documents within Java applications. Specifically, we added arrow, ellipse, area, and distance annotations to the Word DOC/DOCX file using GroupDocs.Annotation for Java. Further, you have also seen how to remove all the annotations from any Word file. Now, you can try building your own document annotator Java application.\nLearn more about the API from the documentation and the GitHub repository. For further queries, contact the support on the forum.\nSee Also Annotate PDF files in Java Render Word documents as Minified HTML in Java Remove Annotations from PDF or Word Documents in Java ","permalink":"https://blog.groupdocs.com/annotation/annotate-word-documents-in-java/","summary":"Annotations are normally used to mentioned errors in documents or to discuss their content. With annotations, you can avoid long and never-ending discussions within emails threads. In this article, you will learn how to programmatically add and remove annotations to markup Word documents in Java.","title":"Add or Remove Annotations or Markup Word files in Java"},{"content":"The first and foremost question in your mind could be, is it about converting an RGB image to Grayscale only? No, you can convert almost any document format (including images) to a black-and-white or grayscale monochrome image. The contrast ranges from black at the weakest intensity to white at the strongest. In this article, we will discuss how to convert color PDF documents to grayscale JPG and PNG image formats using C#.\nThis feature is quite helpful if you are going to do image processing. As RGB image is represented by 3 channels and contains a lot of data/noise, hence, more computational power is required to process such an image. On the other hand, a grayscale image makes this process comparatively easy.\n.NET API to Convert Documents into Grayscale GroupDocs.Conversion for .NET is an API that is used for documents conversion between a multitude of supported file formats and image types. Conversion results can easily be customized and tuned with multiple flexible options. I will use this API to convert PDF documents to grayscale JPG and PNG images.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Conversion If we talk about its implementation, it is a back-end API that can be integrated or implemented within any .NET application without any dependency. For more information about its API, visit its documentation.\nConvert PDF to Grayscale JPG Image using C# Let’s quickly achieve the target by transforming the color PDF document to black and white image formats. The following steps show how to convert the PDF to grayscale JPG using C#.\nLoad the PDF document using Converter class. Prepare the image conversion options. Set the conversion file format as JPG. Set the grayscale option to true. Convert to image using Convert method. The following C# source code converts the PDF document to a grayscale JPG image.\nAdditionally, there are many other options to control the height, width, horizontal and vertical flip, and document rotations. You can also apply the watermarks with different settings to the output image.\nConvert PDF to Grayscale PNG Image using C# Similarly, the color PDF document can be converted to other image formats in grayscale. The following steps show how to convert the PDF to grayscale PNG using C#.\nLoad the PDF document using Converter class. Prepare the image conversion options. Set the conversion file format as PNG. Set the grayscale option to true. Convert to PNG image using Convert method. The following C# source code converts the PDF document to a grayscale PNG image.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To conclude we learned how PDF documents can be converted to JPG or PNG Images formats in C#. To build your own conversion application, you may learn more about the low code and high code Conversion Automation .NET APIs from the documentation.\nThe best way is to experience the examples that are available on GitHub. Contact us for any query via the forum.\nSee Also Convert Images to PDF in C# Transform Presentations to Images using C# Convert WebP Images to JPG, PNG, TIFF, and PDF in C# Convert PDF documents to HTML using C# ","permalink":"https://blog.groupdocs.com/conversion/convert-pdf-to-grayscale-jpg-png-images-in-csharp/","summary":"The first and foremost question in your mind could be, is it about converting an RGB image to Grayscale only? No, you can convert almost any document format (including images) to a black-and-white or grayscale monochrome image. The contrast ranges from black at the weakest intensity to white at the strongest. In this article, we will discuss \u003cstrong\u003ehow to convert color PDF document to a grayscale JPG and PNG image formats using C#\u003c/strong\u003e.","title":"Convert PDF to Grayscale using C#"},{"content":"Annotations are commonly used for pointing out observations in documents. These can also be used for providing feedback while discussion. Earlier, we discussed, the Java way to add different annotations to PDF documents. This article discusses how to remove annotations from documents like PDF and Word DOC/DOCX files in Java.\nThe following topics are discussed below:\nAnnotation Java API Remove all the Annotations Remove Annotation(s) by IDs Eliminate Annotations by Annotation Object Java API for Annotations GroupDocs have Java API that allows dealing with annotations within various documents and images. It allows adding, deleting, and extraction of annotations from PDF, Word, and many other types of documents. You can visit the documentation for the complete list of supported document formats for annotation.\nDownload or Configure Download the JAR file from the downloads section, or just get the latest repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-annotation\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.7.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Remove All Annotations from PDF \u0026amp; Word documents in Java There are ways to remove annotations from documents. All the annotations can be removed at once. You can remove specific annotation(s) by providing ID(s), or remove specific annotation by providing the annotation object. For other options, visit the documentation.\nThe following are the steps to remove all the annotations from PDF and Word DOC/DOCX document(s) in Java.\nLoad the document using Annotator. Initialize Saving Options class. Set the annotation type to None. Save the file without the annotations using the save() method. The following Java code shows how to remove annotations from PDF or Word files.\nRemove Annotation by IDs in Java Likewise, you can provide annotation ID(s) to get rid of the unwanted annotations from the documents. It\u0026rsquo;s just about preparing and providing the list of IDs to eliminate the listed annotation(s). The following Java code shows how to remove the annotation(s) from PDF or Word documents by providing the ID(s).\nRemove Annotation by Annotation Object in Java You can also get rid of the specific annotation by proving the Annotation object. In order to delete annotations, the following Java code removes the annotation(s) from PDF or Word documents by using annotation objects.\nConclusion To summarize, you learned to remove annotations from the documents within Java applications. Initially, we removed all the annotations from PDF \u0026amp; Word documents. Later we eliminated annotations by providing IDs and also by proving the annotation objects. Try building your own document annotations remover Java application using GroupDocs.Annotation for Java. Learn more about the API from the documentation and the GitHub repository. For further queries, contact the support on the forum.\nSee Also Annotate PDF files using Java Annotate Word files in Java Highlight PDF using Annotations in Java Create Hyperlinks in PDF using Annotations in Java ","permalink":"https://blog.groupdocs.com/annotation/remove-annotations-from-pdf-or-word-documents-in-java/","summary":"Annotations are commonly used for pointing out observations in documents. These can also be used for providing feedback while discussion. Earlier, we discussed, the Java way to add different annotations to PDF documents. This article discusses \u003cstrong\u003ehow to remove annotations from documents like PDF and Word DOC/DOCX files in Java\u003c/strong\u003e.","title":"Remove Annotations from PDF or Word Documents in Java"},{"content":"PDF is among one of the most in-use portable file formats. For large documents, it is always challenging to change the order of pages without losing the formatting. This article discusses, how to rearrange PDF pages programmatically in Java.\nJava API to Rearrange PDF Pages \u0026amp; Merge Documents GroupDocs provides GroupDocs.Merger for Java to change the order of pages in documents. This API enables merging multiple documents, removing, splitting, and extraction of pages, rotation, and changes in page orientation of document pages within the applications. For the details and other features of the API, you can visit the documentation.\nDownload and Configure Get the library from the downloads section. For your Maven-based Java application, just add the following pom.xml configuration. After this, you can try the examples of this article as well the many more example available on GitHub. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-merger\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Rearrange PDF Pages in Java The following are the steps that help you change the sequence of PDF document pages in Java.\nDefine the existing and new position of the page in MoveOptions class. Load the PDF document using the Merger class. Use the movePage() method to rearrange pages according to defined options. Save the reordered PDF file using the save() method. The following Java source code rearranges the pages of PDF documents. Precisely, it moves the 6th page of the document to the 1st place.\nHere is the output of the above code.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, we learned to reorder documents by changing the page sequence of the PDF files in Java within the application. We have seen the running example that changes the position of the page. You can try building a simple application that can organize the PDF files by easily shuffling their pages.\nFor more details about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Password Protection of PDF Files in Java Ways to Split PDF Files in Java Merge Multiple File Types into One using Java ","permalink":"https://blog.groupdocs.com/merger/move-pdf-pages-in-java/","summary":"PDF is among one of the most in-use portable file formats. For large documents, it is always challenging to change the order of pages with losing the formatting. This article discusses, \u003cstrong\u003ehow to rearrange PDF pages programmatically in Java\u003c/strong\u003e.","title":"How to Rearrange PDF Pages in Java"},{"content":"Templates are widely used to generate personalized documents by replacing the template keys with respective values. This article guides about how to find and replace text and words in PDF documents in Java. We will separately discuss how to perform words and phrases search, case-sensitive word search, replacing the found text using regular expressions. Finally, we will learn how to hide the searched part of text using Java.\nThe following topics are going to be covered below:\nJava API for Replacing Text Find \u0026amp; Replace Words or Phrase Case-Sensitive Word Search \u0026amp; Replacement Replace using Regular Expressions (RegEx) Hide Text with Colored Box Java Redaction API for Replacing Text GroupDocs provides Java API for applying various types of redactions. It allows to redact, hide, or remove the content \u0026amp; even metadata of documents, presentations, spreadsheets, PDF files, and images within the application. For further details about the API, visit its documentation.\nDownload or Configure You may download the JAR file from the downloads section, or just get the latest repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-redaction\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.12\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; One of the good things is that there is no need to install any PDF editor, or any other third-party software for PDF redaction. The following is the content of the PDF document that is used in the below examples for redaction. The same approach will work for other document formats with hardly any difference in the source code.\nFind and Replace Word or Phrase in PDF in Java You can use this feature to hide any private data, and also to create a new customized document from any template. The following step explains how to find any word/phrase in a PDF document and replace it with some other text within the Java application.\nLoad the PDF file using Redactor class. Find the exact phrase or word, using the ExactPhraseRedaction and ReplacementOptions. Apply the redaction using apply() method. Save the new document with changes using the save() method. The following code finds and replaces the words in a PDF file using Java. More precisely, it hides all the occurrences of \u0026ldquo;John Doe\u0026rdquo; by replacing it with the word \u0026ldquo;[censored]\u0026rdquo;.\nThe output of the above code is as follows.\nFind and Replace Case-Sensitive Text or Phrase in PDF using Java You can perform the case-sensitive search \u0026amp; redaction. The following code replaces the case-sensitive occurrence of the word \u0026ldquo;John Doe\u0026rdquo; but not \u0026ldquo;john doe\u0026rdquo; within a PDF document using Java.\nThe output of the code is as follows.\nReplace Text in PDF with Regular Expressions (RegEx) in Java Similarly, you can replace any specific text pattern using regular expressions. The following steps allow you to redact PDF after searching using regular expression (RegEx) within your Java applications.\nLoad the PDF document using Redactor class. Find the regex match using the RegexRedaction class with ReplacementOptions. Apply in the changes to document using apply() method. Save the redacted document using appropriate save() method. The following Java code shows how to find a certain text pattern in a PDF document using RegEx and later replace/hide it with some other text.\nThe output of the above code is as follows.\nReplace the Text with Colored Box in Java If you just want to hide the searched confidential information within your PDF file, you can simply put a cover on it. The API allows you to hide the searched text. The following code places the black rectangle over the mentioned private text in Java.\nThe output of the above code is as follows.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, we learned how to find certain text in PDF files using different search techniques. Later we redacted the PDF files by replacing or hiding the text within the applications in Java. More precisely, we performed a simple search for the words, phrases, searched with case sensitivity, and by using RegEx in Java. Lastly, we changed the search results with either some other text or by simply hiding it with color over it.\nFor more details about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Redact PDF Scanned Documents in Java Search Synonyms in Multiple Files using Java Build Full-Text Search Solution in Java ","permalink":"https://blog.groupdocs.com/redaction/find-and-replace-text-in-pdf-in-java/","summary":"Templates are widely used to generate personalized documents by replacing the template keys with respective values. This article guides about \u003cstrong\u003ehow to find and replace text and words in PDF documents in Java\u003c/strong\u003e. We will separately discuss how to perform words and phrases search, case-sensitive word search, replacing the found text using regular expressions. Finally, we will learn how to hide the searched part of text using Java.","title":"Word Search and Replace Text in PDF in Java"},{"content":"HTML minification improves the web application performance with efficient load time and bandwidth usage. Unnecessary parts of code, insignificant white spaces, comments, semicolons, color values in the HTML and CSS are optimized in the minification process. Let\u0026rsquo;s automate the process to get rid of the unwanted code and improve efficiency within your Java applications. In order to improve the performance, this article discusses how to render Word documents to minified HTML in Java.\nJava API to Render as Minified HTML GroupDocs.Viewer showcases a document viewing API that allows rendering various types of documents into HTML, PDF, and image formats within Java applications. I will use this API in the example to convert the Microsoft Word DOCX file into a clean HTML file.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsArtifactRepository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifact Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-viewer\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.11.1\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Render Word DOC/DOCX to Minified HTML in Java HTML files can be generated either having embedded or external resources using respective methods. The following steps show how to render the Word (DOC/DOCX) document into minified HTML in Java.\nLoad the DOCX file using the Viewer class. Prepare the HTML rendering options using the HtmlViewOptions class. Enable the minification option by setting it to true. Use the view() with the created options to render the DOCX file as minified HTML. The following Java code example renders the Word DOCX file into minified HTML.\nGet a Free API License You can use the APIs for free without evaluation limitations by getting a temporary license.\nConclusion To conclude, this article discussed how to render the DOC/DOCX files as minified HTML in Java. You can develop your own online document converter and HTML minifier that allow users to convert the documents to minified HTML. Besides, you can learn more about GroupDocs.Viewer for Java from its documentation. For queries, contact us via the forum.\nSee Also STL File Viewer using Java CAD Documents Viewer using Java Source Code to PDF in Java Word Documents as Responsive HTML Page using Java ","permalink":"https://blog.groupdocs.com/viewer/render-word-documents-as-minified-html-in-java/","summary":"HTML minification improves the web application performance with efficient load time and bandwidth usage. Unnecessary parts of code, insignificant white spaces, comments, semicolons, color values in the HTML and CSS are optimized in the minification process. Let us automate the process to get rid of the unwanted code and improve efficiency within your Java applications. In order to improve the performance, this article discusses \u003cstrong\u003ehow to render Word documents to minified HTML in Java\u003c/strong\u003e.","title":"Render Word documents as Minified HTML in Java"},{"content":"Almost any document or image format (including images) can be converted to black-and-white or grayscale images. In this article, we will discuss how to convert color PDF documents to grayscale JPG and PNG image formats in Java.\nJava API to Convert Documents into Grayscale GroupDocs.Conversion provides Java API for converting documents between a multitude of supported file formats and image types. Conversion results can be customized using multiple advanced options. I will use this GroupDocs.Conversion for Java API to convert PDF documents to grayscale JPG and PNG images.\nDownload or Configure You may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert PDF to Grayscale JPG Image in Java Starting with the conversion of color PDF documents and transforming them to image formats. The following steps show how to convert the PDF to grayscale JPG in Java.\nLoad the PDF document using Converter class. Prepare the image conversion options. Set the conversion file format as JPG. Set the grayscale option to true. Convert to image using appropriate convert() method with options. The following Java source code converts the PDF document to a grayscale JPG image.\nFurthermore, there are many other options to customize the height, width, horizontal and vertical flip, document rotations, and properties like brightness, gamma, and contrast. Additionally, you can apply the watermarks with different settings to the output image.\nConvert PDF to Grayscale PNG Image in Java Likewise, the color PDF document can also be converted to other image formats in grayscale. The following steps show how to convert a PDF file to grayscale PNG in Java.\nLoad the PDF document using Converter class. Prepare conversion options using ImageConvertOptions. Set the conversion file format as PNG. Set the grayscale option to true. Convert to PNG image using convert() method. The following Java source code converts the PDF document to a grayscale PNG image.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To sum up we learned how PDF documents can be converted to PNG or JPG Image formats in Java. Try building your own conversion application, you may learn more about the low code and high code Java APIs from the documentation for the automation of document conversions.\nThe easiest way is to experience the examples from GitHub. Contact us for any query via the forum.\nSee Also Convert PDF to Grayscale using C# Transform Presentations to Images in Java Convert Images to PDF in Java Convert PDF documents to HTML using C# ","permalink":"https://blog.groupdocs.com/conversion/convert-pdf-to-grayscale-jpg-png-images-in-java/","summary":"Almost any document or image format (including images) can be converted to a black-and-white or grayscale monochrome image. In this article, we will discuss how to convert color PDF documents to grayscale JPG and PNG image formats in Java.","title":"Convert PDF to Grayscale in Java"},{"content":"\rWord processing documents are one of the most common file formats that are used to draft documents. While dealing with multiple large files, it is never easy to move pages without losing the formatting. In order to rearrange the pages, this article discusses, how to programmatically move pages in the Word documents (DOC/DOCX) in Java.\nJava API to Move Word Document Pages GroupDocs.Merger provides the Java API to deal with documents and their pages. It allows moving, removing, splitting of documents, and extraction of pages, changes in page orientation, and rotation of document pages within the Java applications. I will use this API to move pages of DOC/DOCX files. For the details and other features of the API, you can visit the documentation.\nDownload and Configure Get the library from the downloads section. For your Maven-based Java application, just add the following pom.xml configuration. After this, you can try the examples of this article as well the many more example available on GitHub. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-merger\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Move Pages in Word Documents using Java Just order a page to move to the new position, it will. The following are the steps that rearrange the pages of a Word document in Java.\nSet the page number of the target page and its new position using the MoveOptions class. Load the DOC/DOCX file using the Merger class. Use movePage() method to move the set page. Save the rearranged document using the save() method. The following Java source code rearranges the pages of a Word document. Precisely, it moves the 7th page of a DOCX document to the 2nd place.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, we learned how to change page order of a Word document in Java. We saw the source code example that changed the page position in a DOCX file. You can build your own online application to rearrange Word pages online. For more details about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Render Word documents as Minified HTML Word Search and Replace Text in Word Documents How to Password Protect and Remove Protection from Word Documents View Word Documents as Responsive HTML Page Insert OLE Objects in Word, Excel, PowerPoint ","permalink":"https://blog.groupdocs.com/merger/move-word-pages-using-java/","summary":"Word processing documents are one of the most common file formats that are used to draft documents. While dealing with multiple large files, it is never easy to move pages without losing the formatting. In order to rearrange the pages, this article discusses, \u003cstrong\u003ehow to programmatically move pages in the Word documents (DOC/DOCX) in Java\u003c/strong\u003e.","title":"How to Rearrange Pages in Word using Java"},{"content":"Cleaning and Minification of HTML improve the load time and bandwidth usage of the webpages. It is observed that some unnecessary code is injected when one document is converted to HTML format using some tools. You can get rid of this unwanted code within your .NET applications. This article discusses how to render Word documents to minified HTML using C#.\n.NET API to Render as Minified HTML GroupDocs.Viewer provides a document viewing API that allows rendering various documents into HTML, PDF, and image formats within the .NET application. I will use this API in the examples to convert the DOCX file into a clean HTML file.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Viewer Render Word DOC/DOCX to Minified HTML using C# HTML files can be obtained either with embedded or external resources using respective methods. The following steps show how to convert the Word document (DOC/DOCX) into minified HTML using C#.\nLoad the DOCX file using the Viewer class. Prepare the HTML rendering options using the HtmlViewOptions class. Enable the Minify option by setting it to true. Use the View() with created options to render DOCX file as minified HTML. The following C# code example renders the Word DOCX file into minified HTML.\nGet a Free API License You can use the APIs for free without evaluation limitations by getting a temporary license.\nConclusion To sum up, we discussed how to render the DOC/DOCX files as minified HTML using C#. You can build your own Online Converter and Cleaner that allows users to convert the documents to minified HTML. Besides, you can learn more about GroupDocs.Viewer for .NET from its documentation. For queries, contact us via the forum.\nSee Also Source Code to PDF in C# STL File Viewer using C# View CAD Documents using C# View Word Documents as HTML Responsive Page using C# ","permalink":"https://blog.groupdocs.com/viewer/render-word-documents-as-clean-html-using-csharp/","summary":"Cleaning and Minification of HTML improve the load time and bandwidth usage of the webpages. It is observed that some unnecessary code is injected when one document is converted to HTML format using some tools. You can get rid of this unwanted code within your .NET applications. This article discusses \u003cstrong\u003ehow to render Word documents to minified HTML using C#\u003c/strong\u003e.","title":"Render Word documents as Clean HTML using C#"},{"content":"\rIn this digital era, PDF is one of the most used file formats and is popular due to its portability. On the other hand, most of the time we can not edit the PDF files. When we merge multiple documents and pages together to form a combined comprehensive document, it often happens that we finish combining the pages in the wrong order. This article discusses, how to rearrange PDF pages programmatically using C#.\n.NET API to Rearrange PDF Pages \u0026amp; Merge Documents In order to rearrange pages in documents, GroupDocs provides GroupDocs.Merger for .NET. The API enables removing, splitting, and extraction of pages, changes in page orientation, and rotation of document pages within .NET applications. For the details and other features of the API, you can visit the documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Merger Rearrange PDF Pages using C# The following are the steps that reorder the pages of PDF documents using C#.\nDefine the existing and new position of the page in MoveOptions class. Load the PDF document using the Merger class. Use MovePage() method to reorder according to defined options. Save the PDF file with the new page order using the Save() method. The following C# code rearranges the pages of PDF documents. Precisely, it moves the 6th page of the document to the 1st place.\nHere is the output of the above code.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, we learned how to reorder pages of the PDF files using C# within the .NET applications. We saw the running example to change the position of the page. You can try building a simple application that can organize the PDF files by easily shuffling their pages.\nFor more details about the API, visit the documentation. For queries, contact us via the forum.\nSee Also How to Rearrange PDF Pages in Java Password Protect PDF Files using C# Split PDF Files using C# Merge Multiple File Types into One Document using C# ","permalink":"https://blog.groupdocs.com/merger/move-pdf-pages-using-csharp/","summary":"In this digital era, PDF is one of the most used file formats and is popular due to its portability. On the other hand, most of the time we can not edit the PDF files. When we merge multiple documents and pages together to form a combined comprehensive document, it often happens that we finish combining the pages in the wrong order. This article discusses, \u003cstrong\u003ehow to rearrange PDF pages programmatically using C#\u003c/strong\u003e.","title":"How to Rearrange PDF Pages using C#"},{"content":"Templates are widely used to generate customized documents. This article guides about how to find and replace text and words in PDF documents using C#. We will separately discuss how to programmatically replace words and phrases, replacement of words with case-sensitive search, replacing using regular expressions. Finally, we will also learn how to hide the searched string using C#.\nThe following topics are going to be covered below:\n.NET API for Replacing Text Find \u0026amp; Replace Words or Phrase Case-Sensitive Word Search \u0026amp; Replacement Replacing with Regular Expressions (RegEx) Hide Text with Colored Box .NET Redaction API for Replacing Text GroupDocs showcases GroupDocs.Redaction for .NET, the API to redact, hide, or remove content \u0026amp; even metadata of documents, presentations, spreadsheets, PDF files, and images within .NET application. For further details about the API, visit its documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Redaction No need to install any PDF editor, or any other third-party software for redaction. The following is the screenshot of a PDF document that is used in the below examples. The same approach will work for other document formats with hardly very little or no change in the code.\nFind and Replace Word or Phrase in PDF using C# You can use this feature to hide any confidential data, and also to create a new customized document from the template. The following step explains how to find any word/phrase in a PDF document with some other text within the C# application.\nLoad the PDF file using Redactor class. Find the exact phrase or word, using the ExactPhraseRedaction and ReplacementOptions. Apply the redaction using Apply() method. Save the new document with changes using the Save() method. The following code finds and replaces the word in C#. More precisely, it hides all the occurrences of \u0026ldquo;John Doe\u0026rdquo; by replacing it with the word \u0026ldquo;[censored]\u0026rdquo;.\nThe output of the code is as follows.\nFind and Replace Case-Sensitive Text or Phrase in PDF using C# You can perform the case-sensitive search \u0026amp; redaction. The following code replaces the case-sensitive existence of the word \u0026ldquo;John Doe\u0026rdquo; but not \u0026ldquo;john doe\u0026rdquo; in C#.\nThe output of the code is as follows.\nReplace Text in PDF with Regular Expressions (RegEx) using C# You can also replace any specific text pattern using regular expressions. The following steps allow you to redact PDF after the search using regular expression (RegEx) within your .NET application.\nLoad the PDF document using Redactor class. Find the regex match using the RegexRedaction class with ReplacementOptions. Put in the changes to document using Apply() method. Save the redacted document using appropriate Save() method. The following code shows how to find a certain text pattern in a PDF document using RegEx and later replace/hide it with some other text using C#.\nThe output of the above code is as follows.\nReplace the Text with Colored Box in C# If you just want to hide the searched content (private information) of your PDF file, you can simply put a cover on it. The API allows you to hide the searched text. The following C# code places the black rectangle over the mentioned private text.\nThe output of the above code is as follows.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, we learned how to find certain text in PDF files using different search techniques. Later we discussed how to redact PDF files either by replacing or hiding the text within the .NET application using C#. More precisely, we simply searched for the words, phrases, search with case sensitivity, and by using regular expressions in C#. Lastly, we replaced the search results with either some other text or by hiding it with a rectangle box over it.\nFor more details about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Redact Scanned PDF Documents in C# Search Synonyms in Multiple Files using C# Build your Full Text Search Solution in C# ","permalink":"https://blog.groupdocs.com/redaction/find-and-replace-text-in-pdf-using-csharp/","summary":"Templates are widely used to generate customized documents. This article guides about \u003cstrong\u003ehow to find and replace text and words in PDF documents using C#\u003c/strong\u003e. We will separately discuss how to programmatically replace words and phrases, replacement of words with case-sensitive search, replacing using regular expressions. Finally, we will also learn how to hide the searched string using C#.","title":"Find and Replace Text in PDF using C#"},{"content":"There could be many reasons to replace a word or phrase in the document. Whether you want to erase the sensitive content before publically sharing the document or you want to hide/remove all the private information like email IDs or Social Security Numbers, you need to redact the document content. This article guides you on how to redact Word documents programmatically in your .NET applications using C#. We will separately discuss how to redact by hiding the text and how to find and replace the text, words, or phrases using different techniques.\nThe following topics are going to be covered below:\n.NET API for Replacing Text Find \u0026amp; Replace Words or Phrases Case-Sensitive Search and Replace Words or Phrases Replace Text using Regular Expressions (RegEx) Hide the Text with Colored Box .NET Redaction API for Replacing Text GroupDocs.Redaction for .NET is the document redaction API that allows finding and then replacing the intended data from documents of various file formats. Along with the text redaction and rasterization, the API provides metadata, annotation, spreadsheet, and images redaction features. The supported file formats of the Word documents, spreadsheets, presentations, images, and PDF documents are available at the documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Redaction There is no need to install MS Office or any other third-party software in this process. Let’s now begin and have a look at different approaches to deal with finding and replacing text in the documents. The following is the screenshot of a Word document that is used in the examples for demonstration. The same methods will work for other document formats without any change in the code.\nFind and Replace Words or Phrases in Word document using C# The following step explains how to find any word/phrase in a Word document and then replaces all the occurrences with some other text within the C# application.\nLoad the Word document (DOC/DOCX) using Redactor class. Find the exact phrase or word, using the ExactPhraseRedaction class with ReplacementOptions. Use Apply method of Redactor to apply redaction. Save the changes using the Save method. The following code finds and replaces the word in C#. More precisely, it replaces all the occurrences of \u0026ldquo;John Doe\u0026rdquo; with \u0026ldquo;[censored]\u0026rdquo;.\nThe output of the code is as follows.\nCase-Sensitive Search and Replace in Word files using C# Similarly, you can perform the case-sensitive redaction of a Word document by finding the exact word and replacing it with any other. The following code replaces the existence of the word \u0026ldquo;John Doe\u0026rdquo; in a DOCX file using C#, but this time, the search will be case-sensitive.\nThe output of the code is as follows.\nReplace Text in Word Files using Regular Expressions (RegEx) using C# To find and replace any pattern of text in Word (DOC, DOCX) files you can use regular expressions. The following steps allow you to redact a Word document with RegEx using C#.\nLoad the Word document using Redactor class. Find the regex match using the RegexRedaction class with ReplacementOptions. Use Apply method to replace all the regex match texts. Use the Save method to get the redacted Word file. The following code shows how to find a text pattern in a Word file using RegEx and then replace/hide it with some other text using C#.\nThe output of the above code is as follows.\nHide Confidential Text in Word Documents with Colored Box using C# If you do not want to replace your private content but just want to cover it, the API allows you to hide that content by drawing a box over it. The following code places the black rectangle over the intended text to blackout text using C#.\nThe output of the above code is as follows.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, you learned how to find text in Word (DOC, DOCX) files using different techniques and replace the findings in different ways. More precisely, we discussed how to find text, word, or phrase even if it is a case-sensitive search or using a regular expression in C#. Later we replaced the search results with either some other text or by placing the colored rectangle box over the searched text.\nFor more about the API, visit documentation. For queries, contact us via the forum.\nSee Also Build your Full-Text Search Solution in C# Find Differences by Comparing two Images in C# ","permalink":"https://blog.groupdocs.com/redaction/find-and-replace-text-in-word-using-csharp/","summary":"There could be many reasons to replace a word or phrase in the document. Whether you want to erase the sensitive content before publically sharing the document or you want to hide/remove all the private information like email IDs or Social Security Numbers, you need to redact the document content. This article guides you on \u003cstrong\u003ehow to redact Word documents programmatically\u003c/strong\u003e in your .NET applications using C#. We will separately discuss how to redact by hiding the text and how to \u003cstrong\u003efind and replace the text, words, or phrases\u003c/strong\u003e using different techniques.","title":"Find and Replace Words in Word Documents using C#"},{"content":"Metadata variants are attached with documents of different file formats. MP3 files commonly contain ID3 metadata tags. This article discusses how to read different MP3 tags in Java. One by one, we will see how to extract ID3 (IDEv1, ID3v2), Lyrics, and APEv2 metadata tags from the mp3 files using Java Metadata API.\nThe following topics are covered below:\nJava API to Manage MP3 tags Read MP3 ID3 Tags - ID3v1 \u0026amp; ID3v2 Get MP3 Lyrics Tags Retrieve MP3 APEv2 Tags Java API for MP3 Metadata Tags GroupDocs.Metadata is equipped with APIs to automate metadata management of various file formats within applications. It\u0026rsquo;s Java API allows you to read, update, add, clean, and remove the metadata for many file formats within the Java application. We will use it to work with MP3 metadata tags.\nDownload and Configure Get the metadata library from the downloads section. For your Maven-based Java application, just add the following pom.xml configuration. After this, you can try the examples of this article as well the many more example available on GitHub. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-metadata\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;22.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Read MP3 ID3 Tags in Java - ID3v1 \u0026amp; ID3v2 The following steps show how to read the MP3 ID3v1 tags using Java.\nLoad the MP3 file using Metadata class. Retrieve the MP3RootPackage using the getRootPackageGeneric() method. From the root package, retrieve each of the ID3v1 properties. The following Java source code reads some of the MP3 ID3v1 tags of the MP3 file.\nYou can extract the ID3v2 tags in a similar way. The following steps show how to retrieve the MP3 ID3v2 tags in Java.\nLoad the MP3 file using Metadata class. Get the root package. From the root, you can easily retrieve all the ID3v2 tags like Artist, Composers, Publisher, Title etc. Details for attached pictures can be retrieved from the properties of Attached Picture Frames. The following Java source code example reads some of the MP3 ID3v2 tags and attached pictures details of the MP3 file.\nRead MP3 Lyrics Tags in Java The following steps guide how to read the MP3 Lyrics tags in Java.\nLoad the MP3 file using Metadata class. Retrieve the root package. From the root, you can get lyrics tags and its properties like Lyrics, artist, track etc. The following Java code snippet retrieves MP3 lyrics tags and some of the properties from the MP3 file.\nRead MP3 APEv2 Tags in Java The following steps showing how we can extract the MP3 APEv2 tags within Java application.\nLoad the MP3 file using Metadata class. Retrive the root package using getRootPackageGeneric() method. From the root, you can retrieve the APEv2 tags like Album, Genre, Copyrights, Language, etc. The following Java code examples read some of the properties of MP3 APE tags of an MP3 file.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To sum up, we learned how to extract metadata tags from the MP3 files in Java. One by one, we read ID3v1, ID3v2, Lyrics, and APE tags and their properties from the MP3 files. Think about building your own MP3 online tag editor \u0026amp; metadata viewer just like Online Metadata App.\nLearn more about the API from the documentation and contact us for queries via the forum.\nSee Also Metadata Cleaner for Documents and Images using Java Remove MP3 Tags in Java Manage XMP and EXIF Data of HEIF/HEIC Images using Java Extract RIFF INFO and Metadata of WAV files in Java ","permalink":"https://blog.groupdocs.com/metadata/read-mp3-tags-in-java/","summary":"Metadata variants are attached with documents of different file formats. MP3 files commonly contain ID3 metadata tags. This article discusses \u003cstrong\u003ehow to read different MP3 tags in Java\u003c/strong\u003e. One by one, we will see how to extract ID3 (IDEv1, ID3v2), Lyrics, and APEv2 metadata tags from the mp3 files using Java Metadata API.","title":"Read MP3 Tags in Java - (ID3, Lyrics, APE)"},{"content":"Protection is important for confidential and private documents. In this article, we will see how to lock PowerPoint presentation files with a password in Java. Further, we will learn to unlock presentation files by removing their password and also how to change the existing password of PPT \u0026amp; PPTX files.\nThe following topics are discussed below:\nJava API to Protect PowerPoint PPT/PPTX with Password Lock PowerPoint Files by adding Password Change PPT/PPTX Password How to Remove Presentation Passwords Java API to Lock and Unlock PowerPoint Files In order to deal with the protection of presentation files, we will use the Java API of GroupDocs.Merger. The API provides the add, change, and remove password protection features for presentations and other documents.\nDownload and Configure Get the library from the downloads section. For your Maven-based Java application, just add the following pom.xml configuration. After this, you can try the examples of this article as well the many more example available on GitHub. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-merger\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.9\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Add Password to PowerPoint Files in Java - Lock PPT/PPTX You can lock any presentation file easily by adding a password to it programmatically. The following steps show how to add a password to any PowerPoint presentation (PPT/PPTX) file in Java.\nSet the password using the AddPasswordOptions. Load the presentation file using the Merger class. Apply the password using addPassword method. Save the protected presentation using the save method. The following Java code snippet locks the presentation by adding a password to the PPT file.\nWhen you try to open the output file obtained from the above code, the editor or viewer will ask for the password while opening the presentation.\nUpdate Existing Password of PPT/PPTX Files in Java If you have doubt that your password is glanced at by someone. You can change it easily. The following steps allow you to change the existing password of the presentation file in Java.\nPrepare the loading options using the current password. Set the update options using the new password. Load the presentation using the Merger class. Now, change the password using the updatePassword method. Finally, call save method to save the locked file. Here is the Java code snippet that changes the existing password with a new one of a PowerPoint PPT/PPTX presentation.\nRemove Password of Presentation in Java - Unlock PPT/PPTX Let\u0026rsquo;s remove the protection and let everyone access the file. Just, open the file and then remove its password for public access. The following steps show how to unlock the PPT file by removing the password in Java.\nPrepare the loading options using the latest password. Load the PowerPoint PPT/PPTX file using the Merger class. Remove the password using the removePassword method. Save the unlocked file using the save method. The following Java code sample removes the password from the PowerPoint presentation file to keep it unlocked.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion Let\u0026rsquo;s sum up what we learned today. We used a PowerPoint presentation (PPTX) and first, we added a password to it to get it locked. Next, we changed its existing password. Lastly, we learned how to remove the password of the protected PowerPoint file in Java.\nTo learn more about GroupDocs.Merger for Java, visit the documentation. It will help you develop your own applications to lock and unlock presentation files. For queries, contact us via the forum.\nSee Also Password Protect PowerPoint Presentations Unlock Protected PowerPoint Presentations Watermark PowerPoint files in Java Watermark Password Protected Documents in Java Insert OLE Objects in Word, Excel, PowerPoint using Java Convert Presentations to Images in Java Convert Presentations to PDF in Java ","permalink":"https://blog.groupdocs.com/merger/lock-unlock-ppt-pptx-files-with-password-in-java/","summary":"Protection is important for confidential and private documents. In this article, we will see \u003cstrong\u003ehow to lock \u003cstrong\u003ePowerPoint presentation files\u003c/strong\u003e with a password in Java\u003c/strong\u003e. Further, we will learn to unlock presentation files by \u003cstrong\u003eremoving their password\u003c/strong\u003e and also \u003cstrong\u003ehow to change the existing password\u003c/strong\u003e of PPT \u0026amp; PPTX files.","title":"Password Protection of PowerPoint Presentations in Java"},{"content":"CAD stands for Computer-Aided Design. It is used to create 2D and 3D architectural designs, computer animations, special effects in movies, technical drawings, and much more. PDF is one of the most well-known file formats that is famous due to its portability. Here comes the need to convert CAD files to PDF format when such technical drawings are to be transferred to a normal user who is not equipped with the technical software that supports CAD drawings. This article guides programmers on how to convert different CAD formats like DWG to PDF in Java.\nThe following topics are covered below:\nCAD Drawings Conversion Java Library Converting DWG to PDF CAD Drawings Conversion Java Library GroupDocs.Conversion for Java is the document and image conversion library for Java-based applications. It supports various file formats for conversion from one format to another, which include Word-processing documents, spreadsheets, presentations, images, portable documents, web pages, photoshop formats, Microsoft Project files, emails, Vector graphics by Microsoft Visio, CAD drawings, Page descriptive languages, etc.\nIn the examples below, I will use this API for the conversion of CAD drawings to PDF in Java. It will be better if you download the library and prepare the development environment beforehand. You may get the API from the downloads section or by the following configuration in your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.10.1\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert DWG to PDF in Java Let\u0026rsquo;s move to quickly convert the drawing. These steps allow you to easily convert the AutoCAD DWG drawings to a PDF file in Java with a lot of customization options.\nSet the loading options using the CadLoadOptions class. Specify layouts using setLayoutNames() method. Load the DWG drawing using the Conveter class. Specify conversion options like width, height, and format. Convert to PDF using the appropriate convert() method. Here is the complete Java code that demonstrates the above steps and converts a DWG file into PDF format.\nWith a little change in code, you can also convert DGN and DWF files accordingly. For a file format that does not support layouts, we will not use the setLayoutNames method.\nConclusion To conclude, we learned to convert the CAD files into PDF format. Specifically, we converted the AutoCAD DWG drawings to PDF format using the Java API. You can now try building your online CAD to PDF converter Java application using GroupDocs.Conversion. In case of any confusion, you may contact the Free Support Team, which always feels good to help you on the forum.\nSee Also View CAD Documents using Java How to Rearrange PDF Pages in Java Watermark PDF Files in Java Password Protection of PDF Files in Java Different Ways to Split PDF Files in Java Convert CAD Drawings to PDF in C# ","permalink":"https://blog.groupdocs.com/conversion/convert-cad-drawings-to-pdf-in-java/","summary":"\u003cstrong\u003eCAD\u003c/strong\u003e stands for Computer-Aided Design. It is used to create 2D and 3D architectural designs, computer animations, special effects in movies, technical drawings, and much more. \u003cstrong\u003ePDF\u003c/strong\u003e is one of the most well-known file formats that is famous due to its portability. Here comes the need to convert CAD files to PDF format when such technical drawings are to be transferred to a normal user who is not equipped with the technical software that supports CAD drawings. This article will help programmers to add the feature to \u003cstrong\u003econvert\u003c/strong\u003e different \u003cstrong\u003eCAD formats\u003c/strong\u003e like \u003cstrong\u003eDWG, DGN, or DWF into PDF in Java\u003c/strong\u003e applications.","title":"Convert AutoCAD DWG Drawings to PDF in Java"},{"content":"The most common and widely used spreadsheet file formats are XLS, XLSX, and ODS. The famous Microsoft Excel and OpenOffice Calc support these formats and we normally use these formats for maintaining accounts and different spreadsheets. Therefore, as a developer, we widely need to edit Excel files within our applications programmatically. In this article, we will discuss how to edit Excel files in C# using the .NET API.\nThe following are the topics discussed briefly in this article:\n.NET API - Excel Spreadsheets Editing Edit Excel Spreadsheets Files in C# .NET API for Excel Spreadsheets Editing and Automation GroupDocs showcases the .NET API for spreadsheet editing. I will use it in the C# examples of this article. It is the document editing API and allows developers to load, edit, and save various document formats using WYSIWYG HTML editors. In addition to the XLS, XLSX, and ODS spreadsheet formats, the API supports editing of various other spreadsheets \u0026amp; MS Excel supported formats like CSV, TSV, DSV, XLT, XLTX, XLTM, XLSM, XLSB, XLAM, SXC, SpreadsheetML, FODS, DIF.\nDownload the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Editor Edit Excel Files in C# Hope you have successfully referenced the API. Now you can quickly start editing your Excel documents. The following steps will let you edit the spreadsheet documents using C#.\nLoad the Excel file. Edit accordingly with options. Save the edited document. Load the Excel Spreadsheet Firstly, load the spreadsheet by providing the document path/stream and the password (if the document is password protected).\nEdit the Excel File After loading, you can edit the loaded spreadsheet as needed. Now we are going to replace all the occurrences of \u0026ldquo;Old Company Name\u0026rdquo; with \u0026ldquo;New Company Name\u0026rdquo; in the first tab of the spreadsheet. The following steps allow you to edit the excel file accordingly in C#.\nLoad the Excel file using Editor and loading options. Prepare the Spreadsheet Editing Options to extract the exact sheet/tab. Extract the content of the tab. Modify the tab\u0026rsquo;s content. You can extract the images and all the resources from the selected tab. Create the new EditableDocument using the modified content. Save the editing spreadsheet using the appropriate Save() method. The following C# source code edits the excel file and changes its content.\nSave the Edited Excel File with Options After editing, while saving the edited spreadsheet content, you can set various options. These options include; setting password, output format, protection, etc. I am setting the above options in the below-mentioned code and saving the edited spreadsheet as a password-protected and write-protected XLSX file.\nGet a Free License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, we discussed how to edit Excel documents in C# using document editing API for .NET applications. You can use the API with the WYSIWYG editors for the visual editing of your documents. After that, you can move ahead to build your own online spreadsheet editor.\nFor more details, options, and examples, you can visit the documentation and the GitHub repository. For further queries, contact the support on the forum.\nRelated Articles Edit Word Documents in C# Edit XML files Data using C# See Also On-Premise Document Editing APIs Document Editing and Automation Cloud APIs Edit Excel Files Online ","permalink":"https://blog.groupdocs.com/editor/edit-excel-files-in-csharp/","summary":"The most common and widely used spreadsheet file formats are \u003cstrong\u003eXLS\u003c/strong\u003e, \u003cstrong\u003eXLSX\u003c/strong\u003e, and \u003cstrong\u003eODS\u003c/strong\u003e. The famous Microsoft Excel and OpenOffice Calc support these formats and we normally use these formats for maintaining accounts and different spreadsheets. Therefore, as a developer, we widely need to edit Excel files within our applications programmatically. In this article, we will discuss \u003cstrong\u003ehow to edit Excel files in C#\u003c/strong\u003e using the .NET API.","title":"How to Edit Excel Files using C#"},{"content":"\rIn the digital world, word processing documents are one of the most commonly used file formats that are used to create and edit documents. While dealing with large documents, it is really not easy to move pages without losing the formatting. Formatting loss often happens when we try to combine multiple documents of different types or we simply merge the same type of files into one single document. In order to rearrange the pages, this article discusses, how to programmatically move pages in Word documents (DOC/DOCX) using C#.\n.NET API to Move Word Document Pages GroupDocs.Merger provides the .NET API that enables moving, removing, splitting of documents, and extraction of pages, changes in page orientation, and rotation of document pages within the .NET applications. Today, we will use this API to move pages of DOC/ DOCX files using C#. For the details and other features of the API, you can visit the documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Merger Move Pages in Word Documents using C# The moving of pages is simple. Just command that particular page to move to its new position. The following are the steps that rearrange the pages of a Word document using C#.\nDefine the page number of the target page and its new position using the MoveOptions class. Load the DOC/DOCX document using the Merger class. Use MovePage method to move the page. Save the rearranged document using the Save method. The following C# code helps rearrange the pages of a Word document. Precisely, it moves the 7th page of a DOCX document to the 2nd place.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, we learned how to change page order in Word documents using C# within .NET applications. We saw the source code example that changed the position of the page in a DOCX file. You can build your own application that can rearrange Word pages online by easily shuffling the pages.\nFor more details about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Compare Word Documents Edit Word Documents Protect/UnProtect Word Files with Password View Word Documents as HTML Responsive Page Add or Remove Annotations or Markup Word files ","permalink":"https://blog.groupdocs.com/merger/move-word-pages-using-csharp/","summary":"In the digital world, word processing documents are one of the most commonly used file formats that are used to create and edit documents. While dealing with large documents, it is really not easy to move pages without losing the formatting. Formatting loss often happens when we try to combine multiple documents of different types or we simply merge the same type of files into one single document. In order to rearrange the pages, this article discusses, how to programmatically move pages in Word documents (DOC/DOCX) using C#.","title":"How to Rearrange Pages in Word using C#"},{"content":"In one of the articles, we have already discussed how to redact words in documents as a .NET developer. The strategy is used in many ways to erase sensitive content, hide or remove private information like email addresses or identification numbers. This article discusses how to perform word search in Word DOC/DOCX documents in Java. We will separately discuss how to find and replace the text, words, or phrases with different techniques using Java API for redaction.\nThe following topics are going to be covered below:\nJava API for Word Search and Replacing Text Find \u0026amp; Replace Words or Phrase Case-Sensitive Word Search and Replace Text Replace Text using Regular Expressions (RegEx) Replace the Text with Colored Box Java API for Word Search and Replacing Text GroupDocs provides a Java redaction API that allows finding and replacing the content of MS Word supported files and other documents of various other file formats. In addition to the text redaction and rasterization, the API supports metadata, annotation, spreadsheet, and also the images redaction features. The supported file formats of the Word documents, spreadsheets, presentations, images, and PDF documents are available at the documentation.\nDownload or Configure You may download the JAR file from the downloads section, or just get the latest repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-redaction\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.12\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; MS Word or any other third-party software is not required for the redaction process. Let’s now start with different approaches to deal with search and replace text. The following is the screenshot of a Word document that is used in the below examples. You can use the same methods for other document formats as well with very little or no change in the source code.\nFind and Replace Words or Phrase using Java The following steps explain how to find and then replace the occurrences of a word/phrase in a Word document within the Java application.\nLoad the DOC/DOCX file using Redactor class. Find the exact phrase or word, using the ExactPhraseRedaction and ReplacementOptions classes. Use apply method of Redactor to apply redaction. To save the file at different location after making changes, use the output stream. Save the redaction changes using the save method. The following code finds and replaces the word \u0026ldquo;John Doe\u0026rdquo; in the above Word document using Java. It replaces all the occurrences of “John Doe” with the word “[censored]”.\nThe output of the code is as follows.\nCase-Sensitive Word Search and Replace Text in Java You seem cautious about the exact letter case of the word and only want to replace the word that only matches your case-sensitive search. The following code replaces the existence of the exact case match of the word “John Doe” in Java.\nThe output of the code is as follows.\nReplace Text using Regular Expressions (RegEx) in Java If you do not want to change the exact word but some pattern that exists in your document, you can use the Regular expressions. The following steps allow you to find and replace any pattern of text using regular expressions (RegEx) within your Java applications.\nLoad the document using Redactor class. Create the RegEx using the RegexRedaction. Provide the text using ReplacementOptions to replace the RegEx match. Use apply method replace all the regex matches. Use the save method to get the redacted document. The following code shows how to perform the word search in a Word file using RegEx and replace it with some other text using Java.\nThe following is the output of the above code:\nReplace the Text with Colored Box in Java If you do not want to replace your content and just want to hide it, the API allows you to cover to text match by drawing a box over it. The following Java code hides the text with the black rectangle box.\nThe output of the above code is as follows.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, you learned how to perform word search to find text in Word documents using exact text phrase search, case-sensitive search, search using regular expressions, and last but not least hiding the text instead of replacing it. You can use these different techniques to replace the findings in different ways within MS Word documents.\nFor more details and learning about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Build Full-Text Search Solution in Java Image Comparison in Java to Spot the Differences Rearrange Pages in Word using Java Find and Replace Text in PDF using C# ","permalink":"https://blog.groupdocs.com/redaction/find-and-replace-text-in-word-documents-using-java/","summary":"In one of the articles, we have already discussed how to redact words in documents as a .NET developer. The strategy is used in many ways to erase sensitive content, hide or remove private information like email addresses or identification numbers. This article discusses how to perform word search in Word DOC/DOCX documents in Java. We will separately discuss how to find and replace the text, words, or phrases with different techniques using Java API for redaction.","title":"Word Search and Replace Text in Word Documents using Java"},{"content":"Earlier we restricted the access to PDF documents by applying passwords. In this article, we will see how to password protect Word documents in Java. Further, we will also learn to change the existing password of DOC \u0026amp; DOCX files, and lastly, how to remove the password protection to unlock Word documents within the Java applications.\nThe following topics are covered below:\nJava API for to Lock/Unlock Word Documents Add Password to Word Document Change Password of Word Document How to Remove Password from Word Document Java API to Lock/Unlock Word Documents GroupDocs.Merger showcases the Java API that allows locking and unlocking of Word documents within the Java applications. We will use GroupDocs.Merger for Java to add the password to Word files, change it, and also remove password protection from the Word files in Java.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-merger\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.9\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; For more details about the API and about the other supported document formats, you can visit the documentation and the GitHub repository for the source code examples.\nPassword Protect Word Document in Java Let’s start with adding a password to the MS Word DOCX file for security. The following steps show how to add a password to Word documents in Java.\nDefine the password using AddPasswordOptions class. Load the DOCX file using the Merger class. Make it password-protected using addPassword() method. Save the protected file using the appropriate save() method. The following Java code snippet adds a password to a MS Word DOCX file.\nNow, whenever you try to open the password-protected document, the document viewer \u0026amp; editor asks for the password to open the file.\nChange Existing Password of Word Document in Java Let’s change the password with a new one. The following steps change the existing password of the Word file in Java.\nSet the loading options using the current password. Now define the new password using password update options. Load the protected Word document using Merger class and the defined loading options. Use updatePassword() method to apply the new password. Save the password protected file again using the save() method. The following code snippet changes the current password of the Word document using Java.\nRemove Password from Word Document in Java If the document is no more confidential and the file protection is not required, you can simply remove the password. The following steps show how to remove the password of a protected Word file in Java.\nLoad the protected Word document using Merger class and the existing password. Remove its password using removePassword() method. Save the unlocked DOCX file using the save() method. The following is the Java code example that removes the password of a Word file to make it unlocked/unprotected.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion Let’s sum up what we discussed above. Using a simple Word document, we locked it with a password using Java example. Next, we learned to change the existing password. Lastly, we removed the password of the Word file to make it unlocked within any Java application.\nTo learn more about GroupDocs.Merger for Java, visit its documentation to start building your own document protector or password remover applications for various supported document formats. For queries, contact us via the forum.\nSee Also Add Password to Lock Word Documents Unlocking Word Documents Password Protect PDF Files in Java Different Ways to Split PDF Files in Java Find and Replace Words in Documents using Java Merge Multiple File Types into One using Java ","permalink":"https://blog.groupdocs.com/merger/lock-unlock-word-documents-with-password-in-java/","summary":"Earlier we restricted the access to PDF documents by applying passwords. In this article, we will see how to password protect Word documents in Java. Further, we will also learn to change the existing password of DOC \u0026amp; DOCX files, and lastly, how to remove the password protection to unlock Word documents within the Java applications.","title":"How to Password Protect and Remove Protection from Word Documents in Java"},{"content":"When the metadata is not really required, you can eliminate it. In this article, we will learn how to programmatically remove different MP3 tags in Java. Precisely, we will see the removal of ID3v1, ID3v2, Lyrics, and APEv2 metadata tags from mp3 files within the Java application.\nThe following topics are covered below:\nJava API for MP3 tags Remove MP3 ID3 Tags - ID3, Lyrics, APE Java Code - Remove MP3 Metadata Example Java API for MP3 Tags Removal GroupDocs.Metadata provides metadata management Java API to deal with metadata of different file formats. GroupDocs.Metadata for Java allows to read, update, add, clean, and totally remove the metadata for various file formats. I will use this API to remove metadata tags of MP3 files.\nDownload or Configure You may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-metadata\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.8\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Remove MP3 Tags in Java - ID3v1, ID3v2, Lyrics, APE The following steps will quickly allow you to remove MP3 metadata tags from your MP3 files in Java.\nLoad the MP3 file. Get the MP3 root package. Remove the relevant MP3 Tag(s). Save the updated MP3 file. 1. Load MP3 Select the MP3 file and load it using the Metadata class.\nMetadata metadata = new Metadata(\u0026#34;path/mp3File.mp3\u0026#34;); 2. Get MP3 Root Package Get the MP3 Root Package of the MP3 file using the getRootPackageGeneric() method.\nMP3RootPackage root = metadata.getRootPackageGeneric(); 3. Remove MP3 Tags Following are ways to remove different metadata tags. You can use the relevant removal method for your MP3 files.\nID3v1 To remove the ID3v1 metadata tags, set the ID3V1 property of the root package to null.\nroot.setID3V1(null); ID3v2 Set the ID3V2 property to null to remove the ID3v2 metadata tags.\nroot.setID3V2(null); Lyrics Remove the Lyrics tags by setting the Lyrics Tag to null.\nroot.setLyrics3V2(null); APE Use the removeApeV2() method of the root package to eliminate APEv2 tags.\nroot.removeApeV2(); 4. Save the File Lastly, save the updated MP3 file using the save() method.\nmetadata.save(\u0026#34;path/mp3TagsRemoved.mp3\u0026#34;); Complete Code - Remove MP3 Tags The following Java source code example shows how to remove relevant MP3 Tags from the MP3 files.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To conclude, we learned to remove metadata tags from MP3 files in Java using Metadata API. One by one, we looked into how to remove ID3v1, ID3v2, Lyrics, and APE tags from the MP3 files.\nYou can learn more about the API from the documentation. Contact us for queries via the forum.\nSee Also Metadata Cleaner for Documents and Images using Java Extract RIFF INFO and Metadata of WAV files in Java Manage XMP and EXIF Data of HEIF/HEIC Images using Java ","permalink":"https://blog.groupdocs.com/metadata/remove-mp3-tags-in-java/","summary":"When the metadata is not really required, you can eliminate it. In this article, we will learn \u003cstrong\u003ehow to programmatically remove different MP3 tags in Java.\u003c/strong\u003e Precisely, we will see the removal of ID3v1, ID3v2, Lyrics, and APEv2 metadata tags from mp3 files within the Java application.","title":"Remove MP3 Tags in Java"},{"content":"Annotations are commonly used in documents for pointing out different observations and providing feedback for discussion. We discussed in separate articles, how to add different annotations to PDF and Word documents using C#. Today, this article discusses how to remove annotations from documents like PDF and Word DOC/DOCX files using C#.\nThe following topics are discussed below:\nAnnotation .NET API Remove All Annotations Remove Annotations by IDs Eliminate Annotations by Annotation Object .NET API for Annotations GroupDocs.Annotation provides the .NET API to deal with annotations within various documents and images. It allows adding, removal, and extraction of annotations from PDF, Word, and many other documents. You can have a look at the documentation for the complete list of supported document formats for annotation.\nDownload its DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet. You may also use the following command from the Package Manager.\nPM\u0026gt; Install-Package GroupDocs.Annotation Remove All Annotations from PDF, Word documents using C# There are various ways to remove annotations from documents. You can remove all the annotations at once, remove specific annotation(s) by providing ID(s), or remove specific annotation by annotation object. For more options, visit the documentation article.\nThe following are the steps to remove all the annotations from PDF or Word DOC/DOCX document(s) using C#.\nLoad the document using Annotator. Initialize Saving Options class. Set the annotation type to None. Save the file, free of annotations using the Save() method. The following code shows how to remove annotations from PDF or Word files using C#.\nRemove Annotation by IDs using C# Similarly, you can provide annotation ID(s) to eliminate these annotations from the document. Just provide the ID or list of IDs to get rid of the specified annotation. The following code shows how to remove the annotation(s) from PDF or Word documents by providing the ID(s) using C#.\nRemove Annotation by Annotation Object using C# You can also get rid of the specific annotation by proving the Annotation object. In order to show this, the following code example removes the annotation(s) from PDF or Word documents by using annotation objects in C#.\nConclusion To conclude, you have learned how to remove annotations from the documents using C#. Specifically, we removed all the annotations from PDF \u0026amp; Word files. Later we removed annotations by providing IDs and also by proving the annotation objects.\nBuild your own document annotation remover .NET application using GroupDocs.Annotation for .NET. Learn more about the API from the documentation and the GitHub repository. For further queries, contact the support on the forum.\nSee Also Annotate or Markup PDF files using C# Annotate or Markup Word files using C# Highlight PDF using Annotations in C# Create Hyperlinks in PDF using Annotations in C# ","permalink":"https://blog.groupdocs.com/annotation/remove-annotations-from-pdf-or-word-documents-using-csharp/","summary":"Annotations are commonly used in documents for pointing out different observations and providing feedbacks for discussion. We discussed in a separate articles, how to add different annotations to PDF and Word documents using C#. Today, this article discuss \u003cstrong\u003ehow to remove annotations from documents like PDF and Word DOC/DOCX files using C#\u003c/strong\u003e.","title":"Remove Annotations from PDF or Word Documents using C#"},{"content":"No more long discussions within long email threads about the content of the document(s). You can use annotations to markup documents with personalized messages and their replies. This article discusses how to programmatically annotate PDF files to markup documents using C#. Additionally, we will also discuss how to remove annotations from PDF files.\nThe following topics are discussed briefly below:\n.NET API to Annotate PDF Files Add Annotations to PDF Arrow annotations Rectangle annotations Ellipse or Oval annotations Distance annotations Remove Annotations from PDF Files .NET API to Annotate PDF Files GroupDocs.Annotation has its .NET API to work with the annotations within the documents and images. It allows you to add, remove, and extract annotations from PDF \u0026amp; Word documents, spreadsheets, and presentations. Furthermore, it supports images, webpages, email messages, Visio drawings, and much more. You can have a look at the documentation for the complete list of supported document formats for annotation.\nDownload its DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet. You may also use the following command from the Package Manager.\nPM\u0026gt; Install-Package GroupDocs.Annotation Add Annotations to PDF using C# There are many different types of annotations that are available to add within the documents, however, we will discuss only a few in this article.\nThe following are some of the supported annotations. You may learn about each annotation individually.\nArea / Rectangle annotation Arrow Distance Ellipse Highlight Link Point Polyline\t– Replacement Resource Redaction Strikeout Text Field Text Redaction Underline Watermark Add Arrow Annotation to PDF using C# The following are the steps for how to add arrow annotations to PDF documents in C#.\nLoad the PDF document using the Annotator class. Initialize the Arrow Annotation. Define the position, size, page number of the arrow annotation. Add the defined arrow annotation using the Add method. Save the annotated document using the appropriate Save() method. The following C# code sample shows how to add an arrow annotation to a PDF document.\nInsert Rectangle or Area Annotation to PDF using C# The following are the steps to add a rectangle or area annotation to a PDF document with some customizations. It is very similar to adding Arrow annotations but uses AreaAnnotation.\nLoad the PDF document using the Annotator class. Initialize the rectangle annotation using AreaAnnotation class. Specify the position, size, and color of the rectangle. You can also set other properties like page number, background, opacity, style, pen width, messages, and time. Add the defined rectangle annotation to the Annotator. Lastly, save the annotated file using the Save() method. The following code sample adds rectangle/area annotation to a PDF document using C#.\nAdd Oval or Ellipse Annotation to PDF using C# Likewise, let\u0026rsquo;s add the ellipse/oval annotation. The following steps show how an oval annotation or ellipse annotation can be added to a PDF file using C#.\nLoad the PDF file using the Annotator class. Initialize the Ellipse Annotation. Set the position, size, and other properties of the initialized annotation. Add the created ellipse annotation to the Annotator object. Use the Save() method to save the annotated PDF file. The following C# code example adds an oval/ellipse annotation to a PDF document.\nInsert Distance Annotation to PDF using C# You can use distance annotation to point out the distance between two objects. The following are the steps that add distance annotation to the PDF document using C#.\nAfter loading the PDF document using Annotator class, initialize the distance annotation using DistanceAnnotation class. Set the appearance, line color, thickness, style, etc. Add the distance annotation to the Annotator. Save the PDF file with the annotation using the appropriate Save() method. The following code snippet shows how to add the distance annotation within the PDF using C#.\nRemove Annotations from PDF files using C# There are different ways to remove annotations from PDF documents. Either, you can remove all the annotations at once, or you can provide IDs, indexes to remove the selective ones. We discussed the different ways of removing annotations in the separate article. However, here are the steps to remove all the annotations from a PDF file.\nLoad the document. Initialize the Save Options. Set the annotation types to None. Save the annotation free PDF file using the Save() method. The following C# code shows how to remove annotations from PDF files.\nConclusion To conclude, you learned how to add different annotations to PDF documents within the .NET applications using C#. More precisely, we added arrow, ellipse, area, and distance annotations. Further, you have also seen one of the ways to remove all the annotations from any PDF file.\nYou can think to build your own document annotator .NET application. For more about the GroupDocs.Annotation for .NET, visit the documentation and the GitHub repository. For further queries, contact the support on the forum.\nSee Also Create Hyperlinks in PDF using Annotations in C# Highlight PDF using Annotations in C# Add or Remove Annotations or Markup Word files using C# ","permalink":"https://blog.groupdocs.com/annotation/annotate-pdf-files-using-csharp/","summary":"No more long discussions within long email threads on the content of the document(s). You can use annotations to markup documents with personalized messages and their replies. This article discussed \u003cstrong\u003ehow to programmatically annotate PDF files to markup documents using C#\u003c/strong\u003e. Additionally, we will also discuss how to remove annotations from PDF files.","title":"Add or Remove Annotations or Markup PDF files using C#"},{"content":"\rThere are different metadata standards that are used with MP3 files. Various types of data can be stored using different standards. In this article, we will discuss how to read different MP3 tags using C#. Specifically, we will learn to extract ID3v1, ID3v2, Lyrics, and APEv2 metadata tags from the mp3 files within the .NET application.\nThe following topics are covered below:\n.NET API to Manage MP3 tags Read MP3 ID3 Tags - ID3v1 \u0026amp; ID3v2 Get MP3 Lyrics Tags Retrieve MP3 APEv2 Tags .NET API for MP3 Tags Editor GroupDocs.Metadata provides .NET API to automate metadata management of various file formats within .NET applications. The API allows to read, update, add, clean, and remove the metadata for many file formats. We will use this API to deal with metadata tags of MP3 files.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Metadata Read MP3 ID3 Tags using C# - ID3v1 \u0026amp; ID3v2 The following steps show how to read the MP3 ID3v1 tags using C#.\nLoad the MP3 file using Metadata class. Retrieve the root package using the GetRootPackage() method. From the root, you can retrieve each of the ID3v1. The following C# source code reads some of the MP3 ID3v1 tags of the MP3 file.\nSimilarly, you can extract the ID3v2 tags. The following steps show how to retrieve the MP3 ID3v2 tags using C#.\nLoad the MP3 file using Metadata class. Get the root package. From the root, you can retrieve all the ID3v2 tags like Band, Artist, Composers, etc. For the attached pictures and their details, use the AttachedPictures properties. The following C# source code example reads some of the MP3 ID3v2 tags and attached pictures details of the MP3 file.\nRead MP3 Lyrics Tags in C# The following steps guide to read the MP3 Lyrics tags using C#.\nLoad the MP3 file using Metadata class. Retrieve the root package. From the root, you can get lyrics tags and its properties like Lyrics, artist, etc. The following C# code snippet retrieves MP3 lyrics tags and some of its properties from the MP3 file.\nRead MP3 APEv2 Tags in C# The following steps show how we can extract the MP3 APEv2 tags using C#.\nLoad the MP3 file using Metadata class. Retrive the root package using GetRootPackage() method. From the root, you can retrieve all the APEv2 tags like Album, Genre, Copyrights, Language, etc. The following C# code examples read some of the properties of MP3 APE tags of an MP3 file.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To conclude, we learned to extract metadata tags from the MP3 files using C#. We read ID3v1, ID3v2, Lyrics, and APE tags and their properties from the MP3 files. You can learn more about the API from the documentation and contact us for queries via the forum.\nSee Also Metadata Remover for Documents and Images using C# Extract RIFF INFO and Metadata of WAV files in C# Manage XMP and EXIF Data of HEIF/HEIC Images using C# Manage EXIF Data of Images in C# .NET ","permalink":"https://blog.groupdocs.com/metadata/read-mp3-tags-using-csharp/","summary":"There are different metadata standards that are used with MP3 files. Various types of data can be stored using different standards. In this article, we will discuss how to read different MP3 tags using C#. Specifically, we will learn to extract ID3v1, ID3v2, Lyrics, and APEv2 metadata tags from the mp3 files within the .NET application.","title":"Read MP3 Tags using C# - (ID3, Lyrics, APE)"},{"content":"Welcome developer! you are hopefully here to programmatically convert some of your presentation slides to image formats. This could be needed when we want to share specific slide(s) as images or you want to create thumbnails from the presentations. In this article, you will learn how to convert the PPT or PPTX presentation slides into JPG and PNG images in Java.\nThe following topics are discussed here:\nJava API for Presentation Conversion PPT/PPTX to JPG Image PPT/PPTX to PNG Image Convert to Image with Effects Java API to Convert Presentations GroupDocs.Conversion provides Java API that allows conversion of presentations to images. Today, we will use its GroupDocs.Conversion for Java to convert the presentations of PPT \u0026amp; PPTX formats to JPG and PNG images. The API further supports many other conversions word-processing documents, spreadsheets, presentations, eBooks, images, and more that are mentioned in the documentation.\nDownload or Configure You may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.10.1\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert Presentation to JPG Image in Java Let\u0026rsquo;s achieve the objective by transforming the presentation to JPG image format. The following steps guide how to convert the Powerpoint PPT/PPTX to JPG image format in Java.\nLoad the presentation using the Converter class. Prepare the Image Convert Options. Define the conversion file format as JPG. Provide the slide number to convert. Convert the presentation slide to JPG image using the convert() method. The following Java source code converts the PowerPoint presentation to JPG format.\nConvert Presentation to PNG Image in Java Similarly, you can convert to other popular image formats like PNG. Let\u0026rsquo;s convert any slide of the presentation to PNG. The following steps show how to convert the PPT/PPTX presentation slide to PNG image format in Java.\nLoad the presentation file using Converter class. Prepare the Image Convert Options. Set the conversion file format as PNG. Define the selected slides number to convert. Convert the slide to PNG image using the convert() method. The following Java source code example converts the PowerPoint presentation to PNG format.\nConvert to Image with Effects While converting the slides you can apply many variations to the output image file. You can learn more from any of the following articles:\nConvert to Image with Advanced Options in Java API documentation for Advanced Image Conversion Get a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To conclude we learned how presentation slides can be converted to JPG and PNG Images in Java. To build your conversion applications, you may learn more from the documentation and from the running examples on GitHub. Contact us for any query via the forum.\nSee Also Convert Presentations to PDF in Java Convert Images to PDF in Java Excel Spreadsheets to PDF Conversion in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-presentations-to-images-in-java/","summary":"Welcome developer! you are hopefully here to programmatically convert some of your presentation slides to image formats. This could be needed when we want to share specific slide(s) as images or you want to create thumbnails from the presentations. In this article, you will learn \u003cstrong\u003ehow to convert the PPT or PPTX presentation slides into JPG and PNG images\u003c/strong\u003e in Java.","title":"Convert Presentations to Images in Java"},{"content":"\rSynonyms are words with similar meaning, and Homophones sounds the same but are different in meanings or spellings. We learned to find synonyms in multiple documents using Java. Today, in this article, we\u0026rsquo;ll see how to search homophones within multiple documents using Java.\nThe following topics will be covered below:\nJava API - Homophone Search Find homophones in documents using Java Play with Homophone Search Result Java API for Searching Homophones GroupDocs.Search showcases the Java API GroupDocs.Search for Java that allows finding any word and its homophones within multiple files of any specific folder. It can search the content of various different formats. In addition to finding the homophones, the API supports many other searching techniques which include:\nCase-Sensitive Search Fuzzy Search Phrase Search Regular Expressions Search Synonym Search Wild Card Search You can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-search\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.8\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; PM\u0026gt; Install-Package GroupDocs.Search Find Homophones in Multiple Files in Java The following steps guide how to search homophones in multiple files of a folder in Java.\nDefine the search word query, indexing folder, and the container folder of your files. Create Index with the defined index folder. Add the document\u0026rsquo;s folder to the index. Define the SearchOptions and enable the homophoneSearch using setUseHomophoneSearch method. Perform the homophones search using search method. Use the properties of the retrived SearchResult as needed. The following Java source code finds all the homophones within files of the defined folder. Further, you can also manage your homophone dictionary.\nThe output of the above code is as follows:\nQuery: right Documents: 2 Occurrences: 17 Printing Homophone Search Results in Java You can use the homophones search results by following the steps after getting the homophones and their occurrences from each document.\nTraverse the search results. Get each FoundDocument using the getFoundDocument method. Use the properties of each FoundDocument as required. Now, traverse the fields of FoundDocument by getting FoundDocumentField. Later, from each FoundDocumentField, get all the terms and their occurrences within each document. The following Java code example prints the homophone search results along with the number of occurrences of each searched term.\nThe following is the output of the above code example.\nQuery: right Documents: 2 Total occurrences: 17 Document: C:/documents/sample.docx Occurrences: 11 Field: content Occurrences: 11 right 3 rite 4 wright 1 write 3 Document: C:/documents/sample.txt Occurrences: 6 Field: content Occurrences: 6 right 4 write 2 Search Homophones and Printing Results using Java - Complete Code The following Java code combines the above steps. Initially, it finds the homophones as per query, and then prints all the occurrences of homophones from each document within the provided folder.\nConclusion To conclude, you learned how to find the words and their homophones from multiple documents within a specified folder using Java. You can try developing your own Java application for searching homophones using GroupDocs.Search for Java.\nLearn more about the Java Search Automation API from the documentation. To experience its features, you can have a look at the available examples on the GitHub repository. Reach us for any query via the forum.\nSee Also Search Homophones in Multiple Files in C# Find Synonyms of Words using Java Build your Full Text Search Solution in Java Find and Replace Words in Documents using Java Find and Remove Watermarks from Documents in Java ","permalink":"https://blog.groupdocs.com/search/find-homophones-in-multiple-files-using-java/","summary":"Synonyms are words with similar meaning, and Homophones sounds the same but are different in meanings or spellings. We learned to find synonyms in multiple documents using Java. Today, in this article, we will see how to search homophones within multiple documents using Java.","title":"Find Homophones in Multiple Files in Java"},{"content":"Probably you want to use your presentation slides within web applications or you want to use its slides thumbnails. In such cases, you need to convert your PowerPoint presentation slides to images. In this article, you will learn how to convert the PPT or PPTX presentations into JPG and PNG image files programmatically using C#.\nThe following topics are discussed here:\n.NET API to Convert Presentations Convert PPT/PPTX to JPG Image Convert PPT/PPTX to PNG Image .NET API to Convert Presentations GroupDocs.Conversion showcases .NET API that allows conversion of presentation files to images within .NET applications. In this article, we will use its GroupDocs.Conversion for .NET to convert the PPT/PPTX presentations to images formats. Additionally, the API supports the conversion of many other file formats like word-processing documents, spreadsheets, presentations, eBooks, images, and many others that are mentioned in the documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Conversion Convert Presentation to JPG Image using C# Let\u0026rsquo;s quickly jump to the objective and transform our presentations into image formats. The following steps show how to convert the Powerpoint PPT or PPTX to JPG image format in C#.\nLoad the presentation file using Converter class. Prepare the image conversion options using ImageConvertOptions class. Define the conversion file format as JPG. Convert to image using Convert() method. The following C# source code converts the PowerPoint presentation to JPG format.\nConvert Presentation to PNG Image using C# One of the most in-use image formats is PNG. Let\u0026rsquo;s convert our slides into PNG in a similar way. The following steps guide how to convert the Powerpoint PPT or PPTX to PNG image format in C#.\nLoad the presentation PPT/PPTX file using Converter class. Prepare the Image Convert Options. Set the conversion file format as PNG. Convert the presentation to image using Convert() method. The following C# code example converts the PowerPoint presentation to PNG format.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To conclude we learned how presentations can be converted to JPG or PNG Images formats in C#. To build your own conversion application, you may learn more about the Conversion Automation .NET API using the documentation. The best way is to experience the examples that are available on GitHub. Contact us for any query via the forum.\nSee Also Convert Presentations to PDF in C# Excel Spreadsheets to PDF Conversion using C# Convert JSON to CSV and CSV to JSON using C# Merge PowerPoint PPT/PPTX \u0026amp; Slides using C# ","permalink":"https://blog.groupdocs.com/conversion/convert-presentations-to-images-using-csharp/","summary":"Probably you want to use your presentation slides within web applications or you want to use its slides thumbnails. In such cases, you need to convert your PowerPoint presentation slides to images. In this article, you will learn \u003cstrong\u003ehow to convert the PPT or PPTX presentations into JPG and PNG images\u003c/strong\u003e programmatically using C#.","title":"Convert Presentations to Images using C#"},{"content":"STL (STereoLithography) file format is vastly used for 3D CAD drawings and printing. On the other hand, many other formats are more portable than STL. Here comes the requirement to render the STL format into other formats. In this article, we will discuss how to render the STL files into PDF format using Java. In addition to this, we will convert the STL files to HTML, JPG, and PNG formats within Java application using examples.\nThe following topics are discussed below:\nSTL Viewer Java API View STL as PDF View STL as HTML, JPG, PNG Java API to View STL Files GroupDocs.Viewer showcases document viewer Java API that allows rendering the documents into PDF, HTML, and images within the Java application. In this article, we will use this API in examples to convert the STL files into different other file formats.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsArtifactRepository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifact Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-viewer\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.11.1\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; View STL File as PDF using Java The high portability of PDF format often leads to the conversion of other formats to PDF. The following steps guide how to convert the STL files into PDF format in Java.\nLoad the STL file using the Viewer class. Prepare the PDF rendering options using the PdfViewOptions class. Render the STL file as PDF using the view() method. The following Java code example renders the STL files into PDF format.\nView STL File as HTML, JPG, or PNG using Java Quite similarly, you can also convert the STL files into various other formats. The following steps help you to render the STL files into HTML, JPG, and PNG formats using Java.\nLoad the STL file using the Viewer class. Prepare the rendering options according to the intended output format: HTML rendering needs the HtmlViewOptions class. (You can use either embedded or external resources) JPG rendering uses the JpgViewOptions class. PNG rendering requires the PngViewOptions class. Render the STL file as HTML, JPG, or PNG using the view() method. Below are the Java source code examples that independently render STL files into each format using the above-mentioned respective format options.\nSTL to HTML using Java The following Java code converts the STL file into HTML format with embedded resources. Similarly, you can convert to HTML with external resources.\nSTL to JPG using Java The following Java code renders the STL file into JPG image format.\nSTL to PNG using Java The following Java code converts the STL file into PNG image format.\nGet a Free API License You can use the APIs for free by getting a temporary license.\nConclusion To sum up, we learned to render the STL files into PDF, HTML, JPG, and PNG formats using the Java examples. Now, you can try developing your own STL viewing application like the Online App of Groupdocs.Viewer.\nTo learn more about GroupDocs.Viewer for Java, visit its documentation. For queries, contact us via the forum.\nSee Also Source Code Files to PDF in Java View CAD Files using Java Word Documents as HTML Responsive Page using Java Viewing Word Documents as PDF in Java ","permalink":"https://blog.groupdocs.com/viewer/stl-file-viewer-using-java/","summary":"STL (\u003cstrong\u003eST\u003c/strong\u003eereo\u003cstrong\u003eL\u003c/strong\u003eithography) file format is vastly used for 3D CAD drawings and printing. On the other hand, there are many other formats that are more portable than STL. Here comes the requirement to render the STL format into other formats. In this article, we will discuss \u003cstrong\u003ehow to render the STL files into PDF format using Java\u003c/strong\u003e. In addition to this, we will convert the \u003cstrong\u003eSTL files to HTML, JPG, and PNG formats\u003c/strong\u003e within Java application using examples.","title":"STL File Viewer using Java"},{"content":"MP3 files could contain metadata of various standards. Sometimes you do not require certain metadata information. We can quickly remove these metadata MP3 tags programmatically. In this article, we will discuss how to remove different MP3 tags using C#. Precisely, we will learn to remove ID3v1, ID3v2, Lyrics, and APEv2 metadata tags from the mp3 files within the .NET application.\nThe following topics are covered below:\n.NET API to Remove MP3 tags Remove MP3 ID3 Tags - ID3, Lyrics, APE C# Code Example .NET API for MP3 Tags Removal GroupDocs.Metadata showcases metadata management .NET API to deal with various file formats within .NET applications. The API allows to read, update, add, clean, and totally remove the metadata for many file formats. We will use this API to remove metadata tags of MP3 files.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Metadata Remove MP3 Tags using C# - ID3v1, ID3v2, Lyrics, APE The following steps will quickly allow you to remove MP3 metadata tags from your MP3 files in C#.\nLoad the MP3 file. Get the MP3 root package. Remove the relevant MP3 Tag(s). Save the updated MP3 file. 1. Load MP3 Select the MP3 file and load it using the Metadata class.\nMetadata metadata = new Metadata(\u0026#34;path/mp3File.mp3\u0026#34;); 2. Get MP3 Root Package Get the MP3 Root Package of the MP3 file using the GetRootPackage() method.\nvar root = metadata.GetRootPackage(); 3. Remove MP3 Tags From the following ways of removing different metadata tags, you can use your relevant removal strategy.\nID3v1 To remove the ID3v1 metadata tags, set the ID3V1 property of the root package as null.\nroot.ID3V1 = null; ID3v2 To remove the ID3v2 metadata tags, nullify the ID3V2 property.\nroot.ID3V2 = null; Lyrics Remove the Lyrics tags by setting the Lyrics3V2 property to null.\nroot.Lyrics3V2 = null; APE Use the RemoveApeV2() method of the root package to eliminate APEv2 tags.\nroot.RemoveApeV2(); 4. Save the File Lastly, save the updated MP3 file using the Save() method.\nmetadata.Save(\u0026#34;path/mp3TagsRemoved.mp3\u0026#34;); Complete Code - Remove The following source code example shows how to remove relevant MP3 Tags from the MP3 file in C#.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To sum up, we learned to remove metadata tags from the MP3 files using C#. We specifically removed ID3v1, ID3v2, Lyrics, and APE tags from the MP3 files. You can learn more about the API from the documentation and contact us for queries via the forum.\nSee Also Read MP3 Tags using C# – (ID3, Lyrics, APE) Extract RIFF INFO and Metadata of WAV files in C# Manage XMP and EXIF Data of HEIF/HEIC Images using C# ","permalink":"https://blog.groupdocs.com/metadata/remove-mp3-tags-using-csharp/","summary":"\u003ca href=\"https://docs.fileformat.com/audio/mp3/\"\u003eMP3\u003c/a\u003e files could contain metadata of various standards. Sometimes you do not require certain metadata information. We can quickly remove these metadata MP3 tags programmatically. In this article, we will discuss \u003cstrong\u003ehow to remove different MP3 tags using C#\u003c/strong\u003e. Precisely, we will learn to remove ID3v1, ID3v2, Lyrics, and APEv2 metadata tags from the mp3 files within the .NET application.","title":"Remove MP3 Tags using C#"},{"content":"Words that sound the same but are different in meanings or spellings are Homophones. Whereas, the words that spell the same, but differ in meaning or pronunciation are Homographs. Homonyms can either be homophone or homograph; or both. Let\u0026rsquo;s not confuse and automate it. In this article, you\u0026rsquo;ll learn how to search homophones within multiple documents using C#.\nThe following topics will be covered below:\n.NET API - Homophone Search Find homophones in documents using C# Play with Homophone Search Result .NET API for Searching Homophones in Multiple Files GroupDocs.Search showcases the .NET API (GroupDocs.Search for .NET) that allows searching words and their homophones within multiple files of the specified folder. We will use this API in the examples of this article. It can search the content of various different formats. Along with finding the homophones, the API supports many other ways to search as per requirement. Some of the supported search techniques are as follows:\nSynonym Search Phrase Search Fuzzy Search Case-Sensitive Search Regular Expressions Search Wild Card Search You can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Search Find Homophones in Multiple Files using C# The following steps guide how we can search homophones (words with similar sound/pronunciation) in files within a folder using C#.\nDefine the search query, an indexing folder, and the folder that contain your files. Create Index with the defined index folder. Add the document\u0026rsquo;s folder to the created index. Define the SearchOptions and set the UseHomophoneSearch to true. Search all the homophones by calling Search method with the query and search options. Use the summary using the properties of the retrived SearchResult. The following C# source code finds all the homophones within all the files of a defined folder. Additionally, you can manage your homophone dictionary.\nThe output of the above code is as follows:\nQuery: **right** Documents: 2 Occurrences: 17 Printing Homophone Search Results using C# Follow the below-mentioned steps after getting all the homophones and their number of occurrences in each document to present the homophone search results.\nTraverse the homophone search results that are retrieved earlier. Get each document as FoundDocument using the GetFoundDocument() method. Use the properties of each FoundDocument as required. Now, traverse the FoundFields of FoundDocument to get FoundDocumentField. Lastly, from each FoundDocumentField, get its Terms and their occurrences within each document. The following C# source code prints the homophone search results along with the number of occurrences of each searched term.\nThe following is the output of the above code example.\nQuery: **right** Documents: 2 Total occurrences: 17 Document: C:/documents/sample.docx Occurrences: 11 Field: content Occurrences: 11 right 3 rite 4 wright 1 write 3 Document: C:/documents/sample.txt Occurrences: 6 Field: content Occurrences: 6 right 4 write 2 Search Homophones and Printing Results using C# - Complete Code The following C# code sums up the above steps, it first finds all the homophones according to the query, and then prints all the occurrences of all the homophones in each document within the provided folder.\nConclusion To sum up, you have learned how to find the words and their homophones from the multiple documents of the specified folder using C#. You can try building your own .NET application for searching homophones within multiple files using GroupDocs.Search for .NET.\nLearn more about the .NET Search Automation API from the documentation. To experience the features, you can have a look at available examples on the GitHub repository. Reach us for any query via the forum.\nSee Also Find Synonyms of Words using C# Build your Full-Text Search Solution in C# Text Indexing and Search your Directories using C# ","permalink":"https://blog.groupdocs.com/search/find-homophones-in-multiple-files-using-csharp/","summary":"Words that sound the same but are different in meanings or spellings are \u003cstrong\u003eHomophones\u003c/strong\u003e. Whereas, the words that spell the same, but differ in meaning or pronunciation are \u003cstrong\u003eHomographs\u003c/strong\u003e. \u003cstrong\u003eHomonyms\u003c/strong\u003e can either be homophone or homograph; or both. Let us not confuse and automate it. In this article, you will learn \u003cstrong\u003ehow to search homophones within multiple documents using C#\u003c/strong\u003e.","title":"Find Homophones in Multiple Files using C#"},{"content":"STL (STereoLithography) file format is used for 3D CAD drawings and 3D printing. There are several requirements when the developers are required to programmatically render STL files into various other formats. One of the reasons for conversion is better portability. In this article, you will learn how to render the STL files into PDF format using C#. Additionally, we will convert the STL files to HTML, JPG, and PNG format within .NET application using examples.\nThe following topics are discussed below:\nSTL Viewer .NET API View STL as PDF View STL as HTML, JPG, PNG .NET API to View STL Files GroupDocs.Viewer showcases document viewer .NET API that allows rendering the documents into PDF, HTML, and images within the .NET application. In this article, we will use it in examples to convert the STL files into different other file formats.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Viewer View STL File as PDF using C# It is often required to convert the stereolithography STL format to PDF format due to its high portability. The following steps show how to convert the STL files into PDF format using C#.\nLoad the STL file using the Viewer class. Prepare the PDF rendering options using the PdfViewOptions class. Use the View() method to render STL file as PDF. The following C# code example renders the STL files into PDF format.\nView STL File as HTML, JPG, or PNG using C# Similarly, you can convert the STL files into other formats according to the requirement. The following steps help you to render the STL files into various other formats using C#.\nLoad the STL file using the Viewer class. Prepare the rendering options according to the conversion format: HTML rendering needs the HtmlViewOptions class. (You can use either embedded or external resources) JPG rendering uses the JpgViewOptions class. PNG rendering requires the PngViewOptions class. Use the View() method to render STL file as HTML, JPG, or PNG. Below are the C# examples that separately render STL files into each format using the respective format options.\nSTL to HTML using C# The following C# code converts the STL file into HTML with embedded resources. Similarly, you can convert to HTML with external resources.\nSTL to JPG using C# The following C# code converts the STL file into JPG image format.\nSTL to PNG using C# The following C# code converts the STL file into PNG image format.\nGet a Free API License You can use the APIs for free by getting a temporary license.\nConclusion To conclude, we learned how to render the STL files into other formats. Specifically, we converted the STL files into PDF, HTML, JPG, and PNG formats using the C# example. You can build your own STL viewer application like Groupdocs.Viewer Online App.\nTo learn more about GroupDocs.Viewer for .NET, visit its documentation. For queries, contact us via the forum.\nSee Also Source Code to PDF in C# View CAD Documents using C# Word Documents as HTML Responsive Page using C# Viewing Word Documents as PDF using C# ","permalink":"https://blog.groupdocs.com/viewer/stl-file-viewer-using-csharp/","summary":"STL (STereoLithography) file format is used for 3D CAD drawings and 3D printing. There are several requirements when the developers are required to programmatically render STL files into various other formats. One of the reasons for conversion is better portability. In this article, you will learn how to render the STL files into PDF format using C#. Additionally, we will convert the STL files to HTML, JPG, and PNG format within .NET application using examples.","title":"STL File Viewer using C#"},{"content":"\rWatermarking is one of the ways to protect your documents from illegal use; branding your files; mentioning your documents as drafts or confidential. In order to watermark your files programmatically, this article guides you on how to add watermark to your password-protected files using C#. We will separately look into adding text and image watermarks to the protected files.\nThe following topics are discussed here:\n.NET API to Watermark Password Protected Files Add Watermark to Protected Files using C# Apply Text Watermark Apply Image Watermark .NET API to Watermark Password Protected Files GroupDocs.Watermark provides a watermarking solution and showcases .NET API that allows working with watermarks within .NET applications. I will use this API to add text and image watermarks to password-protected files.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Watermark Adding Watermark to Password-Protected Files using C# It\u0026rsquo;s quite simple; just a few lines of code allow you to put a watermark in your files. Just follow the following steps for adding either type of watermark.\nLoad the protected document/file. Apply text/image watermark. Save the watermarked file. Let\u0026rsquo;s separately see how to add text watermarks, and then image watermarks.\nAdd Text Watermark to Protected Files using C# Text watermarks are most used to put the company name within documents; mention the document as DRAFT or CONFIDENTIAL; or any other similar reasons. The following steps guide how to insert text watermark to password-protected files using C#.\nPrepare the loading option using exsiting password. Load the protected file using Watermarker class and loading option. Prepare the watermark using TextWatermark class. Set the watermark\u0026rsquo;s text, appearance, rotation, opacity, color, and other properties. Add watermark to document using Add() method. Save the watermarked file using the Save() method. The following C# code inserts a text watermark to a protected PDF document.\nAdd Image Watermark to Protected Files using C# If you want to insert your logo or some other image as a watermark, you can add it using the ImageWatermark class. The following steps allow you to add an image watermark to your password-protected documents using C#.\nPrepare the loading option using exsiting password. Load the protected file using Watermarker class and loading option. Load the watermark image file using ImageWatermark class. Set the watermark\u0026rsquo;s appearance, alignment, coordinates, rotation, opacity, and other properties. Add watermark to document using Add() method. Save the watermarked file using the Save() method. The following C# code inserts an image watermark to the protected MS Word DOCX document.\nGet a Free API License You can use the APIs for free by getting a temporary license.\nConclusion To conclude, we learned to add text watermarks, as well as image watermarks to password-protected files within the .NET applications using C#. Further, we added a few customizations to the appearance of watermarks while adding.\nSimilarly, you can apply watermarks to the selective pages of documents, chosen slides of the presentations, and specific sheets of workbooks within your documents. See the related articles for details.\nTo learn more about GroupDocs.Watermark for .NET, visit its documentation. For queries, contact us via the forum.\nRelated Articles Find and Remove Watermarks from Documents in C# Watermark Excel Sheets using C# Watermark PDF Files using C# Add Watermark to Presentation Slides using C# Add Watermark to Images using C# ","permalink":"https://blog.groupdocs.com/watermark/watermark-password-protected-documents-using-csharp/","summary":"Watermarking is one of the ways to protect your documents from illegal use; branding your files; mentioning your documents as drafts or confidential. In order to watermark your files programmatically, this article guides you on \u003cstrong\u003ehow to add watermark to your password-protected files using C#\u003c/strong\u003e. We will separately look into adding text and image watermarks to the protected files.","title":"Watermark Password Protected Documents using C#"},{"content":"\rThere are cases where you need to point out the content that has mistakes or it is no more valid. Crossing out is one of the ways to mark the invalid content within the documents. So, in order to automate the striking out within .NET applications, this article shows how to strikethrough text in documents using C#.\nThe following topics are discussed in this article.\n.NET API for Strikethrough Annotations How to Strikeout Text in Documents .NET API to Strikethrough Text GroupDocs.Annotation is a document and image annotation solution that allows automating various annotation types within multiple document formats. Therefore, I will use its .NET API in the examples of this article to strikethrough text within the documents. In addition to the strikeout annotation, there are many other supported annotation types mentioned in the documentation.\nDownload the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Annotation How to Strikethrough Text in Documents using C# Let\u0026rsquo;s quickly start to strike out the identified mistakes with the document. The following steps allow you to strikethrough the text in documents using C#.\nLoad the source document using Annotator class. Create and define the strikethrough annotation using StrikeoutAnnotation class. Set the strikeout line color. Opacity, document page number Coordinates and other properties Add the prepared strikeout annotation to the annotator using Add() method. Save the annotated document using the Save() method. The following C# code example crosses out the selected text in a PDF document.\nGet a Free API License You can use GroupDocs.Annotation for .NET for free by getting a temporary license.\nConclusion To sum up, you learned to add strikethrough annotation using C#. Using this annotation, you can programmatically strike out the text within Word, PDF, spreadsheet, presentation documents. Similarly, you can try various other annotation types according to your requirement.\nLearn more about GroupDocs.Annotation for .NET by visiting its documentation. You can build your own annotator application for the supported document formats. You can contact us for queries via the forum.\nSee Also Highlight PDF using Annotations in C# Wavy Underline in Documents using C# ","permalink":"https://blog.groupdocs.com/annotation/strikethrough-text-in-documents-using-csharp/","summary":"There are cases where you need to point out the content that has mistakes or it is no more valid. Crossed out is one of the ways to mark the invalid content within the documents. In order to automate the striking out within .NET applications, this article shows \u003cstrong\u003ehow to strikethrough text in documents using C#\u003c/strong\u003e.","title":"Strikethrough Text in Documents using C#"},{"content":"If you want to share your code snippets, you can convert them into PDF format. In order to do this, we will discuss how to convert Java, PHP, Python, C#, C++ source code to PDF format within Java application. Additionally, we will also learn to password-protect the converted PDF files.\nThe following topics are discussed below:\nSource Code Conversion Java API Java to PDF using Java Python to PDF using Java PHP to PDF - Protect the PDF file Source Code Converter Java API GroupDocs.Viewer provides Java API to render files into different formats like PDF, HTML, and image formats. I will use this API to convert source code files of different languages into PDF format.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsArtifactRepository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifact Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-viewer\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.11\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert Java Code to PDF Let\u0026rsquo;s quickly come to the objective and see the results. The following steps allow you to convert the Java source code file to PDF.\nLoad the Java file using the Viewer class. Define the output file and options using the PdfViewOptions class. Convert the loaded Java file to PDF using the appropriate view() method. The following Java code snippet converts the complete Java source code file to PDF format.\nHere is the converted PDF of the Java file using the above Java code. If you want to add security to the resultant PDF file, jump to the section below where the PHP file gets converted.\nConvert Python Code to PDF using Java Do you really think, there will be a separate code for converting the Python code to PDF and it will be somewhat different from converting a Java file? No, it\u0026rsquo;s the same, just hand over the right .py file. The following steps allow you to convert the Python code to PDF.\nLoad the Python file using the Viewer class. Set the output file path and options using the PdfViewOptions class. Convert the loaded .py file to PDF using the suitable view() method. The following Java code snippet converts the complete Python source code file into PDF format.\nConvert PHP to PDF using Java Similarly, you can also convert the PHP files. One more thing to add here; while converting your source code files, you can add security to the PDF files. Let\u0026rsquo;s protect the PHP code when it is converted to PDF format. The following steps show how to convert the PHP file to PDF.\nLoad the PHP file using the Viewer class. Define the security using Security class. Set the passwords for opening and editing the resultant PDF file. Define the output file and its options using the PdfViewOptions class. Call the view() method to render the loaded PHP file to the protected PDF. The following Java code example converts the PHP source code file to a password-protected PDF file.\nSimilarly, you can use this code for other source codes of supported programming languages like C#, C/C++, GROOVY, Ruby, and more.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To conclude, we learned to convert source code files of different programming languages to PDF format using Java. We converted the Java, Python, and PHP files into PDF format. Additionally, we learned how to password-protect the resultant PDF file. Using this API, you can start building your own source code viewer Java application.\nTo learn more about GroupDocs.Viewer, visit the documentation. For queries, contact us via the forum.\nSee Also Convert Images to PDF in Java Convert Excel Sheets to PDF in Java View Word Documents as Responsive HTML Page using Java ","permalink":"https://blog.groupdocs.com/viewer/convert-source-code-to-pdf-in-java/","summary":"If you want to share your code snippets, you can convert them into PDF format. In this article, we will discuss \u003cstrong\u003ehow to convert Java, Python, C++, PHP source code to PDF\u003c/strong\u003e format within Java application. Additionally, we will also learn to password-protect the converted PDF files.","title":"Convert Source Code to PDF in Java"},{"content":"Due to the fact that PDF is one of the most in-use formats of the digital world, it is often required to compare two versions of the same document. This article discusses, how to compare two PDF documents and highlight the differences using C#. Further, we will see how to compare password-protected PDF files, accept and reject changes, and also the comparison of more than two PDF files with C# examples.\nThe following topics are discussed here:\nPDF Comparison .NET API Compare Two PDF Documents Accept or Reject Identified Changes within PDF Documents Compare More than Two PDF Documents Compare Password Protected PDF Files .NET API to Compare PDF Files GroupDocs.Comparison for .NET is the API that allows comparison among multiple PDF documents and many other files of the same document format within the .NET applications. I will use this API in C# code examples of this article to compare PDF documents.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Comparison Compare PDF Documents using C# If you have multiple copies of a PDF document, you can compare these files to find the differences (additions, deletions). After comparing the PDF content, you can create a new document that highlights all the identified changes. The following are the steps to compare two PDF documents and highlight the differences using C#.\nLoad the first PDF document using Comparer class. Add the second file to Comparer using Add() method. Compare both the PDF files and get the changes summary by calling Compare() method. The following C# code snippet shows how to compare PDF documents and highlight the changes in the resultant document.\nAccept or Reject Identified Changes of PDF Files using C# Just like the track changes features, you can programmatically accept or reject each identified change in PDF documents. The following steps show how to compare and then accept or reject the identified changes within the PDF documents.\nLoad the source and target PDF files using Comparer class. Compare the loaded documents using Compare() method. Get the identified changes using GetChanges() method. Now traverse the changes and set the ComparisonAction. Select Accept, or Reject for each change. Call the ApplyChanges() method to get the resultant document with the accepted changes. The following code snippet compares two PDF documents and then accepts an identified change and then rejects another one using C#.\nCompare More than Two PDF Files using C# Similarly, you can compare more than two documents. The following are the steps that compare multiple PDF documents for differences and highlight the identified changes.\nLoad the first PDF file using Comparer class. Add other document(s) to Comparer using the Add() method. Compare all the PDF files using the Compare() method and get the changes \u0026amp; summary of changes. The following example shows how to compare multiple PDF files in C# and get the changes in the resultant document.\nCompare Password Protected PDF Documents using C# You can compare the password-protected files by just providing their passwords while loading these documents. The following steps show how we can compare the PDF content of password-protected documents using C#.\nPrepare the loading options for source and target documents by providing the password. Load the source document using Comparer class. Add the target document to Comparer using the prepared loading options. Get the differences summary by calling the Compare() method. The following example compares two password-protected PDF files and highlights the identified differences in a separate document using C#.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To conclude, we learned how to compare two or more PDF files using C#. Further, we highlighted the differences and programmatically accept or reject the identified changes. Lastly, we saw, how to compare password-protected PDF documents within .NET applications.\nSeveral other customizations are available to control the comparison results. You can set the comparison sensitivity, show only the summary page, ignore gaps, etc. Learn more about GroupDocs.Comparison for .NET from the documentation. You can build your own document comparison applications for various document formats. For queries, contact us via the forum.\nSee Also PDF Comparison in .NET: Inline, Side‑by‑Side, and Interleaved Modes Image Comparison using C# \u0026amp; Spot the Differences Compare Word Documents using C# Compare Documents with Java Difference Library ","permalink":"https://blog.groupdocs.com/comparison/compare-pdf-documents-using-csharp/","summary":"Due to the fact that PDF is one of the most in-use formats of the digital world, it is often required to compare two versions of the same document. This article discusses, how to compare two PDF documents and highlight the differences using C#. Further, we will see how to compare password-protected PDF files, accept and reject changes, and also the comparison of more than two PDF files with C# examples.","title":"Compare PDF Documents using C# - Highlight, Accept or Reject Changes"},{"content":"There are different security levels that you can provide to your confidential documents. You can apply watermarks, encrypt files, or you can make your documents password-protected. In this article, we will see how to programmatically add password protection to the PDF files within the Java applications. Further, we will learn to change the password and also to remove the passwords to unlock PDF files.\nThe following topics are discussed below:\nJava API for Password Protection of PDF Files Password Protect PDF Files in Java Change PDF Password in Java How to Remove PDF Password - Unlock PDF Java API to Lock and Unlock PDF Files GroupDocs.Merger for Java is the API that allows to lock and unlock documents. We will use it to add, change, and remove password security features for the PDF documents within the Java applications. Along with protecting and unprotecting documents, the API provides many more features like splitting, merging documents, and many more that are mentioned in the documentation.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-merger\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.9\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Add Password to PDF in Java - Lock PDF Let\u0026rsquo;s quickly jump to add password protection to the PDF files for security. The following steps show how to add a password to PDF documents in Java.\nDefine the password using AddPasswordOptions class. Load the PDF file using Merger class. Protect the file by adding password using addPassword() method. Save the protected file using the save() method. The following code snippet adds a password to a PDF file in Java.\nIf you try to open the password-protected PDF file, the PDF viewer will ask to enter the password.\nUpdate Existing Password of PDF Files in Java What if your secret is no more a secret? Make it secret again. Let\u0026rsquo;s change the password to a new one. The following steps change the existing password of a PDF file in Java.\nSet the loading options using the current password. Now set the update options using the new password. Load the PDF document using Merger class and the loading options. Change the existing password using updatePassword() method. Save the password protected file again with the updated password using the save() method. The code snippet changes the current password of the PDF document using Java code.\nRemove Password from PDF Files in Java - Unlock PDF If file protection is not more needed, you can remove the password. The following steps show how to remove the password of a protected PDF file in Java.\nPrepare the load options using the existing password. Load the PDF document using Merger class using load options. Remove its password using removePassword() method. Save the unlocked file using the save() method. The following is the Java code example to remove the password of a PDF file to make it unlocked.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To conclude, we discussed the password protection of PDF documents. Initially, we locked the PDF file by adding a password. Then, we changed its password. Lastly, we removed the PDF file password to keep these unlocked. Now you can think about building your own password protector \u0026amp; password remover Java application.\nTo learn more about GroupDocs.Merger for Java, visit the documentation. For queries, contact us via the forum.\nSee Also Lock PDF Files using Password to Protect Unlock PDF Files Ways to Split PDF Files in Java Watermark PDF Files in Java Password Protection for PDF files using C# ","permalink":"https://blog.groupdocs.com/merger/password-protect-pdf-files-in-java/","summary":"There are different security levels that you can provide to your confidential documents. You can apply watermarks, encrypt files, or you can make your documents password-protected. In this article, we will see \u003cstrong\u003ehow to programmatically add password protection to the PDF files within the Java applications\u003c/strong\u003e. Further, we will learn to \u003cstrong\u003echange the password\u003c/strong\u003e and also to \u003cstrong\u003eremove the passwords\u003c/strong\u003e to unlock PDF files.","title":"Password Protection of PDF Files in Java"},{"content":"\rProbably you have some content that is no more valid. Let\u0026rsquo;s cross it out. Crossing out is one of the ways, used to highlight the invalid content within the documents. In order to automate the cross-out within the applications, this article shows how to strikethrough text in documents in Java.\nThe following topics are discussed in this article.\nJava API for Strikethrough Annotations How to Strikeout Text in Documents Java API to Strikethrough Text GroupDocs.Annotation showcases Java API that supports various annotations that can be applied to multiple documents and images. We will use it in the examples of this article to cross out the selected text within the documents.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-annotation\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.7.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; How to Strikethrough Text in Documents using Java Let\u0026rsquo;s cross out the area of the document that is not valid anymore. The following steps allow you to strike through the text within documents in Java.\nLoad the source document (PDF, Word, etc) using Annotator class. Create and define the strikethrough annotation using StrikeoutAnnotation class. Set the line color for strikeout. Set opacity, document page number. Define Coordinates and other properties. Add the prepared strikeout annotation to the annotator using add() method. Finally, save the annotated document using the save() method. Similarly, you can annotate Word documents, spreadsheets, presentations, PDF documents, web pages, email messages, and many other documents.\nThe following Java code example strikes out the selected text in a PDF document.\nGet a Free API License You can use GroupDocs.Annotation for Java for free by getting a temporary license.\nConclusion To conclude, we discussed programmatically adding the cross-out annotation to documents within Java applications. Additionally, you can strike out the text within PDF files, spreadsheets, presentations, and Word documents. Likewise, you can also use other annotations as you like.\nLearn more about GroupDocs.Annotation for Java from its documentation. Try building your own annotator for the supported document formats. Feel free to contact us for queries via the forum.\nSee Also Add or Remove Annotations from PDF files using Java Highlight PDF Content in Java Strikethrough Text in Documents using C# ","permalink":"https://blog.groupdocs.com/annotation/strikethrough-text-in-documents-using-java/","summary":"Probably you have some content that is no more valid. Let’s cross it out. Crossing out is one of the ways, used to highlight the invalid content within the documents. In order to automate the cross-out within the applications, this article shows how to strikethrough text in documents in Java.","title":"Strikethrough Text in Documents using Java"},{"content":"Squiggly underlines are normally used to show inconsistencies in the document. We are quite familiar with these lines as Microsoft Word uses red squiggly underlines to indicate spelling mistakes and blue squiggly/wavy underlines for formatting issues. We can also add such underline annotations in documents programmatically. In this article, we will learn how to add wavy underlines in Word, PDF, PPT, and other documents using C#.\nThe following topics are discussed below:\n.NET API for Wavy Underline / Squiggly Annotation Add Wavy Underline to Text in Word Documents - Squiggly Annotation Add Wavy Underline to Text in PDF, PPT, and other Documents .NET API for Wavy Underline - Squiggly Annotation GroupDocs.Annotation provides the annotation solution that allows manipulation and automation of various annotation types in documents within .NET applications. We will use its GroupDocs.Annotation for .NET API to add a squiggly annotation in documents using C#.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Annotation Add Wavy Underline to Text in Word (DOC/DOCX) using C# - Squiggly Annotation The following step shows how to insert a wavy underline in a Word document using C#.\nLoad the Word (DOC, DOCX) using the Annotator class. Create the wavy underline using the SquigglyAnnotation class. Personalize the squiggly underline by setting its color, opacity, coordinates, page number, etc. Add the squiggly annotation to the annotator. Save the updated Word file using Save() method. The following C# code example adds the wavy underline to the selected text of the Word document.\nYou can add any other annotation type from various AnnotationModels.\nAdd Wavy Underline to Text in PDF, PPT, and Other Documents using C# Similarly, you can add the squiggly underline to any document using the same C# code (Check the documentation if your intended document file format is supported by the API).\nThe following are the steps for how to insert a wavy underline in a PDF document using C#.\nLoad the PDF document using the Annotator class. Create the squiggly underline using the SquigglyAnnotation class. Customize the color, opacity, coordinates, page number, etc for the squiggly/wavy underline. Add the squiggly annotation to the annotator using Add() method. Save the updated PDF file using Save() method. The following C# code example adds the wavy underline to the selected text of the PDF file.\nConclusion To sum up, we discussed how to add wavy/squiggly underline in Word documents using C#. Additionally, the same squiggly annotation can be added to other documents like PDF, PPT, and more. Squiggly annotation is a new addition to many other annotation types offered by the API.\nLearn more about GroupDocs.Annotation for .NET. Visit its documentation to start building your own document annotation applications for various supported document formats. For queries, contact us via the forum.\nSee Also Add or Remove Annotations or Markup Word files using C# Add or Remove Annotations from PDF files using Java ","permalink":"https://blog.groupdocs.com/annotation/add-wavy-underline-in-documents-using-csharp/","summary":"Squiggly underlines are normally used to show inconsistencies in the document. We are quite familiar with these lines as Microsoft Word uses red squiggly underlines to indicate spelling mistakes and blue squiggly/wavy underlines for formatting issues. We can also add such underline annotations in documents programmatically. In this article, we will learn \u003cstrong\u003ehow to add wavy underlines in Word, PDF, PPT, and other documents using C#\u003c/strong\u003e.","title":"Add Wavy Underline in Word, PDF \u0026 Other Documents using C#"},{"content":"\rYou sometimes need to convert the source code files to other formats. It may be for sharing or analysis purposes. This article discusses how to convert Python, PHP, Java, C#, C/C++ source code files to PDF format within the .NET applications. Furthermore, we will programmatically password-protect the converted files.\nSource Code Conversion .NET API Java to PDF using C# Python to PDF using C# PHP to PDF - Protect the PDF file .NET API for Source Code Conversion GroupDocs.Viewer for .NET is the document viewer API and allows rendering the documents into PDF, HTML, and images with the .NET application. Today, we will use this API in examples to convert the source code files of different languages into PDF format.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Viewer Convert Java Code to PDF using C# No need to involve in complex configurations, just load the Java file, and transform it into PDF. The following steps guide you on how to convert the Java source code file to PDF using C#.\nLoad the Java file using the Viewer class. Set the output file and its options using the PdfViewOptions class. Convert the file to PDF using the appropriate View() method. The following C# example converts the complete Java source code file to PDF format.\nHere is the converted PDF of the Java file with highlighting using the above C# code. You can also add security to the converted PDF file. To learn about securing the files, jump below where the PHP files are converted.\nConvert Python Code to PDF using C# Why change the code if your source file format is changed? Let the API bear this pain. Just provide the .py file to the right method. The following steps show how to convert the Python code to PDF using C#.\nLoad the Python source file using the Viewer class. Define the output file path and configurations using the PdfViewOptions class. Convert the .py file to PDF using the right View() method. The following C# code example converts the Python source code file into PDF format.\nConvert PHP to PDF using C# Similarly, you can also convert the PHP files. Additionally, while converting your source code files, you can add security to the PDF files. Let\u0026rsquo;s secure the code when it is converted. The following steps show the conversion of PHP files to PDF format with security in C#.\nLoad the PHP file using the Viewer class. Define the intended security of the PDF file using the Security class. Set the passwords for opening and editing the resultant file. Define the output file using the PdfViewOptions class. Call the View() method to render the loaded PHP file into the protected PDF. The following C# code snippet converts the PHP source code file into a password-protected PDF file.\nLikewise, you can use this code for the source codes files of other supported programming languages like C#, C/C++, JS, Ruby, and more.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To sum up, we learned to convert the source code files of various programming languages into PDF format using C#. The examples have shown the conversion of Java, Python, and PHP files to PDF format. Furthermore, we learned to secure the resultant PDF file. Using this API, you can start building your own source code viewer .NET application.\nLearn more about GroupDocs.Viewer from the documentation to build your own source code viewer application. For queries, contact us via the forum.\nSee Also Images to PDF Conversion in C# Emails Files to PDF Conversion in C# Excel Spreadsheets to PDF Conversion using C# View Word Documents as HTML Responsive Page using C# ","permalink":"https://blog.groupdocs.com/viewer/convert-source-code-to-pdf-in-csharp/","summary":"You sometimes need to convert the source code files to other formats. It may be for sharing or analysis purposes. This article discusses \u003cstrong\u003ehow to convert Python, PHP, Java, C#, C/C++ source code files to PDF\u003c/strong\u003e format within the .NET applications. Furthermore, we will programmatically password-protect the converted files.","title":"Convert Source Code to PDF in C#"},{"content":"Word processing documents are the most common way to draft contracts, agreements, papers, and many other official documents. If you need to compare and merge two Word documents, just like the track changes option of Microsoft Word, we can programmatically do it within our .NET applications. In this article, we will discuss how to compare two Word documents and highlight the identified differences using C#. Additionally, we will look at how to compare password-protected documents, accept and reject changes, and compare more than two documents with C# examples.\nThe following topics are discussed here:\nDocument Comparison .NET API Compare Two Word Documents Accept or Reject Identified Changes in Word Document Compare More than Two Word Documents Compare Password Protected Word Files .NET API to Compare Word Documents GroupDocs.Comparison provides a .NET API that allows comparing and then merging various documents of multiple file-formats within the .NET application. I will use its .NET API i.e. GroupDocs.Comparison for .NET to compare Word documents.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Comparison Compare Word Documents using C# If you have two versions of a document, you can compare the documents to find their differences (additions, deletions) and create a new document that shows all the changes. The following are the steps to compare any two Word documents and highlight the differences.\nLoad the first Word document using Comparer class. Add the second file to Comparer using Add() method. Compare and get the changes summary by calling Compare() method. The following C# code shows how to compare Word documents and get the changes in the resultant document.\nAccept or Reject Identified Changes of Word Documents using C# Similar to the track changes option of MS Word, you can accept or reject each identified change. The following are the steps to compare and then accept or reject the identified changes within the Word documents.\nLoad the source document and add target Word document(s) using Comparer class. Make the comparison of loaded documents using Compare() method. Get the identified changes using GetChanges() method. Now you can traverse the changes and set ComparisonAction of each change. For each change you can select Accept, or Reject. When done with changes, call the ApplyChanges() method to get the resultant document having the applied changes. The following C# source code compares two Word documents and then accepts an identified change and then rejects another one.\nCompare More than Two Documents using C# Similarly, more than two documents can be compared in one go. The following are the steps to compare multiple Word documents for differences and highlight the identified changes.\nLoad the first Word document using Comparer class. Keep adding the other document(s) to Comparer using the Add() method. Call the Compare() method to get the changes \u0026amp; summary of changes. The following C# code shows how to compare more than two Word documents and get the changes in the resultant document.\nCompare Password Protected Word Documents using C# If your documents are password-protected, just provide their password while loading the documents. The following steps show how we can compare the content of password-protected documents using C#.\nPrepare the loading options for source and target documents by providing the password. Load the source document using Comparer class. Add the target document to Comparer using the prepared loading options. Get the differences summary by calling the Compare() method. The following C# code example compares two password-protected Word files and generates the resultant document that highlights the differences.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To conclude, we learned to compare two or more Word documents using C#. Further, after highlighting the differences, we learned to programmatically accept and reject the identified changes. In the end, we also discussed how could we compare the password-protected Word documents within .NET applications.\nThere are many other customizations to control the comparison results, like setting the comparison sensitivity, showing only the summary page, ignoring gaps, and much more. Learn more about GroupDocs.Comparison for .NET. Visit its documentation to start building your own document comparison applications for various supported document formats. For queries, contact us via the forum.\nSee Also Word Comparison in .NET: Revision Track vs Highlight Modes Compare Image using C# to Spot the Differences Compare PDF Documents using C# – Highlight, Accept or Reject Changes How to Compare Text, Word, and PDF Files in Java ","permalink":"https://blog.groupdocs.com/comparison/compare-word-documents-using-csharp/","summary":"Word processing documents are the most common way to draft contracts, agreements, papers, and many other official documents. If you need to compare and merge two Word documents, just like the track changes option of Microsoft Word, we can programmatically do it within our .NET applications. In this article, we will discuss \u003cstrong\u003ehow to compare two Word documents and highlight the identified differences using C#\u003c/strong\u003e. Additionally, we will look at how to compare password-protected documents, \u003cstrong\u003eaccept and reject changes\u003c/strong\u003e, and compare more than two documents with C# examples.","title":"Compare Word Documents using C#"},{"content":"Let\u0026rsquo;s discuss how we can restrict access to Word documents by making them password protected. We have already learned to lock and unlock PDF, and PowerPoint files. In this article, we will see how to password protect a Word document using C#. Further, we will learn to remove the password to unlock Word documents, and lastly, how to change the existing password of DOC \u0026amp; DOCX files within the .NET applications.\nThe following topics are discussed below:\n.NET API to Password Protect Word Documents Add Password to Word Document Change Password of Word Document How to Remove Password from Word Document .NET API to Password Protect Word Documents GroupDocs.Merger provides the .NET API that allows locking and unlocking of Word documents within .NET applications. We will use GroupDocs.Merger for .NET to add, change, and remove password protection. In addition to protecting and unprotecting Word documents, there is much more that can be done with Word documents using the API. Documentation is available that explains detailed features, supported file formats, and much more.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Merger Password Protect Word Document in C# Let\u0026rsquo;s discuss how to add a password to word documents and make them password protected. The following steps show how to lock a word document (DOC/DOCX) with a password using C#.\nSet the password options using the AddPasswordOptions. Load the document using the Merger class. Add the password to lock the loaded Word document using AddPassword method. Save the password protected file using the Save method. The following code snippet shows how to password protect a Word document using C#.\nNow, when you try to open the password-protected document, the document viewer \u0026amp; editor will ask for the password to open the file.\nChange Existing Password of Word Document in C# Your old password might have been too common that has been guessed. Let\u0026rsquo;s change it and be more careful next time. The following steps guide how to change the existing password of Word document using C#.\nPrepare the LoadOptions using the current password. Define the UpdatePasswordOptions using the new password. Load the DOC/DOCX file using the Merger class. Change the password using the UpdatePassword method. Save the protected document having new password using Save method. Here is the C# code snippet that changes the existing password of a DOCX file.\nRemove Password from Word Document in C# Now let\u0026rsquo;s remove the protection from the documents that are no more confidential. First, open the Word document and then remove the password to make it unlocked. The following steps show how to unlock the Word document by removing the password using C#.\nUse the document\u0026rsquo;s existing password to prepare LoadOptions. Load the Word document using Merger class. Remove its password using RemovePassword method. Save the unlocked file in DOC/DOCX format by calling the Save method. The following code sample unlocks the Word document of DOCX format by removing its password using C#\nConclusion Let\u0026rsquo;s summarize what we learned today. Using a simple Word document, first, we made it password protected using C#. Next, we learned to change the existing password of a Word document. Lastly, we learned how to remove the password from the Word file to make it unlocked within any .NET application.\nTo learn more about GroupDocs.Merger for .NET, visit its documentation to start building your own document protector or password remover applications for various supported document formats. For queries, contact us via the forum.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nSee Also Password Protect Word Documents Online Remove Password from Word Documents Add \u0026amp; Remove Password Protection from PDF Files Protect and Un-Protect PowerPoint Files View Word Documents as HTML Responsive Page Merge Word, PDF, Excel, PowerPoint Files Insert OLE Objects in Word, Excel, PowerPoint Files ","permalink":"https://blog.groupdocs.com/merger/password-protect-word-documents-using-csharp/","summary":"Let us discuss how we can restrict the access to the Word documents by making them password protected. We have already learned to lock and unlock PDF, and PowerPoint files. In this article, we will see \u003cstrong\u003ehow to password protect a Word document using C#\u003c/strong\u003e. Further, we will learn to \u003cstrong\u003eremove the password to unlock Word documents\u003c/strong\u003e, and lastly, \u003cstrong\u003ehow to change the existing password of DOC \u0026amp; DOCX files\u003c/strong\u003e within the .NET applications.","title":"How to Password Protect and Remove Protection from Word Documents using C#"},{"content":"\rWatermarks can be used to protect the content and claim ownership of your documents. Similarly, these can also be used for branding or labelling your documents as drafts. This article discusses how to add watermarks to the password-protected files in Java. We will add text, as well as image watermarks to the protected files using code examples.\nThe following topics are discussed here:\nJava API to Watermark Password Protected Files Add Watermark to Protected Files using Java Insert Text Watermark Insert Image Watermark Java API to Watermark Password Protected Files GroupDocs.Watermark showcases watermarking Java API that allows working with watermarks within your applications. We will use this API to insert text and image watermarks to the password-protected documents.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-watermark\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Adding Watermark to Password-Protected Files using Java Just a few lines of code allow you to customize the watermark as needed and apply it to your files. Follow the following steps for adding both types of watermark.\nLoad the protected file. Apply watermark. Save the watermarked file. Now, we will add text watermarks, and then image watermarks, one by one.\nAdd Text Watermark to Protected Files in Java Text watermarks can be used to mention the documents as DRAFT or CONFIDENTIAL; or for similar purposes. The following steps show how to add text watermark to password-protected documents in Java.\nPrepare the loading option using the exsiting password. Use the loading options to load the protected file with Watermarker class. Define the watermark using TextWatermark class. Set the text, appearance, rotation, opacity, color, and other properties of watermark. Add the watermark to the document using the add() method. Save the watermarked file using the save() method. The following Java code snippet inserts a text watermark to a protected PDF document.\nAdd Image Watermark to Protected Files in Java You can also insert any image or logo as a watermark. To add the image, use the ImageWatermark class. The following steps allow adding an image watermark to your password-protected documents in Java.\nPrepare the loading option for the protected file using the exsiting password. Load the file using the Watermarker class and loading option. Load the image file using ImageWatermark class. Set the watermark\u0026rsquo;s appearance, alignment, coordinates, rotation, opacity, and other properties. Now, add watermark to document using add() method. Finally, save the watermarked file using the save() method. The following Java code example inserts an image watermark to the protected PDF file.\nGet a Free API License You can use the APIs for free by getting a temporary license.\nConclusion To sum up, we discussed adding text watermarks, as well as image watermarks to password-protected files within the Java applications. Further, we customized the appearance of watermarks when these are applied to the documents.\nIn a similar vein, you can insert watermarks to the specific pages, slides, and sheets of documents, presentations, and workbooks respectively.\nSee the related articles for details and learn more from its documentation. For queries, contact us via the forum.\nRelated Articles Find and Remove Watermarks from Documents in Java Add Watermark to Images in Java Password Protect Presentations in Java Add Watermark to Presentation Slides using Java Watermark PDF Files in Java ","permalink":"https://blog.groupdocs.com/watermark/watermark-password-protected-documents-in-java/","summary":"Watermarks can be used to protect the content and claim ownership of your documents. Similarly, these can also be used for branding or labelling your documents as drafts. This article discusses \u003cstrong\u003ehow to add watermarks to the password-protected files\u003c/strong\u003e in Java.","title":"Watermark Password Protected Documents in Java"},{"content":"Today, we will provide password protection to our presentation files programmatically. Previously, we learned something similar while discussing password protection of PDF files in C#. In this article, we will see how to lock PowerPoint presentation files with password protection in C#. Further, we will learn to unlock these by removing the password and also how to change the existing password of PPT \u0026amp; PPTX presentation files.\nThe following topics are discussed below:\n.NET API to Protect PowerPoint PPT/PPTX with Password Lock PowerPoint Files by adding Password Change PPT/PPTX Password in C# How to Remove PowerPoint Presentation Password .NET API to Lock and Unlock PowerPoint Files To work with the protection of presentation files, we will use GroupDocs.Merger for .NET. This API allows adding, changing, and removing password security features for the presentation and other documents within the .NET applications. Along with the locking and unlocking PPT files, the API provides many more features including merging and splitting presentations that are mentioned in the documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Merger Add Password to PowerPoint Files in C# - Lock PPT/PPTX We can programmatically lock any presentation file by adding password protection to it. The following steps show how to add a password to a PowerPoint presentation (PPT/PPTX) using C#.\nDefine the password using the AddPasswordOptions. Load the PowerPoint file using the Merger class. Apply protection by adding password using AddPassword method. Save the protected presentation file using the Save method. The following C# code snippet locks the PPT by adding a password for limited access.\nHere is the output of the above code. When you try to open the file, the editor or viewer will ask for the password to open the presentation.\nUpdate Existing Password of PPT/PPTX Files in C# Looks like there was a sneak peek at your password. Let\u0026rsquo;s change it. The following steps allow you to change the existing presentation file password using C#.\nPrepare the loading options using the current password. Prepare the update options using the new password. Load the presentation using Merger class. Change the password using the UpdatePassword method. Call Save method to save the locked file having new password. Here is the code snippet that changes the existing password of a PowerPoint PPT/PPTX presentation.\nRemove PowerPoint File Password in C# - Unlock PPT/PPTX Now let\u0026rsquo;s remove the cover and let everyone benefit from your presentation. First, open the file and then remove its password for easy access. The following steps show how to unlock the PPT file by removing its password using C#.\nUse file\u0026rsquo;s password to prepare the loading options. Load the PowerPoint presentation document using Merger class. Remove the password using RemovePassword method. Save the unlocked file using the Save method. The following C# code sample unlocks the PowerPoint presentation file by removing its password.\nConclusion Let\u0026rsquo;s conclude with an overview of what we learned today. We used a simple PowerPoint presentation (PPTX) and first, we locked it just by adding a password. Next, we changed the existing password of the presentation file. Lastly, we learned how to remove the password of the PowerPoint presentations.\nTo learn more about GroupDocs.Merger for .NET, visit the documentation and start building your own application to lock and unlock presentation files. For queries, contact us via the forum.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nSee Also Password Protect PowerPoint Presentations Online Remove Password from Protected PowerPoint Presentations Online Lock \u0026amp; Unlock PDF Files with Password using C# Convert PPT, PPTX Presentations to PDF in C# Watermark PDF Files using C# How to Split PDF Files using C# ","permalink":"https://blog.groupdocs.com/merger/lock-unlock-ppt-pptx-files-with-password-using-csharp/","summary":"Today, we will provide password protection to our presentation files programmatically. In this article, we will see \u003cstrong\u003ehow to lock \u003cstrong\u003ePowerPoint presentation files\u003c/strong\u003e with password protection in C#\u003c/strong\u003e. Further, we will learn to unlock these by \u003cstrong\u003eremoving the password\u003c/strong\u003e and also \u003cstrong\u003ehow to change the existing password\u003c/strong\u003e of PPT \u0026amp; PPTX presentation files.","title":"Lock and Unlock PowerPoint Files with Password using C#"},{"content":"\rWhen we want to share the data in worksheets that do not require editing, we often convert such Excel workbooks or specific sheets to PDF format. In this article, we will learn 4 different ways of converting Excel spreadsheets into PDF format in Java using the document conversion API.\nEach conversion approach can be adopted with a little change in the code while loading the spreadsheets or with some tweaks in conversion options of the PDF format. Some of the possible ways to convert the spreadsheets in the article are as follows.\nJava API for Excel Files to PDF Conversion Convert All Sheets to PDF Continuous Number of Excel Sheets to PDF Conversion Specific List of Excel Sheets to PDF Conversion Convert Selected Cell Range from Excel Sheet to PDF Java API for Converting Excel Files to PDF GroupDocs.Conversion provides Java API that allows the many Excel file-formats including XLS, XLSX to convert into PDF format. In this article, we will use its GroupDocs.Conversion for Java. In addition to spreadsheets, the API supports the conversion of word-processing documents, presentations, eBooks, images, etc that are mentioned in the documentation.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.10\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert All Sheets of Excel Files to PDF - Java The simplest way is to convert all the sheets to PDF format. The following steps convert the complete workbook (all sheets) to PDF format in Java.\nLoad the Excel (XLS, XLSX) workbook using Converter. Convert it to PDF format using any of the overloaded convert() methods using PdfConvertOptions. The following are the 2 lines of Java source code that convert the complete Excel workbook to PDF.\nSuccessive Excel Sheets Conversion to PDF - Java If you are interested in extracting the subset of spreadsheets in sequence, you can easily do it by providing starting sheet number and the number of successive sheets. The following are the steps to convert any sub-sequence of the Excel workbook sheet(s) into PDF format in Java.\nLoad the spreadsheet using the Converter. Define the PDF conversion options using PdfConvertOptions. Set the starting sheet number and the count of subsequent sheets. Convert the selected sheets into PDF according the settings using convert() method. The following is the Java code snippet that converts the first two sheets to PDF. (Sheet numbers 1 and 2)\nSpecific Excel Sheets to PDF Conversion - Java If you are thinking to convert random sheets (like sheet numbers 1, 2, 4, 7, \u0026hellip;), you can simply provide the exact sheet numbers as a list while converting. The following are the steps for converting any specific list of sheet numbers into PDF format in Java.\nLoad the Excel file using the Converter. Provide the exact sheets numbers as a list using PdfConvertOptions. Convert the listed sheets into PDF format using the convert() method. The following code snippet converts the sheet numbers 1 and 3 to PDF format.\nConvert the Cell Range of Excel Sheet to PDF - Java Here is the unusual way to convert any segment of the spreadsheet(s). We can convert any cell ranges of Excel sheet(s) in almost a similar way as other approaches discussed above. The following are the steps for converting the cell range of workbook sheet(s) into PDF format in Java.\nDefine the cell range of the sheets. Load the spreadsheet file. Select the sheets either by providing successive sheets range or the exact sheet numbers. Convert the sheets into PDF format according to settings. The following code converts the cell range (A1:C20) of sheet number 1 to PDF format in Java.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion Let\u0026rsquo;s sum up what we learned today. We learned four different ways for converting Excel spreadsheets into PDF format in Java using GroupDocs.Conversion. Initially, we converted the complete workbook into PDF format, then the consecutive sheets. Next, multiple sheets were changed to PDF by listing their exact sheet numbers. Finally, we obtained the PDF file from the selected cell range of the selected sheet(s).\nLearn more about GroupDocs.Conversion APIs from the documentation. For queries, contact us via the forum.\nSee Also Convert CSV and Excel (XLS XLSX) in Java Convert Documents to Excel (XLS, XLSX) in Java Watermark Excel Sheets in Java Watermark PDF Files in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-excel-spreadsheets-to-pdf-in-java/","summary":"When we want to share the data in worksheets that do not require editing, we often convert such Excel workbooks or specific sheets to PDF format. In this article, we will learn \u003cstrong\u003e4 different ways of converting Excel spreadsheets into PDF format in Java\u003c/strong\u003e using the document conversion API.","title":"Convert Excel Spreadsheets to PDF in Java"},{"content":"Let\u0026rsquo;s learn to secure our documents from unauthorized access. Previously we discussed adding text and image watermarks to the documents to avoid any illegal use. In this article, we will see how to add password protection to PDF documents to get them locked using C#. Additionally, we will change the existing password and also learn to remove the password to make the PDF unlocked.\nThe following topics are discussed below:\n.NET API for Password Protection of PDF Files Lock PDF Files by Adding Password Change PDF Password in C# How to Remove PDF Password - Unlock PDF .NET API to Lock and Unlock PDF Files To lock and unlock documents, we will use GroupDocs.Merger for .NET. This API enables adding, changing, and removing password security features for the documents within the .NET applications. Along with protecting and unprotecting PDF documents, the API provides many more features like merging and splitting that are mentioned in the documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Merger Add Password to PDF in C# - Lock PDF Let\u0026rsquo;s start by adding protection to the file by locking it with the password. The following steps show how to add password security to the PDF documents using C#.\nDefine the password using the AddPasswordOptions class. Load the PDF file using Merger class. Lock the file by adding password using AddPassword method. Save the protected file using the Save method. The following C# code adds the password to the PDF file for security.\nHere is the output of the above code. When you try to open the PDF file, the editor or viewer will ask for the password to prove your authority.\nUpdate Existing Password of PDF Files in C# Oops! your password is probably exposed. Let\u0026rsquo;s quickly change it programmatically with the new and difficult one. The following steps allow you to change the current password of your PDF files within your .NET application in C#.\nPrepare the loading options using the current password. Prepare the update options using the new password. Load the PDF document using Merger class and the loading options. Change the existing password using UpdatePassword method. Save the locked file having changed password using the Save method. Here is the code snippet that changes the current password of the PDF document.\nRemove PDF Files\u0026rsquo; Password in C# - Unlock PDF Now, I think you do not need security, that\u0026rsquo;s why you want to remove the password. Let\u0026rsquo;s open the file first and then remove its password so that everyone can access it easily. The following steps show how to unlock the PDF file by removing its password using C#.\nPrepare the loading options using the file\u0026rsquo;s password. Load the PDF document using Merger class and the load options. Remove the existing password using RemovePassword method. Save the unlocked file using the Save method. The following C# code snippet unlocks the PDF file by removing its existing password, hence anyone can access it without authorization.\nConclusion Let\u0026rsquo;s sum up what we learned today. We started with the simple PDF document and added password protection. Then we changed the existing password of that PDF file. In the end, we learned how to remove the password of our PDF documents. Now you can jump to build your own password protector or password remover application using the .NET API.\nTo learn more about GroupDocs.Merger for .NET, visit the documentation. For queries, contact us via the forum.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nSee Also Password Protect PDF Files Online Remove Password from Protect PDF Files Online Watermark PDF Files using C# How to Split PDF Files using C# Add or Remove Password Protection of PDF Files in Java ","permalink":"https://blog.groupdocs.com/merger/lock-unlock-pdf-files-with-password-using-csharp/","summary":"Let us learn to secure our documents from unauthorized access. Previously we discussed adding text and image watermarks to the documents to avoid and illegal use. In this article, we will see how to add password protection to PDF documents to get them locked using C#. Additionally, we will change the existing password and also learn to remove the password to make the PDF unlocked.","title":"Lock and Unlock PDF Files with Password using C#"},{"content":"Excel (XLS, XLSX) and PDF files are among those document formats that are widely used in almost every business. For such commonly used files, there are many scenarios in which we need to convert one file into another format. In this article, we will learn different ways for how to convert Excel spreadsheets into PDF format using C# with .NET applications.\n.NET API for Excel Files to PDF Conversion Excel Sheets to PDF Conversion Sequence of Excel Sheets to PDF Conversion Specific List of Excel Sheets to PDF Conversion Convert Selected Cell Range from Excel Sheet to PDF .NET API for Excel Files to PDF Conversion GroupDocs.Conversion provides APIs that allow the Excel files converted to PDF format within .NET applications. In this article, we will use GroupDocs.Conversion for .NET to convert the Excel XLS/XLSX files data into PDF format. Additionally, the API supports the conversion of many other file formats like word-processing documents, spreadsheets, presentations, eBooks, images, etc that are mentioned in the documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Conversion Convert Excel Sheets to PDF - C# The following steps convert the complete workbook (all sheets) to PDF format using C#.\nPrepare the loading options using the SpreadsheetLoadOptions. Load the Excel spreadsheet using Converter. Call the Convert() method using PdfConvertOptions to convert all the sheets and save to PDF format. The following is the C# source code for how to convert the complete Excel workbook to PDF within the .NET application.\nSequence of Excel Sheets Conversion to PDF - C# It is not always needed to transform the complete workbook. We can also convert any consecutive number of sheets. The following are the steps to convert any sub-sequence of the Excel workbook sheet(s) into PDF format using C#.\nLoad the Excel file using the Converter. Define the conversion options using PdfConvertOptions. Set the starting sheet number and number of further sheets in sequence. Call the Convert() method with the conversion options to get the subset of sheets in sequence saved in PDF format. The following is the C# source code that converts the sheets in sequence, i.e. sheet numbers 2,3, and 4 to PDF within the .NET application.\nSpecific Excel Sheets to PDF Conversion - C# We can simply provide the list of the sheet numbers for the conversion of specific sheets. The following are the steps for how to convert any specific list of sheet numbers into PDF format using C#.\nLoad the spreadsheet file using the Converter. Select the sheets numbers and set as list using PdfConvertOptions. Call the Convert() method with the conversion options to convert the listed sheets into PDF format. The following C# code snippet converts sheet numbers 1, 3, and 5 to PDF within the .NET application.\nConvert the Selected Cell Range of Excel Sheet to PDF - C# Last but not least, in fact, the most tricky one, we can also convert any cell range of Excel sheet(s) in almost a similar way as other approaches. The following are the steps to convert any cell range of workbook sheet(s) into PDF format using C#.\nFirstly, define the cell range for conversion using the SpreadsheetLoadOptions. Load the spreadsheet file using the Converter. Select the sheets either by exact sheet numbers or sub-sequence using PdfConvertOptions. Call the Convert() method with the conversion options to convert the selected cell range of selected sheets into PDF format. The following code converts the cell range (A1:C20) of sheet numbers 2, 3, and 4 to PDF format using C#.\nConclusion To conclude, we learned different ways to convert Excel spreadsheets into PDF format using C#. Firstly, we looked to convert the complete workbook into PDF format, then we converted the sub-sequence of sheets. Later, we learned how to convert any sheet(s) by providing the list of exact sheet numbers, and lastly, we obtained the PDF file from the selected cell range of selected sheet(s).\nLearn more about GroupDocs.Conversion APIs from the documentation. For queries, contact us via the forum.\nSee Also Convert Excel Sheet to CSV and vice versa in C# Watermark Excel Sheets using C# Watermark PDF Files using C# Convert Documents to Excel (XLS, XLSX) in C# ","permalink":"https://blog.groupdocs.com/conversion/convert-excel-spreadsheets-to-pdf-using-csharp/","summary":"Excel (XLS, XLSX) and PDF files are among those document formats that are widely used in almost every business. For such commonly used files there are many scenarios in which we need to convert one file into another format. In this article, we will learn different ways for how to convert Excel spreadsheets into PDF format using C# with .NET applications.","title":"Convert Excel Spreadsheets to PDF using C#"},{"content":"\rWatermarks can be added to the documents either to protect the document from piracy or to show any symbol or message. In other posts, we discussed ways to watermark different documents, images, and presentations. In this article, you will learn how to add watermark to Excel workbooks in different ways in Java. We will be applying watermarks separately using each approach.\nThe following topics are covered below:\nWatermarking API for Java Add Text Watermark to Excel Sheets Apply Watermark to Specific Excel Sheet Add Watermark to Excel Sheet as Background Java API to Watermark Excel Sheets GroupDocs.Watermark for Java is the API to automate the watermarks for documents, presentations, images, and many other file formats. The complete list of supported document formats is available in the documentation.\nYou can download the JAR file from the downloads section or use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-watermark\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Watermark Excel Sheets using Java The watermarking API provides customization while inserting the watermark to the spreadsheets as a text. The following are the steps to add watermarks to Excel workbooks in Java.\nLoad the source spreadsheet using Watermarker and the SpreadsheetLoadOptions. Define the watermark text and appearance properties using TextWatermark. Add the defined watermark to the Excel worksheet using add() mehtod. Save the resultant spreadsheet with watermark using the save() method. The following Java code sample adds the text watermark to all the sheets of the Excel workbook with rotation and opacity and the set alignment.\nWatermark Specific Excel Sheet using Java Likewise, you can also insert watermarks into any single sheet of the workbook. The following steps guide on how to apply text watermark to the specific sheet of the Excel workbook in Java.\nLoad the spreadsheet using the Watermarker. Set the watermark appearance and text using the TextWatermark. Set the worksheet index so that watermark is applied to the mentioned sheet only. Add the text watermark to the Excel worksheet using add() mehtod with watermarking options. Save the output spreadsheet having the watermark using the save() method. The following Java code snippet applies the text watermark to only the mentioned sheet of the Excel workbook.\nWatermark Excel Sheets as Background using Java Likewise, we can also add watermarks as the background of the spreadsheet. There will be some modification to the above approach to applying watermarks. The following are the steps that insert background text watermark to Excel spreadsheet in Java.\nLoad the spreadsheet using Watermarker. Prepare the watermark text and its appearance using TextWatermark. Set the watermark settings to make it as background using watermarking options by getting content and setting dimensions. Add the watermark to the workbook sheets using the add() mehtod. Lastly, save the watermarked spreadsheet using the save() method. The following code sample can be used to add a background text watermark to an Excel spreadsheet in Java.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion In this article, we discussed that how we can add watermarks to the excel sheets in different ways within the Java application. We learned to insert text watermark to all the sheets of the Excel workbook, and then we applied the watermark to the specific sheet only. Later, we applied the watermark as a background. You can now use this feature and build your own application to watermark spreadsheets.\nLearn more about the API from the documentation. For queries, contact us via the forum.\nSee Also Watermark Excel Sheets using C# Watermark PDF Files in Java Add Watermark to Images in Java Watermark Presentation Slides using Java Find and Remove Watermarks from Documents in Java ","permalink":"https://blog.groupdocs.com/watermark/watermark-excel-sheets-in-java/","summary":"Watermarks can be added to the documents either to protect the document from piracy, or to show any sumbol or message. In other posts, we discussed ways to watermark different [documents][1], [images][2], and [presentations][3]. In this article, you will learn \u003cstrong\u003ehow to add watermark to Excel workbooks in different ways in Java\u003c/strong\u003e. We will be applyling watermarks separately using each approach.","title":"Watermark Excel Sheets in Java"},{"content":"XML is commonly used to store and transmit data within and between applications. It is often a requirement where developers need to edit the XML file when it is received or before transmitting. In this article, we will discuss how to edit the XML file data in Java.\nXML Editing Java API How to Edit XML Files Java API to Edit XML Files GroupDocs.Editor for Java API allows you to edit documents of various file formats. In this article, we will use it to edit XML files. You can use the API along with the external editors for visual editing.\nDownload the JAR file from the downloads section, or just use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-editor\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.11\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; How to Edit XML Files in Java Let\u0026rsquo;s jump to the point and modify the XML data by replacing a value with another. The following are the steps to edit or update the XML file in Java.\nLoad the XML data file in the Editor class object. Prepare the editing options for the XML using the XmlEditOptions class. Create the EditableDocument as source content using the edit method and the prepared editing options. Use getContent method of the EditableDocument to extract the original content of the XML file. Now edit whatever is required in the XML content. Now create a new EditableDocument from the updated XML content using fromMarkup method. Use the relevant saving options like WordProcessingSaveOptions or TextSaveOptions to save the updated content in different formats. Save the updated XML in any format using the save method. The following code snippet shows how to edit an XML file in Java and update the data to save it in other formats.\nGet a Free License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, today we learned to programmatically edit XML file data in Java. Now you can develop your online XML editor app. To further explore the features of GroupDocs.Editor, visit the documentation. For queries, contact us via the forum.\nSee Also How to Edit XML files using C# How to Edit Word Documents in C# ","permalink":"https://blog.groupdocs.com/editor/edit-xml-files-in-java/","summary":"XML is commonly used to store and transmit data within and between the applications. It is often a requirement where developers need to edit the XML file when it is received or before transmitting. In this article, we will discuss \u003cstrong\u003ehow to edit the XML file data in Java\u003c/strong\u003e.","title":"Edit XML Files in Java"},{"content":"\rWe have already discussed ways to watermark different documents, images, and presentations. Today, we will be discussing how to add watermark to an Excel workbook in different ways using C# with the .NET application.\nThe following topics are covered below:\nWatermarking API for .NET Add Text Watermark to Excel Sheets Apply Watermark to Specific Excel Sheet Add Watermark to Excel Sheet as Background .NET API to Watermark Excel Sheets GroupDocs.Watermark provides the .NET API for documents and images of various file formats. We will use GroupDocs.Watermark for .NET to apply watermarks in spreadsheets in different ways using C#.\nYou can download the DLLs or MSI installer from the downloads section or get it from NuGet.\nInstall-Package GroupDocs.Watermark Watermark Excel Sheets using C# The API allows you to insert text to the spreadsheets as a watermark with different customizations. The following are the steps to add a watermark to Excel workbooks using C# with the .NET applications.\nPrepare the loading options for spreadsheet. Load the spreadsheet using Watermarker. Define the watermark text and appearance using TextWatermark. Add the text watermark to the Excel worksheet using Add mehtod. Save the resultant spreadsheet with watermark using the Save method. The following C# code sample applies the text watermark to all the sheets of the Excel workbook with rotation and opacity.\nWatermark Specific Excel Sheet using C# Similarly, you can apply watermarks to any specific sheet only instead of applying them to all the sheets of the workbook. The following steps guide on how to insert text watermark to the specific sheet of the Excel workbook using C#.\nPrepare the loading options. Load the spreadsheet using the Watermarker class. Define the watermark appearance and text using the TextWatermark class. Set the worksheet index so that watermark is applied to the mentioned sheet only. Add the text watermark to the Excel worksheet using Add mehtod with watermarking options. Save the output spreadsheet having the watermark using the Save method. The following code snippet applies the text watermark to only the mentioned sheet of the Excel workbook.\nWatermark Excel Sheets as Background using C# Likewise, we can also add watermarks as the background of the spreadsheet. There will be a little change from the above techniques of applying watermarks. The following are the steps that allow inserting background text watermark to Excel spreadsheet using C#.\nPrepare the loading options for loading spreadsheet. Load the spreadsheet using Watermarker. Define the watermark text and appearance (rotation, position, dimensions, opacity, color, and more) using TextWatermark. Set the background watermarking options by getting content and setting dimensions. Set the index of worksheet to apply watermark. (Optional) Add the watermark to the spreadsheet using Add mehtod. Save the spreadsheet with watermark using the Save method. The following code sample shows how to add a background watermark to an Excel spreadsheet using C# within the .NET application.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, we discussed different ways to add watermark to excel sheets using C#. First, we added text watermarks to all the sheets of the Excel workbook. Then we applied the watermark to the specific sheet only. Lastly, we inserted the text-based watermark into the Excel workbook as a background.\nVisit the product documentation to learn more about the API. For queries, contact us via the forum.\nSee Also Watermark Excel Sheets in Java Watermark PDF Files using C# Add Watermark to Presentation Slides using C# Watermark Images using C# ","permalink":"https://blog.groupdocs.com/watermark/watermark-excel-sheets-using-csharp/","summary":"We have already discussed ways to watermark different [documents][1], [images][2], and [presentations][3]. Today, we will be discussing how to add watermark to an Excel workbook in different ways using C# with the .NET application.","title":"Watermark Excel Sheets using C#"},{"content":"XML is among the W3C recommended, structured formats, commonly used to store and transmit data. It is vastly required by developers to edit the stored XML data with the applications. To ease the requirement of editing, this article guides on how to edit the XML file data using C#.\nXML Editing .NET API How to Edit XML Files using C# .NET API to Edit XML Files GroupDocs.Editor provides document editing solutions and APIs to edit a large list of different file formats. It is the .NET API that can be used along with external editors for visual editing. In this article, we will use GroupDocs.Editor for .NET for editing XML data within .NET application.\nTo download the DLLs or MSI installer, visit the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Editor How to Edit XML Files using C# Coming straight to the objective, we will modify the XML data by replacing a value with another. The following are the steps to edit or update the XML file using C#.\nLoad the XML data file using Editor class. Prepare the XML editing options using the XmlEditOptions class. For editing, create the EditableDocument as source content using the Edit method and the prepared editing options. From the EditableDocument, get the original content of the XML file using GetContent method. Update values in the XML content. Now create a new EditableDocument from the updated XML content using FromMarkup method. For saving the updated content in different formats, prepare relevant saving options like WordProcessingSaveOptions or TextSaveOptions. Save the updated XML data in any format using the Save method. The following C# code snippet shows how to edit the XML file and update the data, later save it in any other format.\nGet a Free License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, we have learned to programmatically edit XML file data using C#. You can further explore other features of GroupDocs.Editor using the documentation. To clarify any ambiguity, contact us on the forum.\nSee Also Edit XML files in Java How to Edit Word Documents in C# ","permalink":"https://blog.groupdocs.com/editor/edit-xml-files-using-csharp/","summary":"XML is among the W3C recommended, structured formats, commonly used to store and transmit data. It is vastly required by developers to edit the stored XML data with the applications. To ease the requirement of editing, this article guides on \u003cstrong\u003ehow to edit the XML file data using C#\u003c/strong\u003e.","title":"Edit XML Files using C#"},{"content":"Earlier, we discussed how we can automate the analysis and classify complete documents programmatically. It is often required to classify just some part of the document or only a few statements. In this article, we will identify the best possible taxonomic categories of the selected text. We will learn how we can classify text according to IAB-2 and document taxonomies using C#.\nThe following topics are covered below:\n.NET API for Taxonomic Classification of Text Text Classification with IAB-2 Taxonomy using C# Text Classification with Document Taxonomy using C# .NET API for Taxonomic Classification of Text GroupDocs.Classification for .NET is the API that allows different techniques for the classification of text content within .NET applications. We will use this API to find the best possible taxonomic categories of the provided text using C# in examples.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Classification Text Classification with IAB-2 Taxonomy using C# IAB-2 categorizes the content into defined taxonomic categories and then classifies it based on the analysis. The following are the steps for taxonomic classification of text with IAB-2 taxonomy using C#.\nInstantiate the classifier using Classifier class. Define the text for taxonomic analysis. Set the Taxonomy as IAB2. Set the number of best results count as a result of classification. (Optional) Get the taxonomic categories of the provided text by calling Classify method with the defined parameters. Print the BestResults from the classification response of the Classify method. The following C# source code shows how to classify text using IAB-2 taxonomy and get the top categories with the best match.\nClass: Healthy\\_Living, Probability: 0.4144087 Class: Medical\\_Health, Probability: 0.2108202 Class: Science, Probability: 0.1584931 Text Classification with Document Taxonomy using C# Documents taxonomy classifies the content into different document classes, such as advertisements, invoices, news, resume, letters, emails, etc. The following are the steps for taxonomic classification of text with document taxonomy using C#.\nInstantiate the Classifier. Load the text for taxonomic analysis. Define the number of best results count as a result of classification. (Optional) Set the Taxonomy as Documents. Get the taxonomic groups by calling Classify method with the above defined parameters. Print the BestResults from the classification response of the Classify method. The following C# source code shows how to classify text content and get some of its top taxonomic categories using document taxonomy.\nClass: ADVE, Probability: 0.9999645 Class: Report, Probability: 3.461805E-05 Get a Free License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, we learned to classify various kinds of documents using different taxonomies. In the examples, we classified the text as per IAB-2 and the document taxonomies using C#. After going through the series of posts, you can build your own .NET classification application to classify documents as well as text with different taxonomies and configurations.\nFor more about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Classify Customer\u0026rsquo;s Feedback using Sentiment Analysis using C# Taxonomic Classification of Documents using C# ","permalink":"https://blog.groupdocs.com/classification/taxonomic-classification-of-text-using-csharp/","summary":"In an article, we discussed how we can [analyze and classify complete documents programmatically][1]. It is often required to classify just some part of the document or only a few statements. In this article, we will identify the best possible taxonomic categories of the selected text. We will learn \u003cstrong\u003ehow we can classify text according to IAB-2 and document taxonomies using C#\u003c/strong\u003e.","title":"Taxonomic Classification of Raw Text using C# - (IAB-2 \u0026 Document Taxonomy)"},{"content":"A classification is basically an approach in which text is systematically identified and then organized according to rules. Taxonomy defines the science of such classification. When you are dealing with a bunch of textual documents, it gets hard to find a topic of any document until the taxonomic classification of the content. In this article, you will learn how to programmatically classify documents according to IAB-2 and document taxonomy using C#.\nThe following topics are covered below:\n.NET API for Taxonomic Classification Document Classifcation with IAB-2 Taxonomy Classify Documents with Document Taxonomy Classify Password Protected Documents .NET API for Taxonomic Classification of Documents GroupDocs.Classification provides the classification solution for different kinds of applications. Its .NET API allows you to classify documents of various file formats according to different taxonomic categories within your .NET applications. We will use its GroupDocs.Classification for .NET API for the classification of PDF and Word documents using C#.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Classification Classify Documents with IAB-2 Taxonomy using C# IAB-2 categorizes the document\u0026rsquo;s content into multiple topics and then classifies it based on the depth level. The following are the steps to identify the taxonomic classification of documents with IAB-2 taxonomy using C#.\nInstantiate the classifier using Classifier class. Define the input document and input folder. Define the Taxonomy as IAB2. Set the count for the first few best results in the response. (Optional) Get the taxonomic categories by calling Classify method with the defined parameters. Print the Best Class Name and Probability using the classification response of the Classify method. The following C# source code shows how to classify documents using IAB-2 taxonomy and get some of the top document classification results.\nClass: Technology\\_\u0026amp;Computing, Probability: 0.8188434 Class: Video\\_Gaming, Probability: 0.12686 Class: Hobbies\u0026amp;\\_Interests, Probability: 0.03112753 Class: Music\\_and\\_Audio, Probability: 0.006756512 Classify Documents with Document Taxonomy using C# Documents taxonomy is used to identify different document classes, such as Invoices, CVs, forms, emails, etc. The following are the steps to identify the taxonomic classification of documents with document taxonomy using C#.\nInstantiate the classifier using Classifier class. Set the input document and folder. Define the Taxonomy as Documents. Set the count for the number of top results in the response. (Optional) Get the taxonomic groups by calling Classify method with the above defined parameters. Print the Best Class Name and Probability using the classification response of the Classify method. The following C# source code shows how to classify documents and get some of the best taxonomic categories using document taxonomy.\nClass: ADVE, Probability: 0.3874436 Class: Resume, Probability: 0.2438204 Class: News, Probability: 0.1357582 Class: Memo, Probability: 0.0641943 Classify Password Protected Documents using C# If your document is secured with a password, you can just provide the credentials while classifying. The following are the steps for the classification of password-protected documents using C#\nInstantiate the Classifier. Define the input document, input folder, and password of the protected document. Define the Taxonomy as Documents. Get the taxonomic group by calling Classify method with the defined parameters. Get the Best Class Name and Probability from the response of the Classify method. The following code snippet shows how to classify password-protected documents and get the best taxonomic category using the default taxonomy (IAB-2).\nBest Class: Hobbies\\_\u0026amp;\\_Interests, Probability: 0.4548415 The default values for the taxonomy would be IAB-2 and the count of the best results would be 1.\nGet a Free License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, we learned to classify various kinds of documents using different taxonomies. More precisely, we classified PDF documents as per IAB-2 and document taxonomies using C#. Further, we discussed how we can classify password-protected Word documents with default or specific taxonomic classification. Now you can integrate the document classification feature within your .NET application.\nFor more about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Classify Text with IAB-2 \u0026amp; Document Taxonomy using C# Classify Customer\u0026rsquo;s Feedback using Sentiment Analysis using C# ","permalink":"https://blog.groupdocs.com/classification/taxonomic-classification-of-documents-using-csharp/","summary":"A classification is basically an approach in which text is systematically identified and then organized according to rules. Taxonomy defines the science of such classification. When you are dealing with a bunch of textual documents, it gets hard to find a topic of any document until the taxonomic classification of the content. In this article, you will learn \u003cstrong\u003ehow to programmatically classify documents according to IAB-2 and document taxonomy using C#\u003c/strong\u003e.","title":"Taxonomic Classification of Documents using C# - (IAB-2 \u0026 Document Taxonomy)"},{"content":"\rPDF is among the most famous file formats that support textual, graphical, and many other elements. One of the reasons for its popularity is its portability. In certain cases, you may need to split a large PDF file into multiple files. To address this programmatically, this article discusses different ways of how to split PDF files in Java.\nJava API to Split PDF Files Split PDF into Multi-Page Files Split PDF into Multiple Single Pages Files Extract Pages from PDF Files by Range in Java Extract Pages from PDF Files using Even or Odd Filter in Java Java API to Split PDF Files GroupDocs.Merger provides the solution to merge and split files of many different file formats. We will use its Java API to split PDF files in different ways. Download the JAR file from the downloads section, or just use the latest repository and dependency Maven configurations within your Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-merger\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.9\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Split PDF File into MultiPage Files in Java The following steps guide how you can split a PDF file into multipage files:\nLoad the PDF file using Merger class. Define the output file(s) format. Define the page intervals using SplitOptions. Split the loaded PDF according to defined interval using split() method. The following code sample shows how to split PDF files into multipage files in Java.\nSplit PDF File into Multiple Single-Page Files in Java The following steps guide how you can split a PDF to extract pages into multiple single-page files:\nLoad the PDF file using Merger class. Define the output file(s) format. Define the exact page numbers using SplitOptions. Split the loaded PDF according to defined pages using split() method. The following code sample shows how to split PDF files into multiple single-page files in Java.\nExtract Pages from PDF Files by Range in Java The following steps guide how to extract pages from PDF by splitting according to the given range:\nLoad the PDF file using Merger class. Define the output file(s) format. Provide the pages range using SplitOptions. Use split() method to split the loaded PDF according to the defined range. The following code snippet shows how to split PDF and extract pages by providing range in Java.\nExtract Pages from PDF Files using Even/Odd Filter in Java The following steps guide how to extract even/odd pages in the given range from PDF file by splitting:\nLoad the PDF file using Merger class. Define the output file(s) format. Provide the pages range using SplitOptions. Apply the even, odd, or all pages filter using RangeMode. Use split() method to split the loaded PDF according to the defined filter. The following code snippet shows how to extract all the odd/even pages in the defined range of a PDF file using Java.\nCode Change Summary The only thing that differs in the above scenarios is the way to create SplitOptions. You can use the following configurations as per your requirements within your code.\nFor Multipage Files - Use Interval: [1,2], [3,4,5], [6,7], [8,9,10]. new SplitOptions(outputFile, new int[] { 3, 6, 8 }, SplitMode.Interval) Individual Pages: [3], [6], [8] new SplitOptions(outputFile, new int[] { 3, 6, 8 }); To Extract Pages in Range: [3], [4], [5] new SplitOptions(outputFile, 3, 5); Range with Filter: [3], [5], [7] new SplitOptions(outputFile, 3, 7, (Integer)RangeMode.OddPages); Get a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, you have learned different ways to split PDF files in Java. First, we split the PDF file into multipage documents as well as in several single-page documents. Then one by one we extracted all the pages, and even/odd pages of the PDF file within the given range. Now you should be confident to build your own PDF splitter Java App using the GroupDocs.Merger API.\nTo learn more about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Merge PPT files in Java Merge Multiple File Types into One using Java Merge PDF, Word, Excel Documents in Java Different Ways to Split PDF Files using C# ","permalink":"https://blog.groupdocs.com/merger/split-pdf-files-in-java/","summary":"PDF is among the most famous file formats that support textual, graphical, and many other elements. One of the reasons for its popularity is its portability. In certain cases, you may need to split a large PDF file into multiple files. To address this programmatically, this article discusses different ways of \u003cstrong\u003ehow to split PDF files in Java\u003c/strong\u003e.","title":"Different Ways to Split PDF Files in Java"},{"content":"Hyperlinks are normally used to associate external data to any specified area of the document. We can transform any part of the documents to hyperlinks using the link annotations. As a programmer, you can add these link annotations to documents within your .NET applications. In this article, we are going to discuss that how to create hyperlinks in PDF files using C#.\nThe following topics are covered below:\n.NET API to Add Hyperlinks in PDF files How to Programmatically Create Hyperlinks in PDF .NET API to Create Hyperlinks in PDF GroupDocs.Annotation provides the annotation solution for different kinds of applications. Its .NET API allows manipulation and automation of various annotations in documents within your .NET applications. We will use its GroupDocs.Annotation for .NET API to create hyperlink annotations in the PDF file using C#.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Annotation Create Hyperlinks in PDF using C# The following are the steps to create hyperlinks anywhere in the PDF file using C#.\nLoad the source PDF document using Annotator class. Create the Link Annotation object. Define the hyperlink properties like url, page number, points, etc. Add the defined hyperlink to the loaded PDF document using Add method. Save the annotated PDF using Save method. The following code sample shows how to convert any part of the PDF file into a hyperlink using C#.\nThe following is the output of the above code.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, you have learned how the link annotations can be added to create hyperlinks in PDF files using C#. Likewise, using link annotations, you can convert any part of the document into hyperlinks. Many other annotation types can also be added in a similar way using the same API. Learn further about the API by visiting the documentation. For queries, contact us via the forum.\nSee Also Watermark PDF Files using C# Add Watermark to Images using C# Highlight PDF using Annotations in C# Add or Remove Annotations or Markup Word files using C# ","permalink":"https://blog.groupdocs.com/annotation/create-hyperlinks-in-pdf-using-annotations-in-csharp/","summary":"Hyperlinks are normally used to associate external data to any specified area of the document. We can transform any part of the documents to hyperlinks using the link annotations. As a programmer, you can add these link annotations to documents within your .NET applications. In this article, we are going to discuss that \u003cstrong\u003ehow to create hyperlinks in PDF files using C#\u003c/strong\u003e.","title":"Create Hyperlinks in PDF using Annotations in C#"},{"content":"While reviewing or to attract viewer to an important content, you may need to highlight some part of the document. As a developer, you can automate this feature by using highlight annotations within your applications. In this article, you will learn how to highlight text and any area in PDF files using C#.\nThe following topics are covered below:\n.NET API to Highlight in PDF How to Programmatically Highlight in PDF .NET API to Highlight in PDF GroupDocs.Annotation provides .NET API that allows manipulating annotations and their automation in documents within .NET applications. I am using this API to highlight text in the PDF file in the example of this article.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Annotation Highlight in PDF using C# The following are the steps to highlight text or any area in PDF from your .NET application.\nLoad the source PDF document using Annotator class. Create the HighlightAnnotation object. Define the highlight properties like the color, opacity, page number, and points. Add the defined highlighting to the loaded PDF document using Add method. Save the annotated PDF using Save method. Note: You may change the highlight color, opacity, and other properties.\nThe following code sample shows how to highlight the text in PDF programmatically using C#.\nThe following is the output of the above code.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, we have learned how to add highlight annotation in PDF files programmatically using C#. Additionally, we can change the highlight color, opacity, and other properties. Many different types of annotations can be added in a similar way using the same API.\nTo learn about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Watermark PDF Files using C# Add Watermark to Images using C# Add or Remove Annotations or Markup Word files using C# ","permalink":"https://blog.groupdocs.com/annotation/highlight-pdf-with-annotations-using-csharp/","summary":"While reviewing or to attract viewer to an important content, you may need to highlight some part of the document. As a developer, you can automate this feature by using highlight annotations within your applications. In this article, you will learn \u003cstrong\u003ehow to highlight text and any area in PDF files using C#\u003c/strong\u003e.","title":"Highlight PDF using Annotations in C#"},{"content":"\rPDF is one of the most commonly used file formats which is highly portable. As a developer, you may have faced the scenario to split large PDF files programmatically. In one of the articles, we learned to split the PDF files in Java. Today, this article discusses different ways of how to split PDF files using C# in .NET applications.\n.NET API to Split PDF Files Split PDF into Multi-Page Files Extract Pages from PDF Files by Range Extract Pages from PDF Files using Even or Odd Filter Split PDF into Multiple Single Pages Files .NET API to Split PDF Files In order to split PDF files, we will use GroupDocs.Merger for .NET. It is the API that allows rapid development to integrate features with very few lines of code. In addition to splitting, it supports merging, swapping, or trimming documents of different file formats.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Merger Split PDF File into MultiPage Files using C# The following steps guide how you can split PDF files into multipage files using C#:\nDefine the output file(s) format. Define the page intervals using SplitOptions. Load the PDF file using Merger class. Split the loaded PDF according to defined interval using Split() method. The following code sample shows how to split PDF files into multipage files.\nExtract Pages from PDF Files by Range The following steps guide how to extract pages from PDF using C# by splitting according to the given range:\nDefine the output file(s) format. Provide the pages range using SplitOptions. Load the PDF file using Merger class. Use Split() method to split the loaded PDF according to the defined range. The following code snippet shows how to split PDF and extract pages by providing the range.\nExtract Even/Odd Pages from PDF Files using C# The following steps guide how to extract even/odd pages from a PDF file by splitting within the given range by just applying filters in C#:\nDefine the output file(s) format. Provide the pages range using SplitOptions. Apply the filter for even, odd, or all pages using RangeMode. Load the PDF file using Merger class. Use Split() method to separate the loaded PDF according to the defined filter. The following code snippet shows how to extract all the odd/even pages in the defined range of a PDF file.\nSplit PDF File into Multiple Single-Page Files The following steps guide how we can split a PDF to extract pages as multiple single-page files in C#:\nDefine the output file(s) format. Define the exact page numbers using SplitOptions. Load the PDF file using Merger class. Split the loaded PDF according to defined pages using Split() method. The following code sample shows how to split PDF files into multiple single-page files.\nCode Change Summary In all the scenarios, the thing that changes is the way to define SplitOptions. Here is the summary of the change in each code snippet for each scenario. You can use the following settings as per your requirements within your code. Here, I used a PDF file having 10 pages.\nFor Multipage Files - Use Interval: [1,2], [3,4,5], [6,7], [8,9,10]. new SplitOptions(outputFile, new int[] { 3, 6, 8 }, SplitMode.Interval) Extract Pages in Range: [3], [4], [5], [6] new SplitOptions(outputFile, 3, 6); Range with Filter: [3], [5], [7] new SplitOptions(outputFile, 3, 8, (Integer)RangeMode.OddPages); Individual Pages: [3], [4], [9] new SplitOptions(outputFile, new int[] { 3, 4, 9 }); Get a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, we discussed the ways to split PDF files using C#. First, we split the PDF file into multipage \u0026amp; single-page documents. We also extracted pages from PDF files. First, we extracted all the pages, and then even/odd pages within the given range. You can try building your own PDF splitting .NET App using GroupDocs.Merger API.\nTo learn more about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Merge Documents using C# Merge Multiple File Types into Single Document using C# Rearrange PDF Pages using C# Rearrange Pages in Word using C# How to Split PDF Files in Java ","permalink":"https://blog.groupdocs.com/merger/split-pdf-files-in-csharp/","summary":"[PDF][1] is one of the most commonly used file formats which is highly portable. As a developer, you may have faced the scenario to split large PDF files programmatically. Today, this article discusses different ways of \u003cstrong\u003ehow to split PDF files using C# in .NET applications\u003c/strong\u003e.","title":"How to Split PDF Files using C#"},{"content":"Link annotations are used to create any part of the document as hyperlinks. In other words, it allows us to associate external data with the specified area of the document. We can add these link annotations to documents within Java applications. In this article, you will learn how to create hyperlinks in PDF files using Java.\nThe following topics are covered below:\nJava API to Add Hyperlinks in PDF files How to Programmatically Create Hyperlinks in PDF Java API to Create Hyperlinks in PDF GroupDocs.Annotation provides the Java API that allows manipulation and automation of various annotations in documents within your Java-based applications. We will use this API to create hyperlink annotation in the PDF file.\nDownload or Configure Download the JAR file from the downloads section, or just get the latest repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-annotation\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.7\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Create Hyperlinks in PDF using Java The following are the steps to create hyperlinks anywhere in PDF using Java.\nLoad the PDF document using Annotator class. Define list of Points that represent the area of Hyperlink. Create the LinkAnnotation object. Define the hyperlink properties like url, page number, points, etc. Add the defined hyperlink to the loaded PDF document using add method. Save the annotated PDF using save method. The following Java code shows how to convert any part of the PDF file into a hyperlink programmatically.\nThe following is the output of the above code.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, we have discussed how to programmatically add link annotations to create hyperlinks in PDF files using Java. By using link annotations, you can modify any part of the document into hyperlinks. Many different types of annotations are available through the API. These annotations can be added in a similar way using the same API. To learn more about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Hyperlink Annotations in PDF using C# Add or Remove Annotations of PDF files in Java Highlight PDF using Annotations in Java Add Watermark to Images in Java ","permalink":"https://blog.groupdocs.com/annotation/create-hyperlinks-in-pdf-using-annotations-in-java/","summary":"Link annotations are used to create any part of the document as hyperlink. In other words, it allows us to associate external data with the specified area of the document. We can add these link annotations to documents within Java applications. In this article, you will learn \u003cstrong\u003ehow to create hyperlinks in PDF files using Java\u003c/strong\u003e.","title":"Create Hyperlinks in PDF using Annotations in Java"},{"content":"It is often needed to highlight important areas of your documents on purpose. As a developer, you can automate highlighting within your applications. In this article, you will learn how to highlight text and any area in PDF files using Java. Additionally, there will be several properties of highlighting that can be adjusted according to the requirement.\nThe following topics are covered below:\nJava API to Highlight in PDF How to Programmatically Highlight in PDF Java API to Highlight in PDF GroupDocs.Annotation for Java is the API that allows easy manipulation and automation of annotations in documents within your Java-based applications. We will use this API to highlight text in the PDF file.\nDownload or Configure You may download the JAR file from the downloads section, or just get the latest repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-annotation\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.7\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Highlight in PDF using Java The following are the steps to highlight text or any area in PDF using Java.\nLoad the PDF document using Annotator class. Define list of Points to select the area of highlight. Create the HighlightAnnotation object. Define the highlight properties like color, opacity, and page number. Add the defined highlighting to the loaded PDF document using add method. Save the annotated PDF using save method. Note: You may change the highlight color, opacity, and other properties.\nThe following Java code shows how to highlight the text in PDF programmatically.\nHere is the output of the above code.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, we have discussed how to programmatically add highlight annotation in PDF files using Java. Additionally, we can change the highlight color, opacity, and other properties with ease. Many different types of annotations are available through the API. These annotations can be added in a similar way using the same API. To learn about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Highlight Annotations in PDF using C# Add or Remove Annotations of PDF files in Java Watermark PDF Files in Java Add Watermark to Images in Java ","permalink":"https://blog.groupdocs.com/annotation/highlight-pdf-using-annotations-in-java/","summary":"It is often needed to highlight important areas of your documents on purpose. As a developer, you can automate highlighting within your applications. In this article, you will learn \u003cstrong\u003ehow to highlight text and any area in PDF files using Java\u003c/strong\u003e. Additionally, there will be several properties of highlighting that can be adjusted according to the requirement.","title":"Highlight PDF using Annotations in Java"},{"content":"Want to secure the secret, or sensitive information that is within the documents? It is doable even if this is regular textual information or it is text with the scanned document with images. The earlier articles may help you refine your search, where we discussed the different strategies to search words and search synonyms within multiple documents. This article guides you about how to redact PDF text and text in images within a document using Java.\nThe following topics will be covered below:\nText and image redaction – Java API Redact PDF text and scanned Information using Java Java API for Text and Image Redaction GroupDocs.Redaction provides the redaction solution to secure the classified information. Its Java API allow you to redact or removing confidential information within documents of various file formats from your Java-based applications. Along with the simple text redaction and rasterization, the API also allows identifying the text in images that may have been inside any document like most commonly used scanned PDF files. The complete list of supported file formats is available in the documentation.\nDownload or Configure You may download the JAR file from the downloads section, or just get the latest repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-redaction\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.6\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Redact PDF Text and Scanned Image Text using Java We have already discussed the different ways to find and replace text in documents. However, we can also redact text within images. I will use the following PDF document, that contains some text and also an image with some text. For this, we need to combine OCR with the redaction process. Firstly, we will identify the text in the document and also the text which is inside the image of the document. Then, we will cover it with a black box to programmatically hide any legal, confidential, or secret information even if is as text within a scanned document image.\nThe following steps will detect and replace the text in the PDF documents, that contains regular text or any text within the embedded images.\nPrepare the redactor settings using any OCR Connector. Load your PDF file using Redactor class and also if there are any specific loading options required. Define your replacement options. I am opting to black out the text. Prepare the redactions; use the appropriate redaction strategy like Phrase Redaction or RegEx redaction. Apply the redactions using the apply method. Save the redacted document using the save method. The following source code redacts the selected text within a PDF document using Java.\nThe output of the above code is as follows with the blacked-out selected text of the PDF document.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To conclude, you have learned how to redact text in documents. Additionally, we discussed how to redact text in the images within a PDF document using Java. Similarly, you can redact text and images with documents of any other format. We used the regular expressions redaction, however, it can also be done using many different ways. Later we hid the search results using a black box.\nFor more details to learn about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Find and Replace Words in Documents using Java Find and Remove Watermarks from Documents in Java Add or Remove Annotations of PDF files in Java ","permalink":"https://blog.groupdocs.com/redaction/redact-text-and-scanned-images-using-java/","summary":"Want to secure the secret, or sensitive information that is within the documents? It is doable even if this is regular textual information or it is text with the scanned document with images. The earlier articles may help you refine your search, where we discussed the [different strategies to search words][1] and [search synonyms within multiple documents][2]. This article guides you about \u003cstrong\u003ehow to redact PDF text and text in images within a document using Java\u003c/strong\u003e.","title":"Redact PDF Scanned Documents in Java"},{"content":"We recently have discussed, how to get all the synonyms of any word. It would be wonderful if we could locate these synonyms within many different documents. In this article, we will see how to search any word and its synonyms in multiple files using Java.\nThe following are the topics covered below:\nJava API – Synonym Search Find synonyms in documents in Java Present synonym search results Complete Java code – Search \u0026amp; print synonyms search results Java API - Search Synonyms in Multiple Files GroupDocs.Search showcases the Java API GroupDocs.Search for Java. It allows searching words and their synonyms in various multiple files of the specified folder. It supports a long list of different file formats and various search techniques. Some of these features are mentioned below and you can use them in combination to achieve your target:\nBoolean Search Case-Sensitive Search Highlight Search Results Homophone Search Phrase Search Regular Expressions Search Search by Chunks Synonym Search Download or Configure You may download the JAR file from the downloads section, or just get the latest repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-search\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.8\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Find Synonyms in Multiple Files using Java Let\u0026rsquo;s quickly move to search synonyms within files. The following steps show how to search synonyms (words with similar meanings) in files within a folder using Java:\nDefine the index folder, document’s folder and query (the word to search). Create an index using defined index folder using Index class. Add the documents\u0026rsquo; folder to the index. Enable the Synonym Search using SearchOptions. Call the search method of Index class and pass the query with search options. Print the summary using the properties of the retrieved SearchResult class. The following source code shows how to find all the synonyms within files using Java:\nThe following is the output of the above code:\nQuery: **make** Documents: 3 Word \u0026amp; Synonym Occurrences: 44 Printing Synonym Search Results using Java From the search results obtained in the above step, you can get the information regarding each word and synonym of the search. The following steps present the results in detail after getting all the synonyms and their number of occurrences within each document:\nFirstly, perform the search to get the SearchResult. Traverse the search result to work with each FoundDocument. Print the respective properties of each FoundDocument. Now, extract and then traverse the FoundDocumentField within each FoundDocument. Each FoundDocumentField has its terms, occurrences, and other properties in it. Use respective getter. The following source code displays the result of the synonym search along with the number of occurrences of each searched term in Java.\nThe following is the output of the above code:\nQuery: **make** Documents: 2 Total occurrences: 22 Document: C:/documents/sample.docx Occurrences: 13 Field: content Occurrences: 13 **make** - 2 **have** - 1 **get** - 2 **do** - 8 - - - - - - - - - - - - - - - - Document: C:/documents/sample.txt Occurrences: 11 Field: content Occurrences: 11 **make** - 1 **have** - 2 **get** - 1 **do** - 7 - - - - - - - - - - - - - - - - Document: C:/documents/sample.pdf Occurrences: 20 Field: content Occurrences: 20 **make** - 2 **have** - 2 **get** - 2 **do** - 14 Search Synonyms and Printing Results in Java – Complete Code Let\u0026rsquo;s combine the above two steps, so here is the complete source code. Firstly, it finds all the synonyms according to the provided query. Then, it prints all the occurrences of every synonym in each document in Java.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To summarize, we discussed how to search any word along with its synonym in multiple documents using Java. Most importantly, now you can try developing your own Java App for searching just like GroupDocs.Search App.\nLearn more about the Java Search Automation API from the documentation. To experience the features, try examples from the GitHub repository. Feel free to reach us for any query via the forum.\nSee Also Find Synonyms of Words using Java Build your Full Text Search Solution in Java Find and Replace Words in Documents using Java Find and Remove Watermarks from Documents in Java ","permalink":"https://blog.groupdocs.com/search/find-synonyms-in-multiple-files-using-java/","summary":"We recently have discussed, [how to get all the synonyms of any word][1]. It would be wonderful if we could locate these synonyms within many different documents. In this article, we will see \u003cstrong\u003ehow to search any word and its synonyms in multiple files using Java\u003c/strong\u003e.","title":"Search Synonyms in Multiple Files using Java"},{"content":"Avoid the repetition of the same word; use Synonyms (two different words that mean the same). What if you need to find synonyms of any word programmatically? This article guides you on how to find out all the synonyms of any word using Java. Similarly, a single word could have multiple meanings. We will see how the synonyms can be grouped according to different meanings of that same word.\nThe following topics will be covered below:\nJava API – Find Synonyms Get synonyms of any word in Java Get synonyms – Grouped by different meanings Java API for Finding Synonyms GroupDocs.Search allows finding synonyms of words through its APIs. I will be using its Java API in the examples. It further lets searching the word and all its synonyms in multiple documents within a folder. Many different search techniques are available that can be used to search over a large list of document formats.\nDownload or Configure You may download the JAR file from the downloads section, or just get the latest repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-search\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.8\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Find Synonyms of any Word in Java Suppose, you have the word \u0026ldquo;SHOW\u0026rdquo; in your mind. Let\u0026rsquo;s see, what possibly could be the synonyms of \u0026lsquo;SHOW\u0026rsquo;. The following are the steps to get synonyms using Java.\nFirst, set the query/word to find its synonyms. Create index using the Index class. From the various dictionaries, get the synonyms dictionary and then the collection of synonyms by passing the query to getSynonyms method. Tranverse the synonyms to work with each synonym. The following source code shows how to get all the synonyms of any provided word in Java.\nHere is the output of the above Java code that displays all the synonyms of the word “show”.\nSynonyms for \u0026#39;**show**\u0026#39;: - prove - testify - present - demo - exhibit - demonstrate - evidence Find Synonyms Grouped by Different Meanings in Java There could be different meanings of a single word according to the situation and its usage. You can group different sets of synonyms w.r.t its meaning. The following steps allow you to get different groups of synonyms using Java.\nFirst, set the word whose synonyms are required. Create the index using Index class. From the different dictionaries, get the synonyms dictionary and then the collection of synonym groups by passing the query to the getSynonymGroups method. Tranverse synonym groups collection to work with each group or synonym word. The following source code shows how to get all the synonym groups of any provided word in Java.\nThe following is the output of the above Java code that displays all the synonyms of the provided word “show” grouped according to its different meaning.\nSynonym groups for **show**: - evidence prove **show** testify - demo demonstrate exhibit present **show** Next, we will discuss in a separate article, how to find any word and its synonyms within multiple files of a folder using Java.\nConclusion To sum up, we discussed how to find the possible synonyms of any word in Java using simple methods. Further, we discussed that how to get all the groups of synonyms that are created according to the different meanings of that same word. Now, you can try to build your own Java application synonyms.\nLearn more about the Java Search Automation API from the documentation. To experience the features, you can have a look at examples on the GitHub repository. Reach us for any query via the forum.\nSee Also Find Synonyms of Words using C# Search Synonyms in Multiple Files using Java Build your Full Text Search Solution in Java Find and Replace Words in Documents using Java Find and Remove Watermarks from Documents in Java ","permalink":"https://blog.groupdocs.com/search/find-synonyms-of-words-using-java/","summary":"Avoid the repetition of the same word; use \u003cstrong\u003eSynonyms\u003c/strong\u003e (two different words that mean the same). What if you need to find all such synonyms of any word programmatically? This article guides you on how to find out all the synonyms of any word using Java. Similarly, a single word could have multiple meanings. We will see how the synonyms can be grouped according to different meanings of that same word.","title":"Find Synonyms of Words using Java"},{"content":"CSV and XML are among the most popular file formats used by developers. These formats are normally used to store and exchange data within and between applications. It is often required to convert one format into another before storing or transmitting the information. In this article, you will find how to programmatically convert the CSV (comma-separated values) file into XML format using C#.\nThe article covers the following topics:\n.NET API - CSV to XML Conversion How to Convert CSV to XML in C# .NET API for CSV to XML Conversion GroupDocs.Conversion provides APIs that allow the CSV and XML files conversions. In this article, we will use the .NET API of GroupDocs.Conversion for converting the CSV format data into XML format using C#. Additionally, the API supports many other file formats for conversion like word-processing documents, spreadsheets, presentations, eBooks, images, etc.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Conversion Convert CSV to XML in C# The CSV files can be viewed and visually edited using editors like MS Excel. The image shows the CSV data that I have used for the conversion. There are many CSV to XML converters available online, however, the code mentioned in this section can empower your .NET applications with this simple conversion.\nThe following steps guide you to convert the provided data of CSV format into XML format.\nLoad the CSV file using the Converter class. Set the conversion format as XML using the DataConvertOptions. Call the Convert method to get the XML format data from the loaded CSV file. The following source code converts the CSV file to XML format using C#.\nThe output of the above code is as follows. I am sharing the part of the XML file for you to get an idea of the XML output.\n\u0026lt;DocumentElement\u0026gt; \u0026lt;Sheet1\u0026gt; \u0026lt;Employee\u0026gt;David\u0026lt;/Employee\u0026gt; \u0026lt;Quarter\u0026gt;1\u0026lt;/Quarter\u0026gt; \u0026lt;Product\u0026gt;Maxilaku\u0026lt;/Product\u0026gt; \u0026lt;Continent\u0026gt;Asia\u0026lt;/Continent\u0026gt; \u0026lt;Country\u0026gt;China\u0026lt;/Country\u0026gt; \u0026lt;Sale\u0026gt;2000\u0026lt;/Sale\u0026gt; \u0026lt;/Sheet1\u0026gt; \u0026lt;Sheet1\u0026gt; \u0026lt;Employee\u0026gt;David\u0026lt;/Employee\u0026gt; ... \u0026lt;/Sheet1\u0026gt; \u0026lt;Sheet1\u0026gt; ... \u0026lt;/Sheet1\u0026gt; \u0026lt;/DocumentElement\u0026gt; Get a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To sum up, we discussed the conversion of CSV data into XML format within the .NET applications using C#. To build your own conversion app, you may learn more about the Conversion Automation .NET API using the documentation. The best is to experience the examples available on GitHub. Contact us for any query via the forum.\nSee Also JSON to XML Conversion in C# Convert JSON to CSV and CSV to JSON using C# Convert Excel to CSV and CSV to Excel Formats in C# ","permalink":"https://blog.groupdocs.com/conversion/convert-csv-to-xml-in-csharp/","summary":"CSV and XML are among the most popular file formats used by developers. These formats are normally used to store and exchange data within and between applications. It is often required to convert one format into another before storing or transmitting the information. In this article, you will find \u003cstrong\u003ehow to programmatically convert the CSV (comma-separated values) file into XML format using C#\u003c/strong\u003e.","title":"Convert CSV to XML in C#"},{"content":"We often need to hide the confidential and sensitive information within the documents. In other articles, we have discussed the different strategies to search words and even search synonyms within multiple documents. This article guides you about how to redact PDF text and text in images within a document using C#.\nThe following topics will be covered below:\nText and image redaction - .NET API Redact PDF text and scanned Information using C# .NET API for Text and Image Redaction GroupDocs.Redaction provides the document redaction .NET API that allows hiding and removing confidential information within documents of various file formats. Along with the simple text redaction and rasterization, the API also allows identifying the text in images that may have been inside any document like most commonly used scanned PDF files. The complete list of supported file formats is available in the documentation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nInstall via Package Manager Console PM\u0026gt; Install-Package GroupDocs.Redaction Install via NuGet Package Manager Redact PDF Text and Scanned Image Text using C# There are many different ways to find and replace text in documents that have already been discussed. You can find specific words in any document, find with case sensitivity, or by using regular expressions. I will be using the following PDF document, that contains some text and also an image with some text in it. Here we will combine the OCR and redaction process using GroupDocs.Redaction for .NET. Firstly, we will identify the text in the document and also the text which is inside the image of the document. Secondly, we will cover it with a black box to demonstrate how to programmatically hide any legal or confidential information even if is as text within a scanned document image.\nThe following steps will detect and replace the text in a PDF document, that contains regular text along with some text within an embedded image.\nPrepare the redactor settings using any OCR Connector. Load the PDF document using Redactor class with the prepared settings and any specific loading options. Define the replacement option. I have defined to black out the text. For the text redaction, use the appropriate text selection strategy. I have used RegEx. Apply the redactions using the Apply method. Save the redacted document using Save method. The following source code redacts the selected text within a PDF document using C#.\nThe output of the above code is as follows that black out the selected text of the PDF document.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To sum up, you have learned to redact text in documents. More importantly and precisely, we discussed how to redact text in images within a PDF document using C#. We selected the text to redact using regular expressions, however, it can be selected using many different ways as discussed earlier. Later we blackout the search results using a black rectangle box over the searched text.\nFor more details to learn about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Find and Replace Words in Documents using C# Find and Remove Watermarks from Documents in C# Add or Remove Annotations within Word files using C# ","permalink":"https://blog.groupdocs.com/redaction/redact-text-and-scanned-images-using-csharp/","summary":"We often need to hide the confidential and sensitive information within the documents. In other articles, we have discussed the different strategies to search words and even search synonyms within multiple documents. This article guides you about \u003cstrong\u003ehow to redact PDF text and text in images within a document using C#\u003c/strong\u003e.","title":"Redact PDF Scanned Documents in C#"},{"content":"Responsive HTML web pages are the ones that look good on different devices by adjusting themselves according to the different screen sizes. This article will guide you about how to programmatically convert word documents as responsive HTML pages within the Java applications using GroupDocs.Viewer.\nThe following topics will be covered below:\nJava API for Word and Responsive HTML viewer View Word Documents as Responsive HTML in Java Java API - Convert \u0026amp; View Word Docs as Responsive HTML GroupDocs.Viewer provides the Java API to render the Word documents as responsive HTML pages within Java applications. This Java API allows to render, display, and manipulate a large number of different document formats. It further allows building HTML Viewer with external as well as embedded resources, an Image Viewer by rendering as JPG and PNG, and also the PDF Viewer that could be best for printing or sharing with others.\nDownload or Configure You may download the JAR file from the downloads section, or just get the latest repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsArtifactRepository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifact Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-viewer\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.4\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert Word Documents to View as Responsive HTML using Java You can render your MS Word DOC, DOCX documents, to responsive HTML pages to look good on all the different screen sizes. The following steps show how to convert a Word document (DOC/DOCX) to responsive HTML in Java.\nLoad the Word document (DOC/DOCX) using the Viewer class. Set either the embedded or external resources for the html output using HtmlViewOptions. Enable the responsive rendering using setRenderResponsive method. To generate the responsive webpages of the loaded Word document, use the view method of the Viewer class The following source code renders the Word document as responsive HTML with embedded resources in Java.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To conclude, you discussed how to render the Word documents as responsive HTML pages within Java applications using GroupDocs.Viewer for Java API. Additionally, you can generate these HTML pages with either embedded or external resources. You must think about starting building your own document viewer application in Java like the one already built by GroupDocs.\nFor more about the API, you can visit documentation and the GitHub repository. In case of further queries and ambiguities, contact the free support on the forum.\nSee Also View CAD Documents using Java Render Word documents as Minified HTML in Java Rearrange Pages in Word documents using Java View Word Documents as HTML Responsive Page using C# ","permalink":"https://blog.groupdocs.com/viewer/view-word-documents-as-responsive-html-page-using-java/","summary":"Responsive HTML web pages are the ones that look good on different devices by adjusting themselves according to the different screen sizes. This article will guide you about \u003cstrong\u003ehow to programmatically convert word documents as responsive HTML pages\u003c/strong\u003e within the \u003cstrong\u003eJava\u003c/strong\u003e applications using GroupDocs.Viewer.","title":"View Word Documents as Responsive HTML Page using Java"},{"content":"In another article, we have seen that what are synonyms, and how to get all the synonyms of any word. What about finding these synonyms within different documents? This article will guide you about how to search the synonyms of any specific query (word) in multiple files using C#.\nThe following topics will be covered below:\n.NET API - Synonym Search Find synonyms in documents using C# Present synonym search results using C# Complete code - Search \u0026amp; print synonyms search results .NET API for Searching Synonyms in Multiple Files GroupDocs.Search provides the .NET API that allows searching any word and its synonyms in multiple files of the specified folder. I will be using this API in the shown examples of this article. It allows you to search over a large list of document formats. Along with finding the synonyms, GroupDocs.Search for .NET also supports some more search techniques that include:\nFuzzy Search Case-Sensitive Search Homophone Search Regular Expressions Search Wild Card Search You can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Search Find Synonyms in Multiple Files using C# The steps show how to search synonyms (words with similar meanings) in files within a folder using C#.\nDefine the search query, index folder, and the document\u0026rsquo;s folder. Create index with defined index Folder using Index class. Add the document\u0026rsquo;s folder to the index. Create the SearchOptions and set the UseSynonymSearch to true. Call the Search method of Index class and pass the query and search options. To print the summary, use the properties of the retrived SearchResult. The source code shows how to find all the synonyms within all the files of a folder using C#\nQuery: **make** Documents: 2 Occurrences: 22 Printing Synonym Search Results using C# The following steps print the results in detail after getting all the synonyms and their number of occurrences in each document.\nTraverse the search results that are retrieved using the above code. Get each FoundDocument using the GetFoundDocument method. Print the repective properties of each FoundDocument. Traverse the FoundFields within each FoundDocument to get Found Document Field. From each FoundDocumentField, you can get its terms and its occurrences count within each document. The following source code prints the synonym search results along with the number of occurrences of each searched term using C#.\nQuery: **make** Documents: 2 Total occurrences: 22 Document: C:/documents/sample.docx Occurrences: 6 Field: content Occurrences: 6 make 1 get 2 cause 1 do 2 Document: C:/documents/sample.txt Occurrences: 16 Field: content Occurrences: 16 get 4 cause 1 do 11 Search Synonyms and Printing Results using C# - Complete Code Here is the complete source code that first finds all the synonyms according to the provided query, and then prints all the occurrences of all the synonyms in each document within that folder using C#.\nConclusion To conclude, you have learned how to find the specific words and also their synonyms in multiple documents within the specified folder using C#. You can try to develop your own .NET application for searching any word and its synonyms within multiple files.\nLearn more about the .NET Search Automation API from the documentation. To experience the features, you can have a look at examples on the GitHub repository. Reach us for any query via the forum.\nSee Also Find Synonyms of Words using C# Build your Full-Text Search Solution in C# Text Indexing and Search your Directories using C# ","permalink":"https://blog.groupdocs.com/search/find-synonyms-in-multiple-files-using-csharp/","summary":"In an other article we have seen that what are synonyms, and how to get all the synonyms of any word. What about find these synonyms with in different documents. This article will guide you about how to search the synonyms of any specific query (word) in multiple files using C#.","title":"Search Synonyms in Multiple Files using C#"},{"content":"A synonym is a word that exactly or nearly means the same as another word. We normally use synonyms to avoid using the same word repeatedly. As a developer, you may need to find out all words with the same meaning for your search purpose or document analysis. This article will guide you about how to find out all the synonyms of any specific word in C# using .NET API. Additionally, you can also get different groups of these synonyms that are arranged according to the different meanings of that same word.\nThe following topics will be covered below:\n.NET API - Find Synonyms Get synonyms of any word in C# Get synonyms - Grouped as different meanings .NET API for Finding Synonyms GroupDocs.Search provides the .NET API that allows finding synonyms of any word. It also allows searching that word and all its synonyms in multiple documents within a folder. It supports different search techniques to search over a large list of document formats.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Search Find Synonyms of any Word in C# Here you can find, what possibly could be the synonyms of the word that is in your mind. To get the list of the synonyms of any word within your .NET application, you can just use the following steps and C# code below:\nDefine the query/word to find its synonyms. Create index using Index class. Get the collection of synonyms from the synonyms dictionary using GetSynonyms method. Tranverse the synonym collection to work with each synonym word. The following is the output of the above C# code that displays all the synonyms of the provided word \u0026ldquo;make\u0026rdquo;.\nSynonyms for \u0026#39;**make**\u0026#39;: - brand - construct - build - cook - fix - ready - prepare - induce - stimulate - cause - have - get - create - do - produce - reach - attain - hit - gain Find Synonyms Grouped by Different Meanings of the Word using C# A single word may have many different meanings according to the situation. So its synonyms can also be grouped according to the different use. The following steps and source code provide you the different groups of synonyms according to the different meanings of that word in C#.\nDefine the word (query) to find its synonyms. Create the index using Index class. Get the collection of synonym groups from the synonyms dictionary using GetSynonymGroups method. Tranverse the synonym groups collection to work with each group or synonym word. The following is the output of the above C# code that displays all the synonyms of the provided word \u0026ldquo;make\u0026rdquo; grouped according to its different meaning.\nSynonyms for **make**: - attain gain hit **make** reach - create **make** produce - do **make** - cause get have induce **make** stimulate - cook fix **make** prepare ready - build construct **make** - brand **make** Next, we will see in a separate article, how to find any word and its synonyms within multiple files of a folder in C#.\nConclusion To conclude, you have learned how to find the possible synonyms of any specific word in C#. Further, we discussed that how to get all the synonyms that are grouped by the different meanings of that same word. You can try to develop your own .NET application for searching synonyms of any word.\nLearn more about the .NET Search Automation API from the documentation. To experience the features, you can have a look at examples on the GitHub repository. Reach us for any query via the forum.\nSee Also Search Synonyms in Multiple Files using C# Classify Customer Feedback using Sentiment Analysis in C# ","permalink":"https://blog.groupdocs.com/search/find-synonyms-of-words-using-csharp/","summary":"A synonym is a word that exactly or nearly means the same as another word. We normally use synonyms to avoid using the same word repeatedly. As a developer, you may need to find out all words with the same meaning for your search purpose or document analysis. This article will guide you about \u003cstrong\u003ehow to find out all the synonyms of any specific word in C# using .NET API\u003c/strong\u003e. Additionally, you can also get different groups of these synonyms that are arranged according to the different meanings of that same word.","title":"Find Synonyms of Words using C#"},{"content":"ZIP Archives are one of the most popular and commonly used compressed file formats. The main reason for using ZIP files is to reduce the total file size and to send multiple files as a single archive. As a developer, you can extract the text, images, and even metadata from the files that are compressed within ZIP archives. In this article, we will discuss how to extract ZIP archives data in Java.\nThe following topics are covered below:\nJava API for ZIP files data extraction. How to extract ZIP files data using Java. Extract Images from Files within ZIP files in Java Java API to Extract ZIP files Data GroupDocs.Parser provides the document parsing solution for developers which also includes the Java API. I will be using this Java API to extract ZIP files data in the example(s) of this article. Additionally, this API allows data extraction of images, raw text, structured and formatted text, and metadata from a long list of supported document formats. These document formats include word-processing documents, PDF, presentations, spreadsheets, emails, databases, eBooks, and many others.\nDownload or Configure You may download the JAR file from the downloads section, or just get the latest repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-parser\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; How to Extract ZIP Files Data in Java To extract the data from any file that is enclosed within the archive, you first need to get all the enclosed files. After that, you can further extract any kind of data from each file. The following steps show how to extract ZIP files data and retrieve text from each enclosed file in Java.\nLoad the ZIP archive using Parser class. Extract the collection of attachments using the getContainer method. Traverse the attachments for the data of each enclosed file. You can get its different kind of data using respective methods of the Parser class. The source code shows how to extract the ZIP files data using Java. The example below extracts the whole text from all the files within the ZIP archive.\nThe output of the above source code shows the retrieved text of one of the PDF files within the ZIP file.\n----------------------------------- Name: sample.pdf File Size: 33370 Bytes ----------------------------------- Heading This is the first paragraph of the sample document that contains some sample text, bulleted list, numbered list and more. • Bullet Item 1 • Bullet Item 2 • Bullet Item 3 This is the second paragraph of the sample document and after this, there is a numbered list: 1. Numbered Item 1 2. Numbered Item 2 3. Numbered Item 3 Extract Images from Files within ZIP files in Java Not limited to just text, you can also similarly extract the images information. The following steps show how to extract ZIP files data and retrieve images information from each enclosed file.\nLoad the ZIP archive using Parser class. Extract the collection of attachments using the getContainer method. Traverse the attachments to get the collection of images within each attachment. Now traverse the images to get the information of each image using PageImageArea class. The following source code shows how to extract images data from the files enclosed within the ZIP files in Java.\nImage# 1 Page: 1 File Type: JPEG Image (.jpeg) Get a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion In short, you have learned how to extract ZIP archives data within your Java applications. Additionally, you can also extract images from the ZIP files using GroupDocs.Parser for Java. Start building your data extraction Java application for compressed files. To learn more about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Extract ZIP Files Data in C# Get Images from Documents using Java Extract Images from EPUB, FB2, CHM eBooks in Java ","permalink":"https://blog.groupdocs.com/parser/extract-zip-files-data-in-java/","summary":"ZIP Archives are one of the most popular and commonly used compressed file formats. The main reason for using ZIP files is to reduce the total file size and to send multiple files as a single archive. As a developer, you can extract the text, images, and even metadata from the files that are compressed within ZIP archives. In this article, we will discuss \u003cstrong\u003ehow to extract the ZIP archives data in Java\u003c/strong\u003e.","title":"Extract ZIP Files Data in Java"},{"content":"XML is a W3C Recommended, self-descriptive language that is designed to store and transport data. A developer can change the XML format into any other better human-readable format like PDF or MS Word document within the .NET application. This article will discuss how to convert XML data into PDF and MS Word reports using C# via simple templates.\nThe following topics are discussed below:\n.NET API for Generating Reports Generate PDF Report from XML Data using C# Generate MS Word DOC/DOCX Report from XML Data using C# Report Generation .NET API – XML to PDF and WORD GroupDocs.Assembly for .NET is the API to automate the report generation from the XML data using DOCX or TXT template. Additionally, it supports the JSON, CSV, and other data sources to convert the data into reports of different file formats.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Assembly Generate PDF Report from XML Data in C# 3 simple steps will lead you to convert XML data into the formatted PDF report.\nLoad your XML data source. Define the template according to the loaded XML data. Finally, provide XML data source and template to a report generation method. XML Data The following XML sample data is used to get it converted to the PDF report. It contains the data of managers and their respective clients with some more details.\n\u0026lt;Managers\u0026gt; \u0026lt;Manager\u0026gt; \u0026lt;Name\u0026gt;John Smith\u0026lt;/Name\u0026gt; \u0026lt;Contract\u0026gt; \u0026lt;Client\u0026gt; \u0026lt;Name\u0026gt;A Company\u0026lt;/Name\u0026gt; \u0026lt;/Client\u0026gt; \u0026lt;Price\u0026gt;1200000\u0026lt;/Price\u0026gt; \u0026lt;/Contract\u0026gt; \u0026lt;Contract\u0026gt; ... \u0026lt;/Contract\u0026gt; ... \u0026lt;/Manager\u0026gt; \u0026lt;Manager\u0026gt; \u0026lt;Name\u0026gt;Tony Anderson\u0026lt;/Name\u0026gt; ... \u0026lt;/Manager\u0026gt; ... \u0026lt;/Managers\u0026gt; Template Define the template in TXT or DOCX format according to your source XML data. I am using the below mentioned template that is created according to the above mentioned XML data of managers. This will make the report generator to iterate over Managers and their respective Clients. After the completion of template, you are almost done. You can use the code below for your report generation.\n\u0026lt;\u0026lt;foreach \\[in managers\\]\u0026gt;\u0026gt;Manager: \u0026lt;\u0026lt;\\[Name\\]\u0026gt;\u0026gt; Contracts: \u0026lt;\u0026lt;foreach \\[in Contract\\]\u0026gt;\u0026gt;- \u0026lt;\u0026lt;\\[Client.Name\\]\u0026gt;\u0026gt; ($\u0026lt;\u0026lt;\\[Price\\]\u0026gt;\u0026gt;) \u0026lt;\u0026lt;/foreach\u0026gt;\u0026gt; \u0026lt;\u0026lt;/foreach\u0026gt;\u0026gt; C# Steps to Generate PDF Report from XML The following steps allow you to automate the generation of PDF reports from your XML data according to your defined template.\nDefine XML data file, text template file, and PDF output report files. Instantiate XMLDataSoure with XML data file. Create DataSourceInfo with defined XML data source. Call the AssembleDocument method to generate the PDF report. The following code implements the above steps and generates a PDF from the XML data source using C#.\nGenerate MS Word Report from XML data in C# In the same vein, you can also create the report in MS Word DOC/DOCX format using the same XML data. There will be no difference in the code from the one we discussed above, except that you have to change the output file name.\nLoad the XML data file. Defining the template in TXT or DOCX format. Set the output report document format as DOCX. Provide the XML data file, template, and output file path to DocumentAssembler to convert the XML to DOCX. The following code converts the XML and generates the DOCX file using the defined template using C#.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, you have learned to convert the XML data into PDF format as a report using C# with the .NET application. Additionally, we discussed the report generation in DOC/DOCX format from the same XML using the template. After reading this series of report generation posts; Generate PDF and MS Word Reports from JSON, CSV, XML, you can develop your own report building .NET application.\nFor more about GroupDocs.Assembly, options, and examples, visit documentation and the GitHub repository. For further queries, contact us via the forum.\nSee Also Convert JSON Data to PDF or Word Report using C# Transform CSV Data into PDF or Word Report using C# ","permalink":"https://blog.groupdocs.com/assembly/generate-reports-from-xml-data-in-csharp/","summary":"\u003cstrong\u003eXML\u003c/strong\u003e is a W3C Recommended, self-descriptive language that is designed to store and transport data. A developer can change the XML format into any other better human-readable format like PDF or MS Word document within the .NET application. This article will discuss how to convert XML data into PDF and MS Word reports using C# using simple templates.","title":"Generate Reports from XML Data in C#"},{"content":"HTML Responsive web pages are meant to look good on different devices. These pages automatically adjust according to different screen sizes. This article will guide you to automate the conversion and view your Word documents as responsive HTML pages within your .NET applications using C#.\nThe following topics will be covered below:\n.NET API for Word and Responsive HTML viewer View Word Documents as Responsive HTML using C# .NET API for Word and Responsive HTML Viewer I will be using GroupDocs.Viewer for .NET to render the Word documents as responsive HTML pages in the examples below. The API is a powerful document viewer .NET API that supports rendering a large number of documents. It allows building HTML Viewer with embedded and external resources, an Image Viewer by rendering as JPG and PNG, and PDF Viewer that is best for printing or sharing with others.\nYou can download the DLLs or MSI installer from the downloads section or install the API by adding its package to your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Viewer Convert Word Documents to View as Responsive HTML using C# If you have MS Word DOC, DOCX documents, and want to render these documents into responsive HTML pages to look good on all the different screen sizes, here are the steps and C# code for you.\nThe following steps show how to convert the Word document (DOC/DOCX) to responsive HTML using .NET API.\nLoad the Word document (DOC/DOCX) using Viewer class. Set the HtmlViewOptions for either embedded or external resources for the html output. Set the RenderResponsive to true. Call the View method of Viewer class to generate the responsive webpages of the loaded Word document. The following just a four-liner source code renders the Word document as responsive HTML with embedded resources using C#.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, you have learned how to render the Word documents as responsive HTML pages using C#. Further, you can generate the HTML pages with embedded and external resources. You must be confident to start building your own document viewer .NET application like the one built by GroupDocs.\nFor more about the API, you can visit documentation and the GitHub repository. In case of further queries and ambiguities, contact the free support on the forum.\nSee Also How to view Word documents as responsive HTML using Java View CAD documents using C# Play and pause animated images in web pages using C# Render Word documents as Minified HTML using C# ","permalink":"https://blog.groupdocs.com/viewer/view-word-documents-as-html-responsive-page-using-csharp/","summary":"HTML Responsive web pages are meant to look good on different devices. These pages automatically adjust according to different screen sizes. This article will guide you to automate the conversion and view your Word documents as responsive HTML pages within your .NET applications using C#.","title":"View Word Documents as HTML Responsive Page using C#"},{"content":"Archives like ZIP, RAR, TAR, GZIP, BZIP2 are commonly used to store more than one file and folder in a single container. Another main reason for archive files is to reduce the total file size using compression algorithms. Just like parsing and extracting data from documents of various file formats, you can treat the archive files in the same way. You can extract the text, images, and even metadata from the files that are compressed within the archives. In this article, we will discuss how to extract the ZIP archives data using C# with your .NET applications.\nThe following topics are covered below:\n.NET API for ZIP files data extraction How to extract ZIP files data .NET API to Extract ZIP files Data GroupDocs.Parser provides the document parsing solution for developers. I will be using its .NET API to extract ZIP files data within the C# examples of this article. The API further allows extraction of text, images, and metadata from a long list of supported document formats like word-processing documents, presentations, spreadsheets, emails, databases, eBooks, and many others.\nYou can download the DLLs or MSI installer from the downloads section or install the API by adding its package to your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Parser How to Extract ZIP Files Data in C# The GroupDocs.Parser for .NET supports data extraction from various compression file formats like ZIP, RAR, TAR, BZIP2, \u0026amp; GZIP. After retrieving the collection of files from the compressed file, you can further extract any kind of data from each file.\nThe following steps show how to extract ZIP files data and retrieve text from each enclosed file in C#.\nLoad the ZIP archive using Parser class. Obtain the attachments using GetContainer method Traverse the collection of attachments. For each attachment, you can get its different kind of data using respective methods of the Parser class. The source code shows how to extract the ZIP files data using C#. In this example, I will be extracting the whole text from all the files within the ZIP archive.\nThe output of the above source code shows the text retrieved from one of the PDF files within the ZIP file.\n----------------------------------- Name: sample.pdf File Size: 33370 Bytes ----------------------------------- Heading This is the first paragraph of the sample document that contains some sample text, bulleted list, numbered list and more. • Bullet Item 1 • Bullet Item 2 • Bullet Item 3 This is the second paragraph of the sample document and after this, there is a numbered list: 1. Numbered Item 1 2. Numbered Item 2 3. Numbered Item 3 Get a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, you learned how to extract ZIP archives data using C# within your .NET application. More specifically you can now extract data from ZIP, RAR, TAR, GZIP, and BZIP files. You can even build your own data extraction .NET application for compressed files. For more details or learning about the API, visit the documentation. For queries, contact us via the forum.\nSee Also Extract Images from Documents using C# Extract Images from EPUB, FB2, CHM eBooks in C# Read PDF Form Fields using C# ","permalink":"https://blog.groupdocs.com/parser/extract-zip-files-data-in-csharp/","summary":"Archives like \u003cstrong\u003eZIP, RAR, TAR, GZIP, BZIP2\u003c/strong\u003e are commonly used to store more than one file and folder in a single container. Another main reason for archive files is to reduce the total file size using compression algorithms. Just like parsing and extracting data from documents of various file formats, you can treat the archive files in the same way. You can extract the text, images, and even metadata from the files that are compressed within the archives. In this article, we will discuss \u003cstrong\u003ehow to extract the ZIP archives data using C#\u003c/strong\u003e with your .NET applications.","title":"Extract ZIP Files Data in C#"},{"content":"\rXLS and XLSX are the most used and well-known formats of MS Excel spreadsheets. You must be well aware of the enhanced capabilities and countless formatting options of Microsoft Office for these formats during this century. On the other hand, CSV files are the comma-separated values, normally used to store tabular data without formatting. These files can be viewed in any text editor and also in MS Excel for tabular format. This article guides to convert Excel spreadsheets of XLS/XLSX format into CSV format and CSV to XLS/XLSX format programmatically using C#.\nThe following topics are covered below:\n.NET API for XLS/XLSX and CSV Conversion Excel to CSV Conversion CSV to Excel Conversion .NET API for Excel Files and CSV Conversion GroupDocs.Conversion provides a .NET API that allows automating the conversion of various documents and image file formats into one another. I will be using this API to convert XLSX into CSV and then CSV into XLS or XLSX using C#. Along with the spreadsheet formats, the API supports back and forth conversion of many other document and image formats like word-processing documents, presentations, eBooks, JPG, PNG, WebP, and many more.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Conversion Convert Excel (XLS/XLSX) to CSV in C# Let\u0026rsquo;s start with the tabular and well-formatted data in XLS or XLSX format, and convert it into unformatted comma-separated CSV format. The following steps allow converting the XLS or XLSX format to CSV within the .NET applications.\nLoad the Excel file (XLS or XLSX) using the Converter class. Set the starting worksheet number and sheet count. (Optional) Set the conversion format of the output file as CSV using SpreadsheetConvertOptions. Call the Convert method to transform the spreadsheet data or and specific pages into CSV format. The following code shows how to convert XLS or XLSX into CSV format in C#.\nConvert CSV to Excel (XLS/XLSX) in C# On the contrary, if you have the comma-separated data and you want to convert it into a well-formatted tabular format, you need to convert that CSV data into XLS or XLSX format. The following steps show how to convert the CSV file into MS Excel XLSX format using C#.\nPrepare the loading options for CSV file and define separator. Load the CSV using the Converter class. Set the conversion format to XLSX using SpreadsheetConvertOptions. Use the Convert method to get the CSV data transformed into XLSX format. The following code shows how to convert your CSV file into XLSX format in C#.\nJust set the conversion format accordingly and provide the appropriate file name with the extension for the XLS or any other file format.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up the article, you learned back and forth conversion of MS Excel spreadsheets XLS/XLSX and CSV files using C#. You can learn more about the .NET Conversion Automation API using the documentation, or by experiencing the examples available on GitHub. Reach us for any query via the forum.\nRelated Article Convert CSV to Excel, and (XLS or XLSX) to CSV in Java See Also Generate Reports from CSV Data using C# Convert Excel Spreadsheets to PDF using C# Convert JSON to CSV and CSV to JSON using C# Insert OLE Objects in Word, Excel, PowerPoint with C# ","permalink":"https://blog.groupdocs.com/conversion/convert-excel-xls-xlsx-and-csv-in-csharp/","summary":"XLS and XLSX are the most used and well-known formats of MS Excel spreadsheets. You must be well aware of the enhanced capabilities and countless formatting options of Microsoft Office for these formats during this century. On the other hand, CSV files are the comma-separated-values, normally used to store tabular data without formatting. These files can be viewed in any text editor and also in MS Excel for tabular format. This article discusses the conversion of the Excel spreadsheets of XLS/XLSX format into CSV format and CSV to XLS/XLSX format programmatically using C#.","title":"Convert Excel to CSV and CSV to Excel Formats in C#"},{"content":"CSV Comma Separated Values files are widely used for exchanging data among applications. When you want this data to be translated into presentable and meaningful information, you need to convert it into some other format. In one of our posts, we have seen how to convert CSV data in Reports using Java. This article will guide you to convert CSV data into PDF and MS Word DOC/DOCX reports using C# using a simple template.\nThe following topics are covered below:\nReport Generation .NET API Generate PDF Report from CSV Data Generate MS Word Report from CSV data Report Generation .NET API GroupDocs.Assembly provides the .NET reporting API to automate the report generation. In this article, I have used this GroupDocs.Assembly for .NET for generating reports from the selected CSV data and a TXT format template. It also supports multiple data sources like JSON, XML, and also from MS Word, Excel, and PowerPoint files as data files.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Assembly Generate PDF Report from CSV Data in C# Let\u0026rsquo;s begin by transforming the comma-separated data into a presentable PDF. The following steps will guide you to convert the CSV data into a formatted PDF report.\nLoad CSV data source. Define template according to the CSV data. Provide CSV data source and template to simple method to generate PDF report. CSV Data To get the PDF report, I will be using the following sample CSV data of different individuals along with their respective data of ages and date of birth.\nName,Age,Birth John Doe,32,4/1/1989 16:00 Jane Doe,29,1/31/1992 7:00 John Smith,53,3/8/1968 13:00 Template The next step would be to define the template in TXT or DOCX format. The following is the template that is used in this example and allows iterating the list of persons with their details.\n\u0026lt;\u0026lt;foreach \\[in persons\\]\u0026gt;\u0026gt;Name: \u0026lt;\u0026lt;\\[Name\\]\u0026gt;\u0026gt;, Age: \u0026lt;\u0026lt;\\[Age\\]\u0026gt;\u0026gt;, Date of Birth: \u0026lt;\u0026lt;\\[Birth\\]:\u0026#34;dd.MM.yyyy\u0026#34;\u0026gt;\u0026gt; \u0026lt;\u0026lt;/foreach\u0026gt;\u0026gt; Average age: \u0026lt;\u0026lt;\\[persons.Average(p =\u0026gt; p.Age)\\]\u0026gt;\u0026gt; Steps to Generate PDF Report from CSV in C# The following steps guide about converting the CSV data into a PDF report according to the defined template using C# with the .NET Reporting API.\nDefine CSV data file, template file, and the PDF output file paths. Instantiate CsvDataSoure with CSV data file and loading options. Create DataSourceInfo with the defined data source. Using the DocumentAssembler, call the AssembleDocument method with defined template file, output file and DataSourceInfo to get the PDF report as output. The following code shows how to convert CSV data to PDF report in C#.\nGenerate MS Word Report from CSV data in C# If you want any manual editing in the automated generated report, you can also get the output as an MS Word document. The process will be very similar to the above PDF report generation. The following steps will guide to generate the DOC/DOCX report from the CSV data:\nLoad the CSV data from file. Defining the template in TXT or DOCX format. Set the output report document format as DOC/DOCX. Call the AssembleDocument method to generate MS Word DOCX report from the CSV data. The following code shows how to convert CSV data into a DOCX report using C#.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, you have learned to convert the CSV data into PDF and MS Word reports using C#. You must now be confident building your own .NET report generator application by converting CSV data into PDF format. Similarly, you can also generate reports using other data sources like JSON and XML.\nFor more about the API, you can visit documentation and the GitHub repository. In case of further queries and ambiguities, contact the free support on the forum.\nSee Also Generate Reports from JSON Data using C# Generate Reports from CSV Data using Java ","permalink":"https://blog.groupdocs.com/assembly/generate-reports-from-csv-data-in-csharp/","summary":"CSV Comma Separated Values files are widely used for exchanging data among applications. When you want this data to be translated into presentable and meaningful information, you need to convert it into some other format. In one of our posts, we have seen how to convert CSV data in Reports using Java. This article will guide you to \u003cstrong\u003econvert CSV data into PDF and MS Word DOC/DOCX reports using C#\u003c/strong\u003e using a simple template.","title":"Generate Reports from CSV Data using C#"},{"content":"Barcoding is one of the ways to present the data in a machine-readable format. Barcodes are normally used as the identification for a large number of items. In this article, you will learn how to generate barcodes in Java. Further, you will see, how the generated barcodes can be applied to any of your documents as well as images using Java Signature API within your applications.\nThe following topics are covered below:\nBarcode Generator API for Java Apply Barcode to documents in Java Apply Barcode to images in Java Java API for Generating Barcodes GroupDocs.Signature showcases Java API that allows signing documents, images, or files of different file formats. Using this API, you can easily generate and apply different types of signatures like barcodes, QR Codes, text, image, metadata, digital signatures, stamps, form field signatures, and more. The API also allows customizing the signature in many ways.\nDownload or Configure You may download the JAR file from the downloads section, or just get the latest repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-signature\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.5\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Generate Barcode in Java for Documents and Images Barcodes can be programmatically generated with the customized text, appearance, and different encoding types. Some of the supported barcode types include Code 32, Code 128, DotCode, GS1, ISBN, PDF417, Postnet, UPCA, and many more. These barcodes can be applied to a large list of supported document and image formats.\nThe following are the main steps to apply barcodes to any document or image.\nLoad the document or image. Generate the barcode along with text, appearance, encoding and other properties. Attach the generated barcode to the selected file. Generate Barcode \u0026amp; Apply to Documents in Java Generating barcodes and customizing them according to the need is not a complex procedure. Whether the target documents are an MS Word document, PDF file, Excel spreadsheet, or presentation, the steps to add barcode would be the same for all the different formats. The following steps guide how to generate barcodes and apply/attach these to any document in Java.\nLoad the document (PDF, Word document, spreadsheet, PPT, …) using Signature class. Define barcode options using BarcodeSignOptions class. Set barcode properties like encoding type, position, size, background or fore color, font etc. Call the sign method to attach the generated barcode with the loaded document. The following source code generates a barcode and attaches it to a PDF document using Java.\nGenerate Barcode \u0026amp; Apply to Images in Java In a very similar manner, you can apply barcodes to images. Whether you have a JPG, PNG, WebP image, or any other image format like GIF, TIF, CDR, SVG, or any other, you can attach the barcode to the loaded image.\nThe following are the step to generate barcodes and apply these to any image using Java API.\nLoad your image (JPG, PNG, WebP, …) using Signature. Prepare the barcode options using BarcodeSignOptions. Customize the barcode by setting text, encoding type, position, size, appearance, etc. Apply barcode to sign the image using sign method. The following source code generates a barcode and attaches it to a JPG image in Java.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, you have learned how to generate the barcodes in Java. Further, you have seen how to add these generated barcodes to your images and documents. Now you can develop your own barcode generator Java application.\nYou can learn more about the Java Signature API using the documentation or by examples available on GitHub. Get in touch with us at the forum.\nSee Also Generate QR Codes for images and documents in Java Generate QR Codes in C# for documents and images ","permalink":"https://blog.groupdocs.com/signature/generate-barcode-in-java-to-sign-documents-and-images/","summary":"Barcoding is one of the ways to present the data in a machine-readable format. Barcodes are normally used as the identification for a large number of items. In this article, you will learn \u003cstrong\u003ehow to generate barcodes in Java\u003c/strong\u003e. Further, you will see, how the generated barcodes can be applied to any of your \u003cstrong\u003edocuments as well as images\u003c/strong\u003e using Java Signature API within your applications.","title":"Generate Barcode in Java – Add Barcode to Documents and Images"},{"content":"Full-text search is a way to search a text/query within a collection of documents. This approach quickly finds all instances of a term/phrase and it works by using text indexes. In this article, we will learn how to programmatically search full-text in documents using Java.\nAfter this, you can implement various search techniques and build your search solution for word-processing documents, spreadsheets, presentations, HTML files, PDF files, eBooks, email messages, ZIP archives, and many other document formats.\nThe following topics are covered below:\nJava API for Full-Text Search Full-Text Search Perform Search in Java Highlight Search Results Java API for Full-Text Searching GroupDocs.Search provides a full-text search Java API that can be integrated into any application without any third-party tool and software dependency. It allows you to search over a large list of document formats. Some of the search techniques that can be performed using the API are as follows:\nCase Sensitive Search Regular Expression Search Faceted Search Fuzzy Search Homophone Search Synonym Search Download or Configure You may download the JAR file from the downloads section, or just get the latest repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-search\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Full-Text Search using Java There are two steps to perform the search within files stored in a folder.\nIndexing Perform Search Index files using Java An index possesses scanned text of all the documents. Therefore, when you are going to perform a search operation, only the index is referenced, rather than the text of the original documents. To make it possible to search instantly across thousands of documents with the same or different file formats, you need to create an index and add these documents to it. When documents are indexed, the index is ready to handle the search queries.\nThe following simple two lines create an index and also add the documents folder to the index.\nIndex index = new Index(\u0026#34;indexingFolderPath\u0026#34;); index.add(\u0026#34;documentsFolderPath\u0026#34;); Perform Search in Java After indexing multiple documents of the same or different formats like (Word, PDF, Excel, and HTML), we can move ahead to process a specific search query (search term “Draw”) over them. The following are the steps for how to perform text search on multiple documents within a folder using Java:\nSpecify the source folder of documents and index folder. Create Index using the index folder. Add the source folder to the index. Prepare the query string. Perform a search using the search method of Index class. Traverse each search results for the properties of each document. The following source code performs text search in Java on all the documents of the provided folder.\nWe will get the document path and the number of occurrences of the search terms in all the documents with that specified folder. Here is the screenshot for visualization.\nHighlight Text Search Results in Java Let’s now perform the same full-text search and also highlight all the occurrences that match your query.\nThe following steps show how to highlight the text search results:\nCreate Indexand add the documents folder to the index. Prepare the query string. Search the document folder using the search method. While traversing the results, create the highlighter using the HtmlHighlighter. Use the highlight method to highlight the search results. The following code generates the HTML output with highlighted search results using Java.\nAs an output, we will get multiple HTML files. Each file will show the content of a separate document (e.g. excel.xlsx, source.docx, target.docx) with highlighted search terms/words. Given below is the highlighted HTML output of a DOCX file, TXT file, and PDF file obtained using the above code.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion In this article, we have learned to search text within multiple documents of a folder in Java. Further, we discussed how to programmatically highlight the text of search results in HTML format for MS Word files, TXT files, and PDF files using GroupDocs.Search for Java.\nYou may learn more about the API using documentation. Many more examples are available at GitHub. For queries, contact us via the forum.\nSee Also Build your full-text search solution in C# Word Search and Replace Text in PDF in Java ","permalink":"https://blog.groupdocs.com/search/build-full-text-search-solution-in-java/","summary":"Full-text search is a way to search a text/query within a collection of documents. This approach quickly finds all instances of a term/phrase and it works by using text indexes. In this article, we will learn how to programmatically search full-text in documents using Java.","title":"Build Full-Text Search Solution in Java"},{"content":"\rCSV contains the comma-separated values, normally used to store tabular data without formatting. These files can be viewed in any text editor and also in MS Excel for tabular format. On the other hand, the most used formats for MS Excel files are XLS and XLSX. These formats support countless formatting options. This article discusses the conversion of the Excel spreadsheets of XLS/XLSX format to CSV format and CSV to XLS/XLSX format programmatically using Java.\nThe following topics are covered below:\nJava API for XLS/XLSX and CSV Conversion Excel to CSV Conversion CSV to Excel Conversion Java API for Excel Files and CSV Conversion GroupDocs.Conversion offers Java API that allows the conversion of spreadsheet formats into one another. I will be using this API for converting XLSX into CSV and also CSV into XLS or XLSX using Java. Additionally, the API allows the back and forth conversion of many other document and image formats like word-processing documents, presentations, eBooks, JPG, PNG, WebP, and many more.\nDownload or Configure You may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.7\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert CSV to Excel (XLS/XLSX) in Java Transformation of comma-separated data into the tabular form for a better presentation requires conversion from CSV to XLS/XLSX format. The following steps allow converting the CSV files to XLS/XLSX format within the Java application.\nPrepare the load options for loading the CSV file. Load the CSV using the Converter class. Set the conversion format to XLSX using SpreadsheetConvertOptions. Call the convert method to get the CSV data transformed into XLSX format. The following code shows how to convert your CSV file into XLSX format in Java.\nFor the XLS format, just set the conversion format accordingly and provide the appropriate file name with the extension.\nConvert Excel (XLS/XLSX) to CSV in Java Similarly, if formatting is not required, you can remove the styles and visuals and simply keep the comma-separated data by converting the XLS/XLSX to CSV format and saving the space.\nThe following steps allow converting the XLS or XLSX format to CSV within the Java applications.\nLoad the Excel file (XLS or XLSX) using the Converter class. Set the conversion format to CSV using SpreadsheetConvertOptions. Call the convert method to transform the spreadsheet data into CSV format. The following code shows how to convert XLS or XLSX to CSV format in Java.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, you learned how to convert the MS Excel files to CSV format and also the conversion of CSV files to XLS and XLSX format programmatically with your Java applications. You can learn more about the Java Conversion API using the documentation, or by examples available on GitHub. Get in touch with us for any query at the forum.\nSee Also Generate Reports from CSV Data in Java Create Reports from XML Data in Java Convert Excel Spreadsheets to PDF in Java Convert PDF, Word documents to Excel XLS, XLSX in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-csv-and-excel-xls-xlsx-in-java/","summary":"CSV contains the comma-separated values, normally used to store tabular data without formatting. These files can be viewed in any text editor and also in MS Excel for tabular format. On the other hand, the most used formats for MS Excel files are XLS and XLSX. These formats support countless formatting options. This article discusses the conversion of the Excel spreadsheets of XLS/XLSX format to CSV format and CSV to XLS/XLSX format programmatically using Java.","title":"Convert CSV to Excel (XLS XLSX) \u0026 Vice Versa in Java"},{"content":"\rTo protect your files from any illegal use or to apply branding to your documents, watermarks can be used. In this article, you will learn to programmatically add the watermarks to PDF files using C#. We will separately look into adding watermark text and image watermarks.\nThe following topics are covered below:\n.NET Watermarking API Apply Text Watermark to PDF Apply Image Watermark to PDF .NET Watermarking API for PDF files GroupDocs.Watermark provides .NET watermarking API that allows working with text as well as image watermarks within the PDF files. Along with the PDF files, the API allows adding, removing, and extraction of watermarks for word-processing documents, spreadsheets, presentations, email messages, images, Visio drawings, and many other formats. From the documentation, you may further check the features and supported file formats.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Watermark Add Text Watermark to PDF using C# The watermark text can be applied to PDF files on all the pages or any selective page. It can be added by inserting the formatted text on the required position.\nThe following steps show how to add watermark text to PDF files.\nLoad the PDF document using Watermarker class. Initialize the text watermark using TextWatermark class. Set the appearance by adding rotation angle, alignment, opacity, foreground and background colors, etc. Set the targetted page index (Optional). If you do not set the index, the watermark will be applied to all pages by default. Add the text watermark to the loaded PDF file. Save the update file with watermark using the appropriate Save method. The source code shows how to add text watermark to PDF files using C#.\nThe output of the above source code shows the text watermark on both the pages of the given PDF file.\nAdd Image Watermark to PDF using C# Similarly, you can add images to the PDF file as we just added the text watermark.\nThe following steps show how to add an image to PDF files as watermarks.\nLoad the PDF document using Watermarker class. Initialize the image watermark using ImageWatermark class. Set the appearance by adjusting the alignment, rotation, opacity, and other options. Set the targetted page index. (Optional) Add the image watermark to the PDF file. Save the watermarked file using the appropriate Save method. The source code shows how to add image watermark to PDF files using C#.\nThe output of the above source code shows the image watermark on the second page of the given PDF file.\nGet a Free API License You can get a free temporary license to use the API without the evaluation limitations.\nConclusion To conclude, you learned how to add watermarks to PDF files using C#. We have seen adding watermark text as well as images on PDF files as watermarks. For more details or learning about the API, visit documentation. For queries, contact us via the forum.\nSee Also Add Watermark to Images using C# Add Watermark to Presentation \u0026amp; Slides using C# Watermark Excel Sheets using C# Password Protection to Lock \u0026amp; Unlock PDF Files in C# ","permalink":"https://blog.groupdocs.com/watermark/watermark-pdf-files-using-csharp/","summary":"To protect your files from any illegal use or to apply branding to your documents, watermarks can be used . In this article, you will learn to programmatically add the watermarks to PDF files using C#. We will separately looking into adding watermark text and image watermarks.","title":"Watermark PDF Files using C#"},{"content":"HEIC (High-Efficiency Image Container) is a container that can contain High-Efficiency Image Format HEIF images. XMP is an XML-based metadata standard, that can store metadata properties as name/value pairs. However, EXIF (Exchangeable Image File Format) is the standard and defines how to store metadata properties in the most common images and audio formats. In this article, we will learn how to extract, update, and remove the XMP and EXIP metadata of the HEIF/HEIC images using C# within .NET applications.\nThe following topics are covered below:\n.NET API for EXIF, XMP Metadata Read EXIF Data of HEIC/HEIF Images Read XMP data of HEIC/HEIF Images .NET API for XMP and EXIF Metadata GroupDocs.Metadata provides .NET API to automate metadata management within .NET applications. The API allows to read, update, add, clean/remove, and traverse the metadata for many file formats. Various metadata standards like EXIF, IPTC, and XMP are supported by the API. You can also visit the documentation for the complete list of supported file formats for metadata manipulation.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Metadata Read EXIF data of HEIC / HEIF Images in C# The following are the steps to read and extract EXIF data of HEIC and HEIF images.\nLoad the HEIF or HEIC image using the Metadata class. Get the root package. Retrieve the EXIF package from the root package. Traverse the EXIF data properties. Furthermore, you can get the IFD (Image File Directory) and GPS information from the EXIF package. The following code shows how to get EXIF data, IFD and GPS metadata information of the HEIC image using C#.\nRead XMP data of HEIC / HEIF Images in C# The following steps reads XMP metadata of HEIC or HEIF images.\nLoad the HEIF or HEIC image using the Metadata class. Get the root package using the getRootPackage method. From the root package, you can get the XMP basic information. Further, you can get the DCMI Dublin Core information. Additionally, you can get Photoshop information using the getPhotoshop method. The following source code shows how to get XMP basic, DCMI, and Photoshop information in C#.\nLikewise, there are many setter methods to set or update different XMP properties. You can even provide your own key-value pair to set the custom XMP package property.\nRemove EXIF and XMP Metadata of HEIC/HEIF Images in C# You can just set the respective EXIF package or XMP package to null to remove all the metadata properties.\nThe following code removes the EXIF data of HEIC images in C#.\nThe following code removes the XMP data of HEIC images in C#.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, we have learned to extract, update, remove EXIF and XMP metadata from the HEIF/HEIC images in C#. Furthermore, you have seen how to get IFD and GPS information from these images. Now you can easily get this information and also start building your own applications like GroupDocs.Metadata App Product Family to automate metadata information.\nFor more information, options, and examples, you can visit the documentation and the GitHub repository. For further queries, contact us on the support forum.\nSee Also Extract RIFF INFO and Metadata of WAV files in C# Remove Metadata from Document and Image files using C# ","permalink":"https://blog.groupdocs.com/metadata/manage-xmp-and-exif-data-of-heif-heic-images-using-csharp/","summary":"\u003cstrong\u003eHEIC\u003c/strong\u003e (High-Efficiency Image Container) is a container that can contain High-Efficiency Image Format \u003cstrong\u003eHEIF\u003c/strong\u003e images. \u003cstrong\u003eXMP\u003c/strong\u003e is an XML-based metadata standard, that can store metadata properties as name/value pairs. However, \u003cstrong\u003eEXIF\u003c/strong\u003e (Exchangeable Image File Format) is the standard and defines how to store metadata properties in the most common images and audio formats.  In this article, we will learn \u003cstrong\u003ehow to extract, update, and remove the XMP and EXIP metadata of the HEIF/HEIC images\u003c/strong\u003e using C# within .NET applications.","title":"Manage XMP and EXIF Data of HEIF/HEIC Images using C#"},{"content":"Barcode is a way to present the data in a machine-readable format. Barcodes are normally used for the quick identification of a large number of items. In this article, you will learn how to generate barcodes within .NET applications. Further, you will see, how barcodes can be applied to any of your documents and images using C# barcode generator.\nThe following topics are covered below:\nBarcode Generator API for .NET Generate \u0026amp; apply barcode to documents Generate \u0026amp; apply barcode to images .NET API for Generating Barcodes GroupDocs.Signature has the .NET API that allows you to sign your documents, images, or files of different file formats. Using this API, you can easily apply different types of signatures like QR Codes, barcodes, text, image, metadata, digital signatures, stamps, electronic signatures. Further, you can customize the appearance of the signature in many ways.\nYou can download the DLLs or MSI installer from the downloads section or install the API for your .NET application via NuGet. You may also use the following command from the Package Manager.\nPM\u0026gt; Install-Package GroupDocs.Signature Barcodes for Documents and Images using C# Barcodes can be programmatically generated with the customized text, appearance, and different encoding types. Some of the supported barcode types include Code 32, Code 128, DotCode, GS1, ISBN, PDF417, Pharmacode, Postnet, UPCA, and many more. These barcodes can be applied to a large list of supported document and image formats.\nThe following are the main step to apply barcodes on any document or image.\nLoad the document or image. Create the barcode along with text, appearance, encoding and other properties. Apply it on the loaded file. Generate Barcode in C# - Apply to Documents The following are the step to create barcodes and apply these to any document. Whether the target documents are an MS Word document, PDF file, Excel Spreadsheet, or Presentation, the steps to add barcode would be the same for all the different formats.\nLoad the document (PDF, Word Doc, Spreadsheet, PPT, \u0026hellip;) using Signature class. Setup barcode options using BarcodeSignOptions class. Set barcode properties like encoding type, position, size, etc. Call the Sign method to apply barcode and sign the loaded document. The following source code generates a barcode and attaches it to a PDF document using C#.\nGenerate Barcode in C# - Apply to Images Similarly, the way to apply barcodes on images is not different. Just load the right image, the rest of the steps and code will remain the same as used for applying barcodes to the documents above.\nThe following are the step to generate barcodes and apply these to any image.\nLoad the image (JPG, PNG, WebP, \u0026hellip;) using Signature. Prepare barcode options using BarcodeSignOptions. Customize the barcode by setting text, encoding type, position, size, appearance, etc. Apply barcode to sign the image using Sign method. The following source code generates a barcode and attaches it to a JPG image using C#.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, you learned how to generate the barcode in C#. Further, you have seen how to add these barcodes to your images and documents. Now you can develop your own C# barcode generator.\nYou can learn more about the .NET Signature API using the documentation, or by examples available on GitHub. Get in touch with us at the forum.\nSee Also Generate QR Codes in C# and apply to documents and images as signature Generate and apply QR Codes on images and documents in Java ","permalink":"https://blog.groupdocs.com/signature/barcode-generator-using-csharp/","summary":"Barcode is way to present the data in machine readable format. Barcodes are normally used for quick identification of large number of items. In this article, you will learn how to generate barcodes within .NET applications. Further you will see, how the generated barcodes can be applied to any of your documents and images using C#.","title":"Generate Barcode in C# - Add Barcode to Documents and Images"},{"content":"XML is an eXtensive Markup Language that is self-descriptive, W3C Recommended, and designed to store and transport data. After receiving the data in XML format, as a developer, you can convert it into any other better human-readable format like PDF or MS Word document. This article will guide you to convert XML data into PDF and MS Word reports in Java using simple templates.\nThe following topics are discussed below:\nJava API for Generating Reports PDF Report from XML Data using Java MS Word DOC/DOCX Report from XML Data using Java Report Generation Java API - XML to PDF and WORD GroupDocs.Assembly provides Java API to automate the report generation from the XML data using DOCX or TXT template. It further supports the JSON, CSV, and other data sources to convert the data into presentable reports of different file formats.\nDownload or Configure You may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-assembly\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.4\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Generate PDF Report from XML Data in Java Let’s quickly jumps to the steps that will lead you to convert XML data into the formatted PDF report.\nLoad the XML data source Define the template according to your XML data Provide XML data source and template to a method for report generation. XML Data For the PDF report generation, the following XML sample data is used. It contains the data of managers and their respective clients with details.\n\u0026lt;Managers\u0026gt; \u0026lt;Manager\u0026gt; \u0026lt;Name\u0026gt;John Smith\u0026lt;/Name\u0026gt; \u0026lt;Contract\u0026gt; \u0026lt;Client\u0026gt; \u0026lt;Name\u0026gt;A Company\u0026lt;/Name\u0026gt; \u0026lt;/Client\u0026gt; \u0026lt;Price\u0026gt;1200000\u0026lt;/Price\u0026gt; \u0026lt;/Contract\u0026gt; \u0026lt;Contract\u0026gt; ... \u0026lt;/Contract\u0026gt; ... \u0026lt;/Manager\u0026gt; \u0026lt;Manager\u0026gt; \u0026lt;Name\u0026gt;Tony Anderson\u0026lt;/Name\u0026gt; ... \u0026lt;/Manager\u0026gt; ... \u0026lt;/Managers\u0026gt; Template Define the following template in TXT or DOCX format. This allows iteration over Managers and their respective Clients. After that, use the code mentioned below for report generation.\n\u0026lt;\u0026lt;foreach \\[in managers\\]\u0026gt;\u0026gt;Manager: \u0026lt;\u0026lt;\\[Name\\]\u0026gt;\u0026gt; Contracts: \u0026lt;\u0026lt;foreach \\[in Contract\\]\u0026gt;\u0026gt;- \u0026lt;\u0026lt;\\[Client.Name\\]\u0026gt;\u0026gt; ($\u0026lt;\u0026lt;\\[Price\\]\u0026gt;\u0026gt;) \u0026lt;\u0026lt;/foreach\u0026gt;\u0026gt; \u0026lt;\u0026lt;/foreach\u0026gt;\u0026gt; Java Steps to Generate PDF Report from XML The following steps and the code allows automating the generation of PDF reports from the XML data as per the defined template.\nDefine XML data file, text template file, and PDF output report files. Instantiate XMLDataSoure with XML data file. Create DataSourceInfo with defined XML data source. Call the assembleDocument method to generate the PDF report. The following code implements the above steps and generates a PDF from the XML data source in Java.\nGenerate MS Word Report from XML data in Java Likewise, you can create the MS Word DOC/DOCX report from the same XML data in Java. There will be no difference, except to change the output file name.\nLoad the XML data file. Defining the template in TXT or DOCX format. Set the output report document format as DOCX. Provide the XML data file, template, and output file path to DocumentAssembler to convert the XML to DOCX. The following code converts the XML and generates the DOCX file using the defined template in Java.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, you have learned to convert your XML data into PDF format as a report in Java. Additionally, you have seen the report generation in DOC/DOCX format from the same XML using the template. After reading the series, Generate PDF and MS Word Reports from JSON, CSV, XML, you should be comfortable in building your own report builder Java application.\nSimilarly, you can convert many other data sources to report. For more details, options, and examples, you can visit documentation and the GitHub repository. In case of further queries, contact us via the forum.\nSee Also Convert JSON Data to PDF or Word Report using Java Transform CSV Data into PDF or Word Report using Java ","permalink":"https://blog.groupdocs.com/assembly/generate-reports-from-xml-data-in-java/","summary":"\u003cstrong\u003eXML\u003c/strong\u003e is an e\u003cstrong\u003eX\u003c/strong\u003etensive \u003cstrong\u003eM\u003c/strong\u003earkup \u003cstrong\u003eL\u003c/strong\u003eanguage that is self-descriptive, W3C Recommended, and designed to store and transport data. After receiving the data in XML format, as a developer, you can convert it into any other better human-readable format like PDF or MS Word document. This article will guide you to convert XML data into PDF and MS Word reports in Java using simple templates.","title":"Generate Reports from XML Data in Java"},{"content":"The Comma Separated Values (CSV) is a file format for storing the data in the form of plain text where the values are separated by commas. CSV is widely used for exchanging data among applications. As a developer, we often need to convert the large CSV data into a presentable format. This article will guide you to convert CSV data into PDF and MS Word reports in Java using a simple template.\nThe following topics are covered below:\nReport Generation Java API Generate PDF Report from CSV Data Generate MS Word Report from CSV data Report Generation Java API GroupDocs.Assembly for Java is the report generation API that I have used in this article to generate reports from the selected CSV data and a template in TXT format. It also supports report generation automation from multiple data sources like JSON, XML, and also from MS Word, Excel, and PowerPoint files as data files.\nDownload or Configure You may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-assembly\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.4\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Generate PDF Report from CSV Data in Java Let’s start with the transformation of data into presentable PDF. The following steps will lead you to convert CSV data into a formatted PDF report.\nLoad CSV data source Define template according to the CSV data Provide CSV data source and template to simple method to generate PDF report. CSV Data For the PDF report generation, I will be using the following sample CSV data of different persons along with their respective ages and date of birth.\nName,Age,Birth John Doe,32,4/1/1989 16:00 Jane Doe,29,1/31/1992 7:00 John Smith,53,3/8/1968 13:00 Template Define the following template in TXT or DOCX format. This allows iterating the list of persons with their details. After that, you can jump to the code for report generation.\n\u0026lt;\u0026lt;foreach \\[in persons\\]\u0026gt;\u0026gt;Name: \u0026lt;\u0026lt;\\[Name\\]\u0026gt;\u0026gt;, Age: \u0026lt;\u0026lt;\\[Age\\]\u0026gt;\u0026gt;, Date of Birth: \u0026lt;\u0026lt;\\[Birth\\]:\u0026#34;dd.MM.yyyy\u0026#34;\u0026gt;\u0026gt; \u0026lt;\u0026lt;/foreach\u0026gt;\u0026gt; Average age: \u0026lt;\u0026lt;\\[persons.**average**(p =\u0026gt; p.Age)\\]\u0026gt;\u0026gt; Java Steps to Generate PDF Report from CSV The following steps explain the automatic conversion of CSV data into a PDF report according to the defined template.\nDefine CSV data file, .txt template file, and PDF output report file paths. Instantiate CsvDataSoure with CSV data file. Create DataSourceInfo with the defined CsvDataSource. Call the assembleDocument method of the DocumentAssembler class to get the generated PDF report. The following code shows how to convert CSV data to PDF report in Java.\nGenerate MS Word Report from CSV data in Java It is very similar to the above PDF report generation, you can easily create the MS Word DOC/DOCX report from the CSV data:\nLoad the CSV data from file. Defining the template in TXT or DOCX format. Set the output report document format as DOC/DOCX. The rest of the code will remain the same to generate MS Word DOCX report from the CSV data. The following code shows how to convert CSV data to DOCX report in Java.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, you have learned to convert the CSV data into PDF and MS Word reports in Java. I hope you are now comfortable building your own Java-based application to generate reports by converting CSV data to PDF format. Similarly, you can generate reports using data sources like JSON and XML.\nFor more about the API, you can visit documentation and the GitHub repository. In case of further queries and ambiguities, contact the free support on the forum.\nSee Also Generate Reports from JSON Data using Java Create Reports from CSV Data using C# Generate Reports from JSON Data using C# ","permalink":"https://blog.groupdocs.com/assembly/generate-reports-from-csv-data-in-java/","summary":"The Comma Separated Values (CSV) is a file format for storing the data in the form of plain text where the values are separated by commas. CSV is widely used for exchanging data among applications. As a developer, we often need to convert the large CSV data into a presentable format. This article will guide you to \u003cstrong\u003econvert CSV data into PDF and MS Word reports in Java\u003c/strong\u003e using a simple template.","title":"Generate Reports from CSV Data in Java"},{"content":"\rWhether you want to apply branding to your documents or you want to protect the files from any illegal use, the watermark does the job for you. In this article, you will learn to programmatically add the watermarks to your PDF files using Java.\nThe following topics are covered below:\nJava Watermarking API Apply Text Watermark to PDF Apply Image Watermark to PDF Watermarking API for Java GroupDocs.Watermark for Java is a watermarking API that allows working with text and image watermarks within the PDF files. Along with the PDF files, the API allows adding, removing, and extraction of watermarks for word-processing documents, spreadsheets, presentations, email messages, images, Visio drawings, and many other formats. From the documentation, you may further check the features and supported file formats.\nDownload and Configure Get the PDF watermarking library from the downloads section. For Maven-based Java applications, add the following configuration within pom.xml. Later, you can try the examples of this article as well as many more from GitHub. For the details, you may also visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-watermark\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Add Text Watermark to PDF using Java The text watermark can be applied to PDF files by adding the formatted text on either all the pages or any selective page on the set location.\nThe following steps show how to add text to PDF files as watermark.\nLoad the PDF document using Watermarker class. Initialize the text watermark using TextWatermark class. Set the appearance by changing rotation angle, x-y positions, opacity, foreground and background colors, etc. Set the targetted page index (Optional). If you do not set the index, the watermark will be applied to all pages by default. Add the text watermark to Watermarker. Save the watermarked file using the appropriate save method. The source code shows how to add text watermark to PDF files in Java.\nThe output of the above source code shows the text watermark on both the pages of the given PDF file.\nAdd Image Watermark to PDF using Java Similarly, you can add images to any PDF file at any location just like the text watermark options.\nThe following steps show how to add image to PDF files as watermark.\nLoad the PDF document using Watermarker class. Initialize the image watermark using ImageWatermark class. Set the appearance by adjusting the rotation angle, x-y positions, opacity, and other options. Set the targetted page index. (Optional) Add the image watermark to Watermarker. Save the watermarked file using the appropriate save method. The source code shows how to add image watermark to PDF files using Java.\nThe output of the above source code shows the image watermark on the second page of the given PDF file.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To sum up, you learned to apply watermarks to PDF files using Java. We discussed adding text as well as images on PDF files as watermarks. For more details or learning about the API, visit documentation. For queries, contact us via the forum.\nSee Also Add Watermark to Images in Java Watermark Excel Sheets in Java Add Watermark to Presentations in Java ","permalink":"https://blog.groupdocs.com/watermark/add-watermark-to-pdf-in-java/","summary":"Whether you want to apply branding to your documents or you want to protect our files from any illegal use, the watermark does the job for you. In this article, you will learn to programmatically add the watermarks to your PDF files using Java.","title":"Watermark PDF Files in Java"},{"content":"Forget to discuss documents\u0026rsquo; content and feedback in long email threads. Simply use annotations to markup documents with messages and replies. In this article, you will learn how to programmatically add and remove annotations to markup Word documents in C# with your .NET applications.\nThe following are the topics discussed briefly below:\n.NET API for Word DOC/DOCX Annotations Add Annotations to Word Arrow annotations Rectangle annotations Ellipse or Oval annotations Distance annotations Remove Annotations from Word Files .NET API to Annotate and Markup Word Files GroupDocs.Annotation provides the .NET API to work with the annotations for your documents and images within your .NET applications. The API allows you to add, remove, and extract annotations from Word documents. Furthermore, it supports spreadsheets, presentations, images, PDF files, webpages, email messages, Visio drawings. Some AutoCAD drawings and digital imaging formats like DICOM are also on the list. For the complete list of supported document formats for annotation, you can visit the documentation.\nDownload the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet. You may also use the following command from the Package Manager.\nPM\u0026gt; Install-Package GroupDocs.Annotation Add Annotations to Word in C# Let\u0026rsquo;s add some of the different kinds of annotations to the Word documents. There are many different types of annotation, so we will be covering only a few in this article.\nThere are some of the supported annotation types, you may learn about each annotation individually.\nArea / Rectangle annotation Arrow Underline Watermark Distance Strikeout Text Field Ellipse Highlight Link Point Polyline Replacement Resource Redaction Text Redaction Add Arrow Annotation to Word using C# The following are the steps to add arrow annotation to a Word document in C#.\nLoad the document using the Annotator class. Initialize arrow annotation with ArrowAnnotation class. Adjust the position, size, page number of the arrow annotation. Add the created arrow annotation using Add method. Save the annotated Word document to the path using the Save method. The following code sample shows how to add an arrow annotation to a Word document using C#.\nInsert Rectangle or Area Annotation to Word using C# Customizations can be done for any annotation while adding it to the document. The following are the steps to add rectangle or area annotation to a DOC/DOCX document with some customizations. It is very similar to adding Arrow annotations but uses AreaAnnotation class this time.\nLoad the DOC/DOCX document using the Annotator class. Initialize rectangle annotation using AreaAnnotation class. Adjust the position, size, and color of the rectangle. Set other properties like page number, background, opacity, style, pen width, messages, and time. Add the created rectangle annotation to the Annotator. Save the annotated file to the path using the Save method. The following code sample shows how to add rectangle/area annotation to a Word document using C#.\nAdd Oval or Ellipse Annotation to Word using C# The following are the steps to add oval annotation or ellipse annotation to a document in C#.\nLoad the DOC/DOCX document using the Annotator class. Initialize ellipse annotation using EllipseAnnotation class. Set the position and size of the initialized ellipse annotation. Add the created ellipse annotation to the Annotator object. Provide the path and save the annotated Word file using the Save method. The following code sample shows how to add oval or ellipse annotation to a Word document using C#.\nInsert Distance Annotation to Word using C# Similarly, you can add the distance annotation to mark the distance between two points. The following are the steps to add distance annotation to the document.\nAfter loading the Word document, initialize distance annotation using DistanceAnnotation class. Set the appearance of the annotation. Add the distance annotation to the Annotator object. Save the annotated Word files at the given location by specifying the path. The following code sample shows how to add distance annotation to a DOC/DOCX document using C#.\nComplete Code To sum up, here is the complete code with the output showing all the added annotations and messages with replies. The following C# code below adds, arrow, rectangle, ellipse, distance annotations, messages, and replies to a Word file.\nRemove Annotations from Word DOC/DOCX files using C# Annotations from the documents can be removed easily. There are many options to remove the annotations from a Word document. You can remove all the annotations at once. Additionally, you can provide the indexes to remove the specific annotations. For more options, visit the documentation article.\nThe following are the steps to remove all the annotations from a Word file.\nLoad the document. Initialize saving options using SaveOptions class. Set the annotation types to None. Save the Word file. It will have no annotation in it. The following code shows how to remove annotations from a Word file using C#.\nConclusion In short, you have learned how to add annotations to Word documents within .NET applications using C#. Specifically, we added arrow, ellipse, area, and distance annotations to the Word DOC/DOCX file. Further, you have also seen how to remove all the annotations from any Word file. Now, you can think to build your own document annotator .NET application.\nLearn more about GroupDocs.Annotation for .NET from the documentation and the GitHub repository. For further queries, contact the support on the forum.\nSee Also Add Watermark to Images using C# Annotate PDF files in Java ","permalink":"https://blog.groupdocs.com/annotation/annotate-word-documents-using-csharp/","summary":"Forget to discuss documents content and feedbacks in long email threads. Simply use annotations to markup documents with messages and replies. In this article, you will learn how to programmatically add and remove annotations to markup Word documents in C# with your .NET applications.","title":"Add or Remove Annotations or Markup Word files using C#"},{"content":"\rJSON (JavaScript Object Notation) is a human-readable structured data format. It is widely used in APIs, applications, and configurations for storing and passing the data. CSV contains the comma-separated values, normally used to store tabular data that can be perfectly displayed using spreadsheet applications like MS Excel. To transfer the tabular data or store the received structured data into tabular form, requires converting formats into one another. This article discusses the conversion of JSON to CSV format and CSV to JSON format programmatically using C# for your .NET applications.\nThe following topics are covered below:\n.NET API for JSON and CSV Conversion JSON to CSV Conversion CSV to JSON Conversion .NET API for JSON and CSV Conversion GroupDocs.Conversion has APIs that allow the conversion of JSON and CSV files into each other. In this article, we will use the .NET API of GroupDocs.Conversion for converting JSON into CSV and then CSV into JSON using C#. Additionally, the API allows the back and forth conversion of various other document formats like word-processing documents, spreadsheets, presentations, eBooks, images, and many more.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Conversion Convert JSON to CSV in C# The following steps allow converting the JSON files to CSV format within the .NET applications.\nLoad the JSON using the Converter class. Set the conversion format to CSV using SpreadsheetConvertOptions. Call the Convert method to transform the JSON data to CSV format. The following code shows how to convert JSON to CSV format using C#.\nConvert CSV to JSON in C# The following steps allow converting the CSV files to JSON format within the .NET application.\nPrepare the load options for loading the CSV file. Load the CSV using the Converter class. Set the conversion format to JSON using DataConvertOptions. Call the Convert method to get the CSV data transformed into JSON format. The following code shows how to convert your CSV file into JSON format using C#.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, you learned how to convert the JSON files to CSV format and also the conversion of CSV files to JSON format programmatically using C#. You can learn more about the .NET Conversion API using the documentation, or by examples available on GitHub. Get in touch with us at the forum.\nSee Also Convert Excel to CSV and CSV to Excel Formats in C# Generate Reports from JSON Data in C# Generate Reports from CSV and XML Data in C# ","permalink":"https://blog.groupdocs.com/conversion/convert-json-and-csv-in-csharp/","summary":"\u003cstrong\u003eJSON\u003c/strong\u003e (JavaScript Object Notation) is a human-readable structured data format. It is widely used in APIs, applications, and configurations for storing and passing the data. \u003cstrong\u003eCSV\u003c/strong\u003e contains the comma-separated values, normally used to store tabular data that can be perfectly displayed using spreadsheet applications like MS Excel. To transfer the tabular data or store the received structured data into tabular form, requires converting formats into one another. This article discusses the conversion of \u003cstrong\u003eJSON to CSV\u003c/strong\u003e format and \u003cstrong\u003eCSV to JSON\u003c/strong\u003e format programmatically \u003cstrong\u003eusing C#\u003c/strong\u003e for your .NET applications.","title":"Convert JSON to CSV and CSV to JSON using C#"},{"content":"Worried! What\u0026rsquo;s the difference? Better automate the photo comparison. In this article, we will discuss how to programmatically find differences between two images. After going through this, you will find it easy to compare any images and highlight the identified differences using Java.\nThe following topics are covered below:\nJava API for Comparing Images Compare Images in Java to Highlight Differences Images Comparison Java API In this article, I will be using the Java API of GroupDocs.Comparison for comparing images. Along with the most used image formats, like PNG, JPG/JPEG, and GIF, there is a wide range of supported file formats for comparison. Additionally, the API allows the compare word-processing documents, spreadsheets, presentations, drawings, webpages, email messages, source code files, and much more.\nDownload and Configure Get the image comparison library from the downloads section. For Maven-based Java applications, add the following configuration within pom.xml. Later, you can try the examples of this article as well as many more from GitHub. For the details, you may also visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-comparison\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.6\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Compare Images in Java to Highlight Differences Comparing the images and get the result is just 3 lines of code. You can follow the steps and use the mentioned source code for comparing any of your JPG, PNG, BMP, DICOM, DjVu, GIF, and other images. You can identify the dissimilarities or variations among these within the Java application.\nThe following steps show how any two images can be compared for differences.\nSelect the first image to compare using the Comparer class. Add the second image for comparison using the appropriate add method. Call the compare method to get the comparison result of both the images. The following code shows how to compare two images in Java. It compares two JPG images and saves the output that highlights the identified differences.\nHere is the output image of the above code. Additionally, the output also includes the summary of the comparison.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude from this article, we learned to compare images in Java. We further highlighted the identified differences after the comparison. Now you can build your own photo comparer app or use these features within your Java applications.\nFor more details, options, and examples, you can go through the documentation and GitHub repository. Reach us on the forum for your queries.\nSee Also Compare images in C# to find the differences Compare any document using Java ","permalink":"https://blog.groupdocs.com/comparison/compare-images-in-java/","summary":"Worried! What is the difference? \u003cstrong\u003eBetter automate the photo comparison.\u003c/strong\u003e In this article, we will discuss how to programmatically find differences between two images. After going through this, you will easily compare any images and highlight the identified differences using Java.","title":"Image Comparison in Java to Spot the Differences"},{"content":"Merging different documents is often required when you intend to gather the scattered data of different documents into one single file. In this article, you will learn to automate the documents merging process. This will show how to programmatically merge multiple documents of either the same or different file types into one file using Java. In another post, we discussed merging multiple files of different formats using C#.\nThe following topics are covered below:\nJava API - Merge Multiple Files Merge PDF, Word, Excel files into one PDF Merge Selective Pages of Multiple files into One File Java API for Merging Multiple Document Types I will be using GroupDocs.Merger for Java to combine documents of different file formats into one file. The Java API allows joining various documents of the same or different formats into one file. Furthermore, it allows documents to split, trim, swap, move, remove, rotate, or arrange pages accordingly. Additionally, it supports passwords and their removal to manage the security of the supported document formats.\nSome of the document types the API supports include; word-processing documents, spreadsheets, presentations, HTML, PDF, eBooks, Visio drawings, CSV, and TSV.\nDownload and Configure Get the document merger library from the downloads section. For Maven-based Java applications, add the following configuration within pom.xml. Afterward, you can try document merging java examples of this article as well as many more from GitHub. For the details, you may also visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-merger\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Merge PDF, Word, Excel files into one PDF in Java PDF documents can be combined with your Word documents, Excel spreadsheets, PowerPoint presentations, and other PDF documents with just a few lines of code. The following are the steps of how to merge documents of multiple file types into one file.\nLoad the initial document using the Merger class. Combine the second document using the join method. Keep merging the other documents (if required) using the same or similar join method. Save the final combined document on path or stream using the relevant save method. The following source code shows how to merge PDF, Word, and Excel documents into one PDF file in Java.\nSimilarly, documents with the same file types can be combined. The below-mentioned is the output obtained by joining a word document, a PDF document. and a spreadsheet using the above-mentioned Java code.\nMerge Selective Pages of Multiple PDF, Word, Excel files into One PDF in Java If you want to pick few pages from one document and some other selective pages from the next document, and so on. The API allows you to merge selective pages of multiple file types into one file in different ways.\nLoad the initial document using the Merger class. Prepare the merging options with JoinOptions class. Start merging the document using the join method. Keep joining the documents by setting appropriate joining options for each document. Save the final merged document using the save method. The following source code shows how to merge the first page of a Word document and the even sheets of Excel spreadsheet in the provided range in Java with a PDF document. The output will be a single PDF file.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, you learned how to merge two or more documents of similar or different file types into one file using Java with your application. Additionally, you learned how to combine selective pages of multiple file types into one file.\nYou can learn more about GroupDocs.Merger using the documentation. In case you have queries, contact us via forum.\nSee Also Merge Files to PDF Online Split Files or Merge Documents in Java Merge multiple files of different formats into one using C# Merge PPT files in Java ","permalink":"https://blog.groupdocs.com/merger/merge-multiple-file-types-using-java/","summary":"Merging different documents is often required when you intend to gather the scattered data of different documents into one single file. In this article, you will learn to automate the documents merging process. This will show how to programmatically merge multiple documents of either the same or different file types into one file using Java. In another post, we discussed merging multiple files of different formats using C#.","title":"Merge Multiple File Types into One using Java"},{"content":"\rFor the protection of the documents and presentations from illegal use, we can use watermarking. In this article, we will learn to programmatically apply text and image-based watermarks to the presentations or specific slides of a presentation in Java. In another post, we have discussed applying watermarks to presentations using C#.\nThe following topics will be covered below:\nJava Watermarking API Add text watermarks to presentation slides Add image watermarks to presentation slides Java Watermarking API for Presentations GroupDocs.Watermark provides the Java API for watermarking, which allows adding text and image watermarks to the presentations within your application.\nAlongside the presentations, the API supports adding, removing, and extracting watermarks from word-processing documents, spreadsheets, email messages, PDF files, images, and many other formats.\nAmong presentation file formats, it supports PPT, PPTX, PPS, PPTM, PPSX, and others. From the documentation, you may further check the features and supported file formats.\nDownload and Configure You can get the watermarking library from the downloads section. For Maven-based Java applications, just add the following pom.xml configuration. Afterward, you can try watermarking examples of this article as well as many more examples from GitHub. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-watermark\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Add Text Watermark to Presentation Slides in Java Using the API, you can apply customizations while adding text to presentation slides as a watermark. The following steps show how to apply watermark to presentations within the Java application.\nLoad the presentation using Watermarker. Set watermark text and style using TextWatermark. Set watermark properties like size, location, opacity, rotation, and color. Provide the slide index on which to apply the watermark. (Optional) Add the formatted text watermark using the add method. Save the watermarked presentation by calling the save method. The following code sample shows how to add a text watermark in PPT or PPTX on all the slides with rotation using Java.\nIf the slide index is not set, the watermark will be applied to all the slides of the presentation by default. The above code also shows how to mention the slide index. The following is the output with a text watermark on all the slides of the PPTX presentation.\nAdd Image Watermark to PPT Slides using Java You can add image watermarks on the presentation files as well with a similar approach. Just use the ImageWatermark class instead of the TextWatermark.\nThe following steps guide how to add image watermark to presentation slides within your Java applications.\nLoad the presentation file using Watermarker. Load the image, logo, or photo using ImageWatermark. It will be used as an image watermark. Set image watermark properties like rotation, size, opacity, color, and position. Set the slide index on which the watermark will be applied. Add the image watermark to the presentation using add method. Save the presentation with the image watermark using save method. The following code sample adds an image watermark to the second slide of the PPTX presentation in Java.\nThe following is the output of the code with an image watermark only on the second slide of the PPT/PPTX.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, you have learned how to add watermarks to presentations in Java. To be more precise, we discussed how to insert text watermarks as well as image watermarks in presentations within Java-based applications. You can apply watermarks to all the slides as well as to any specific slide of the presentations.\nLearn more about the API using documentation. Examples are available at GitHub. For queries, contact us via the forum.\nSee Also Watermark Excel Sheets in Java Add Watermark to Images and Photos in Java Find and Remove Watermarks from Documents in Java Watermark Presentation Slides using C# ","permalink":"https://blog.groupdocs.com/watermark/watermark-presentation-slides-using-java/","summary":"For the protection of the documents and presentations from illegal use, we can use watermarking. In this article, we will learn to programmatically apply text and image-based watermarks to the presentations or specific slides of a presentation in Java. In another post, we have discussed [applying watermarks to presentations using C#][1].","title":"Watermark Presentation Slides using Java"},{"content":"Before we leap into the details, let\u0026rsquo;s get an overview of the full-text search technique. Full-text search is basically a more advanced way to search a text/query over a collection of documents. This approach quickly finds all instances of a term and it works by using text indexes. In this article, we will learn, how to programmatically search full-text in documents using C#.\nAfter this, you can implement various search techniques to search text in word-processing documents, spreadsheets, presentations, HTML files, PDF eBooks, email messages, ZIP archives, and many other files.\nOne of the examples of full-text search implementation is in Word processors and text editors. It helps you to find a phrase or word anywhere in the document.\nThe following topics are covered below:\n.NET API for Full-Text Search Full Text Search Perform Search in C# Highlight Search Results .NET API for Text Searching GroupDocs.Search for .NET is a back-end searching API that allows full-text search and can be integrated into any .NET application without any third-party tool or software dependency. It allows you to search over a multitude of document formats in your applications.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Search Full Text Search using C# There are two main steps to perform or implement a full-text search.\nIndexing Perform Search Indexing To make it possible to search instantly across thousands of documents with the same or different file formats, you need to create an index and add these documents to it.\nWhat is an index? An index possesses scanned text of all the documents. Therefore, when you are going to perform a search operation (search a specific query), only the index is referenced, rather than the text of the original documents.\nIndex creation An index can be created in memory or on a disk. The index created in memory cannot be saved after exiting your program. In contrast, an index created on the disk may be loaded in the future to continue working. The following example shows how to create an index on a disk.\nIndex index = new Index(\u0026#34;indexPath/FolderName/\u0026#34;); When documents are indexed, the index is ready to handle the search queries. The following are some of the search techniques that can be performed using GroupDocs.Search for .NET:\nCase Sensitive Search Regular Expression Search Phrase Search Faceted Search Synonym Search Wildcard Search Perform Search in C# Starting with a use case. If we have multiple documents (Word, PDF, Excel, and HTML) and we want to perform a specific search query (search term \u0026ldquo;video\u0026rdquo;) over them.\nThe following are the steps for how to perform text search on multiple documents within a folder:\nDecide source documents folder and index folder. Prepare the query string. Create Index using the index folder. Add the source documents folder to the index. Perform a search using the Search method Index class. Traverse and search results for each document\u0026rsquo;s properties. The following source code performs a text search using C# on all the documents of the provided folder.\nWe will get the document path and the number of search term occurrences in all the documents available in the document folder. Here is the screenshot to visualize.\nHighlight Text Search Results in C# Let\u0026rsquo;s now perform the same text search, but this time we will highlight all the occurrences that match the query.\nThe following steps show how to highlight the text search results:\nPrepare the query string. Create Index using index folder path. Add the source documents folder to the index. Search the document folder using the Search method. While traversing the search results, create the Highlighter. Use the Highlight method of the Index class to highlight the search results. The following code generates the HTML output with highlighted search results using C#.\nAs an output, we will get multiple HTML files. Each file will show the content of a different document (e.g. excel.xlsx, source.docx, target.docx) with highlighted search term/word. Given below is the highlighted HTML output of a DOCX file.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion In this article, we have learned to search text within multiple documents of a folder using C#. Further, we discussed how to programmatically highlight the text of search results in HTML format.\nYou may learn more about the API using documentation. Many more examples are available at GitHub. For queries, contact us via the forum.\nSee Also Build full-text search solution in Java Find Synonyms of Words using C# Search Synonyms in Multiple Files using C# Find and Replace Text in PDF using C# Find and Replace Words in Word Documents using C# ","permalink":"https://blog.groupdocs.com/search/build-your-full-text-search-solution-in-csharp/","summary":"Full-text search is basically a more advanced way to search a text/query over a collection of documents. This approach quickly finds all instances of a term and it works by using text indexes. In this article, we will learn, how to programmatically search full-text in documents using C#.","title":"Build your Full Text Search Solution in C#"},{"content":"For sharing and referencing the email content, you may need to convert your email message to PDF format. In this article, you will learn the conversion of email message files like EML and MSG into PDF using C#. In one of the other blog posts, we have already discussed the conversion of emails to PDF using Java. This will help to automate the email conversions within your desktop or web-based applications.\nThe following topics are covered below:\nEmail Conversion Library for .NET Conversion of MSG to PDF Conversion of EML to PDF .NET API for Email Conversion GroupDocs.Conversion for .NET is the API that allows the conversion of email messages to other formats. In this article, we will use that API for converting MSG and EML messages to PDF format using C#. Furthermore, the API allows the back and forth conversion of word-processing documents, spreadsheets, presentations, eBooks, images, and many other file formats within your .NET applications.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Conversion Convert MSG to PDF in C# The following are the steps to convert the Outlook MSG files to PDF format.\nLoad the MSG file using the Converter class. Create PDF conversion options using PdfConvertOptions class. Call the Convert method to convert the MSG file to PDF format. The following source code converts the MSG file to PDF using C#.\nBelow shown is the Microsoft Outlook MSG file. Furthermore, the PDF file is also shown here which is obtained after conversion from the MSG file using the above code.\nMSG file\nPDF file converted from MSG format using the above C# code.\nConvert EML to PDF using C# If you want to convert your email messages stored in EML format into PDF format, it can be efficiently done using similar lines of code. The following are the steps to convert EML files to PDF.\nLoad the EML message file using the Converter class. Using PdfConvertOptions class, create conversion options for the PDF file. Call the Convert method to convert the EML files to PDF format. Pass the path of the resultant PDF file and the conversion options as parameters. Below are the EML file and the converted PDF file screenshots, that have been converted using the above code.\nEML file\nPDF file converted from EML format using C#.\nFurther, you can change the appearance of the output PDF files as needed. You can visit documentation for such purposes and for many more features.\nGet a Free API License You can get a free temporary license in order to use the API without the evaluation limitations.\nConclusion To conclude, we learned how to convert the EML and MSG files to PDF using the .NET Conversion API. Additionally, we can programmatically apply customization on PDF files to get the outcome in the desired style.\nYou may learn more about GroupDocs.Conversion for .NET using documentation. Many more examples are available at GitHub. For queries, contact us via the forum.\nSee Also Excel Spreadsheets to PDF in C# Images to PDF in C# Presentations to PDF in C# Emails to PDF in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-eml-or-msg-file-to-pdf-in-csharp/","summary":"For sharing and referencing the email content, you may need to convert your email message to PDF format. In this article, you will learn the \u003cstrong\u003econversion of email message files like EML and MSG into PDF using C#\u003c/strong\u003e. In one of the other blog posts, we have already discussed the [conversion of emails to PDF using Java][1]. This will help to automate the email conversions within your desktop or web-based applications.","title":"Convert EML or MSG file to PDF in C#"},{"content":"For the data in tabular form of your PDF and Word documents, you sometimes need to convert it to Excel spreadsheets. We need to automate this conversion of as many documents to spreadsheets or multiple workbooks. This article will discuss how to programmatically convert Word documents to Excel and also how to convert PDF files to Excel spreadsheets in Java.\nThe following topics are discussed briefly here:\nJava API - Documents to Spreadsheets Conversion Convert PDF to Excel Spreadsheet Convert Word to Excel Spreadsheet PDF or Word to Spreadsheet conversion with more options Java API for Conversion to Spreadsheet GroupDocs.Conversion for Java is the API that allows you to convert PDF and Word documents to spreadsheets within your Java applications. The API allows document and image conversions in many file formats. Some of the supported document formats include word-processing documents, spreadsheets, presentations, eBooks, AutoCAD formats, PDF, email messages, Web pages, images.\nDownload and Configure You can get the conversion library from the downloads section or add the following pom.xml configuration in your Maven-based Java application. Afterward, you can try examples of this article as well as many more examples available on GitHub. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.4\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert PDF to Excel in Java The following steps can be followed to convert any PDF document to an Excel spreadsheet.\nLoad the PDF file using Converter class. Prepare convert options using SpreadsheetConvertOptions. Call the convert method with the created options. The following code sample shows how to convert a PDF file into an Excel XLSX spreadsheet in Java.\nConvert Word to Excel in Java Similarly, any Word document can be converted to an Excel spreadsheet in the same manner as we just converted the PDF document. Provide the right source file and get it converted into XLS or XLSX.\nThe following are the step to convert any DOC DOCX file to an Excel spreadsheet.\nLoad the DOC, DOCX file using Converter class. Prepare the convert options using SpreadsheetConvertOptions. Call the convert method of the Converter class with options. The following source code shows how to convert a DOC or DOCX file into Excel XLSX format in Java.\nPDF or Word to Spreadsheet Conversion with more options using Java You are not bound to get the whole document converted every time. You can convert just the selected pages of your document. The API gives you the privilege to convert the document with various options that include:\nStarting Page Number. Page Count. Specific Pages for conversion. Format to convert into. Password for make the file protected. Zoom to make it large or smaller. Watermark on the converter file. The following are the steps for how to convert some of the pages of a PDF file into XLSX format with different zoom in Java.\nThe PDF file and the converted spreadsheet as output are shown here. It converted the second page of the PDF file into XLSX format.\nGet a Free API License You can get a free temporary license in order to use the API without evaluation limitations.\nConclusion In this article, we discussed the conversion of PDF and Word documents to an Excel spreadsheet in Java. Additionally, we learned how to convert any part of the document with options like watermark, zoom, and make it protected using password protection.\nFor more options and examples, visit the documentation and the GitHub repository. For queries, reach us via the forum.\nSee Also Images to PDF in Java Spreadsheets to PDF in Java Presentations to PDF in Java CAD Drawings to PDF in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-documents-to-excel-xls-xlsx-in-java/","summary":"For the data in tabular form of your PDF and Word documents, you sometimes need to convert it to Excel spreadsheets. We need to automate this conversion of as many documents to spreadsheets or multiple workbooks. This article will discuss how to programmatically convert Word documents to Excel and also how to convert PDF files to Excel spreadsheets in Java.","title":"Convert Documents to Excel XLS, XLSX in Java"},{"content":"An Image can be converted to PDF to assure that the image is displayed correctly across devices without being altered. PDF images are ideal for printing and for storing images online when intended to be downloaded. PDF can hold as many images in one document so can be printed easily or saved as a catalog. This article will guide you to programmatically convert images like JPG, GIF, WebP, PNG to PDF in C# using .NET API for document and image conversion.\nThe following topics are covered briefly below:\nImage Conversion .NET API Convert JPG images to PDF Convert PNG, GIF, BMP images to PDF Image to PDF conversion with advance options .NET API for Image Conversion I will use GroupDocs.Conversion for .NET library to convert images to PDF format. The library lets us convert a long list of image formats to PDF. Some of the supported ones are mentioned here. For the complete list, visit the documentation.\nAI BMP CDR DJVU GIF ICO JPEG, JPG, JP2 PNG SVGZ TGA TIF, TIFF WEBP Along with the images, the API allows the developers to convert Word documents, spreadsheets, presentations, eBooks, Visio documents, Microsoft Project files, PSD files, PDL, Email messages, and much more. Many examples are available at GitHub for the mentioned support.\nYou can download the DLLs or MSI installer from the downloads section or get it from NuGet.\nInstall-Package GroupDocs.Conversion Convert JPG to PDF in C# To simply convert your JPG images to PDF format, you can follow the below steps:\nLoad the JPG file using Converter class. Instantiate PdfConvertOptions class. Call the Convert method to convert the JPG image into PDF and get it saved on the provided path. The following source code shows how to convert a JPG image to PDF in C#.\nConvert PNG Images to PDF in C# If you want to convert a PNG image there will be no difference in the code. The following steps allow us to convert a PNG image to PDF using C#.\nLoad the PNG image file using Converter class. Instantiate PdfConvertOptions class. Call the Convert method to convert the provided image into PDF and get it saved on the provided path. The following code shows how to convert a PNG image to PDF using C#.\nConvert any Image to PDF Similarly, you just have to provide your JPG, PNG, GIF, WebP, or any other image to the Converter class while loading. Also, there are many conversion options while converting to PDF format.\nConvert Images to PDF in C# with Advanced Options GroupDocs.Conversion provides PdfConvertOptions to give us control over conversion results when converting Image to PDF. Some of the additional options are:\nWidth - Image width after conversion. Height - Image height after conversion. MarginTop - Page top margin after conversion. MarginBottom - Page bottom margin after conversion. MarginLeft - Page left margin after conversion. MarginRight - Page right margin after conversion. Rotate - Page rotation. Available options are: None, On90, On180, On270 The following C# code sample uses these additional options and converts an image to PDF. It sets the height and width of the resultant image, sets the page margins, and also rotates the image at 180 degrees.\nGet a Free API License You can use the API without evaluation limitations by requesting a free temporary license.\nConclusion To conclude, we learned to convert images to PDF format using image conversion API for .NET. Specifically, we discussed how to programmatically convert JPG, PNG, WebP, and other images to PDF in C#. You can explore more about the image conversion API using the documentation. For queries, reach us via the forum.\nSee Also Convert Excel Spreadsheets to PDF in C# Convert CAD Drawings to PDF in C# Convert Images to PDF in Java Convert EML or MSG file to PDF in C# ","permalink":"https://blog.groupdocs.com/conversion/convert-images-to-pdf-in-csharp/","summary":"An Image can be converted to PDF to assure that the image will display correctly across devices without being altered. PDF images are ideal for printing and for storing images online when intended to be downloaded. PDF can hold as many images in one document so can be printed easily or saved as a catalog. This article will guide you to programmatically convert images like JPG, GIF, WebP, PNG to PDF in C# using .NET API for document and image conversion.","title":"Convert Images to PDF in C#"},{"content":"HEIC stands for High-Efficiency Image Container. It is the file extension for the captured images for some of the apple devices. It is a container that can contain High-Efficiency Image Format HEIF images. In this article, we will discuss how to extract, update, and remove the EXIF and XMP metadata of the HEIF/HEIC images within Java applications.\nEXIF, the Exchangeable Image File Format is the standard that defines how to store metadata properties in the most common images and audio formats. XMP is an XML-based metadata standard, that can store any set of metadata properties as name/value pairs.\nThe following topics are covered below\nMetadata Java API for EXIF, XMP data Read EXIF Data of HEIC/HEIF Images Read XMP data of HEIC/HEIF Images Java API for EXIF and XMP Metadata GroupDocs.Metadata provides the metadata manipulation API for your Java applications. The API allows to read, update, add, clean/remove, and traverse features for many file formats. It supports various metadata standards like EXIF, IPTC, and XMP. Word-processing documents, spreadsheets, presentations, email messages, eBooks, images, AutoCAD drawings, audio and video files, torrents, are among the supported document formats. More precisely, you can visit the documentation for the complete list of supported file formats for metadata manipulation.\nDownload and Configure Get the metadata library from the downloads section. For your Maven-based Java application, just add the following pom.xml configuration. After this, you can try the examples of this article as well the many more example available on GitHub. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-metadata\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.4\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Read EXIF data of HEIF / HEIC Images in Java The following are the steps to read and extract EXIF data of HEIC and HEIF images.\nLoad the HEIF or HEIC image using the Metadata class. Get the root package. Retrieve the EXIF package from the root package. From the EXIF package, you can traverse the EXIF data properties. Furthermore, you can get the IFD (Image File Directory) and GPS information from the EXIF package. The following code shows how to get EXIF data, IFD and GPS metadata information of the HEIC image using Java.\nRead XMP data of HEIC / HEIF Images in Java The following steps read XMP metadata of HEIC or HEIF images.\nLoad the HEIF or HEIC image using the Metadata class. Get the root package using the getRootPackage method. From the root package, you can get the XMP basic information. Further, you can get the DCMI Dublin Core information. Additionally, you can get Photoshop information using the getPhotoshop method. The following source code shows how to get XMP basic, DCMI, and Photoshop information in Java.\nLikewise, there are many setter methods to set or update different XMP properties. You can even provide your own key-value pair to set the custom XMP package property.\nRemove EXIF and XMP Metadata of HEIC/HEIF Images in Java You can just set the respective EXIF package or XMP package to null to remove all the metadata properties.\nThe following code removes the EXIF data of HEIC images.\nThe following code removes the XMP data of HEIC images.\nConclusion To sum up, we have learned to extract, update, remove EXIF and XMP metadata from the HEIF/HEIC images in Java. Furthermore, you have seen how to get IFD and GPS information from these images. Now you can easily get this information and also go ahead building your own applications like GroupDocs.Metadata App Product Family to automate metadata information.\nFor more information, options, and examples, you can visit the documentation and the GitHub repository. For further queries, contact us on the support forum.\nSee Also Extract RIFF INFO and Metadata of WAV files in Java Clean Metadata of Documents and Images using Java ","permalink":"https://blog.groupdocs.com/metadata/xmp-and-exif-data-of-heif-heic-images-using-java/","summary":"\u003cstrong\u003eHEIC\u003c/strong\u003e stands for High-Efficiency Image Container. It is the file extension for the captured images for some of the apple devices. It is a container that can contain High-Efficiency Image Format \u003cstrong\u003eHEIF\u003c/strong\u003e images. In this article, we will discuss \u003cstrong\u003ehow to extract, update, and remove the EXIF and XMP metadata of the HEIF/HEIC images\u003c/strong\u003e within Java applications.","title":"Manage XMP and EXIF Data of HEIF/HEIC Images using Java"},{"content":"To combine the data that is present in multiple documents, and sometimes in documents of different file types, there comes the need to merge all your documents or the portion of the documents into one. In this article, you will learn, how to programmatically merge multiple documents of either the same or different file types into one file using C#.\nThe following are the topics covered below:\n.NET API - Merge Multiple Document Types Merge PDF, Word, Excel files into one PDF Merge Selective Pages of Multiple files into One File .NET API for Merging Multiple Document Types Today, I will be using GroupDocs.Merger for .NET to combine documents of different file formats into one file. The .NET API allows joining various documents of the same or different formats into one file. Furthermore, it allows documents to split, trim documents, and swap, move, remove, rotate, or arrange pages. Additionally, it supports setting or remove passwords to manage the security of the supported document formats.\nSome of the document types the API supports include; word-processing documents, spreadsheets, presentations, HTML, PDF, eBooks, Visio drawings, CSV, and TSV.\nDownload the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Merger Merge PDF, Word, Excel files into one PDF in C# You can combine your PDF documents with your Word documents, presentations and Excel spreadsheets with just a few lines of code. The following are the steps of how to merge documents of multiple file types into one file.\nLoad the source document using the Merger class. Keep merging other documents using the Join method. Save the combined document as output using the Save method. The following source code shows how to merge PDF, Word, and Excel documents into one PDF file in C#.\nIn the same way, you can also combine files of the same file format. The below-mentioned is the output obtained by joining a word document, a PDF document. and a spreadsheet using the above C# code.\nMerge Selective Pages of Multiple PDF, Word, Excel files into One PDF in C# Not always you want to combine the whole document. You may want to pick few pages from one document and some other pages from the next document, and so on. The API provides different ways to merge selective pages of multiple file types into one file.\nLoad the source document using Merger class. Set the merging options using JoinOptions class. Merge the document using the Join method. Keep combining the documents by setting different joining options for each document. Save the merged document using the Save method. The following source code shows how to merge a PDF file with the first page of a Word document, and the even sheets of Excel workbook in the provided range, into a single PDF file using C#.\nConclusion To sum up, you have seen how to merge two or more documents of different file types into one file using C# within .NET application. Additionally, you have learned how to combine just the selective pages of multiple file types.\nYou can learn more about GroupDocs.Merger for .NET using the documentation. In case you would have queries, do let us know via our forum.\nSee Also Merge Multiple Files to PDF Online Merge documents of the same format in C# Split or merge documents in Java Merge PowerPoint PPT/PPTX \u0026amp; Slides using C# ","permalink":"https://blog.groupdocs.com/merger/merge-multiple-file-types-using-csharp/","summary":"To combine the data that is present in multiple documents, and sometimes in documents of different file types, there comes the need to merge all your documents or the portion of the documents into one. In this article, you will learn, how to merge multiple documents of either the same or different file types in one file using C#.","title":"Merge Multiple File Types into Single Document using C#"},{"content":"\rWatermarks are normally used to protect the documents from any unauthorized use. To protect your presentations and to claim ownership, today we will learn how to programmatically add text and image watermarks to the Microsoft PowerPoint presentations within .NET applications using C#. In a separate article, we have seen applying watermarks to images in C#.\nLet\u0026rsquo;s quickly move to separately learn, how we can apply text and image-based watermarks to the whole presentation or specific slide using the watermarking API for .NET applications.\nAdd text watermarks to presentation slides. Add image watermarks to presentation slides. Watermarking API for .NET GroupDocs.Watermark for .NET is a watermarking API that allows adding text and image watermarks to the presentations and many other documents of different file formats within .NET applications. It provides watermarking methods that add watermarks that are hard to get automatically removed by other tools.\nAlong with the presentations, the API supports adding, removing, and extracting watermarks from word-processing documents, spreadsheets, email messages, PDF files, images, Visio drawings, and many other formats. Among presentation file formats, it supports PPT, PPTX, PPS, PPTM, PPSX, and others. From the documentation, you may further check the features and supported file formats.\nYou can download the DLLs or MSI installer from the downloads section or get it from NuGet.\nInstall-Package GroupDocs.Watermark Add Text to Slides as Watermark using C# The API provides customizations to add text to presentations as watermark. The following steps guide you how to apply watermark on presentation files within .NET application.\nLoad the presentation using Watermarker. Set watermark text and style using TextWatermark. Set other properties like rotation, size, opacity, color, and position. Provide the index of the slide to apply the watermark. Add the formatted text watermark using Add method. Save the watermarked presentation using the Save method. The following code sample adds a text label to the PPTX presentation as a watermark on the first slide with rotation using C#.\nIf you do not provide a slide index, the watermark will be added on all the slides by default. The above code shows how to mention the slide index, however, I have shown you the output with a text watermark on all the slides of the PPTX presentation.\nInsert Image Watermark to Slides using C# Likewise, you can add images on presentation files as watermark. You just have to use the ImageWatermark class instead of the TextWatermark. The following are the steps to add image watermark to presentation slides within your .NET applications.\nLoad the presentation using Watermarker. Load the image file that will be used as a watermark using ImageWatermark. Set image watermark properties like rotation, size, opacity, color, and position. Set the slide index on which to apply the watermark. Add the image watermark to the presentation using Add method. Save the watermarked presentation using the Save method. The following code sample adds an image to the PPTX presentation as a watermark on the second slide using C#.\nThe following is the output of the above code with an image watermark only on the second slide of the PPTX presentation.\nConclusion To sum up, you have learned how to add text and image watermarks to your presentation slides using C#. Now you can build your own .NET application that supports text as well as image watermarks for the presentation files and specific slides of the presentation. Consult the documentation to apply watermarks to various other document formats.\nYou can have a Free Temporary License to experience every aspect of the product. Free support will be happy to get you out of any confusion and resolve your queries related to watermarks on the forum.\nSee Also Add Watermark to Images using C# Insert Watermark to Excel Workbooks using C# Find and Remove Watermarks from Documents in C# Merge PowerPoint PPT/PPTX \u0026amp; Slides using C# ","permalink":"https://blog.groupdocs.com/watermark/add-watermark-to-presentations-using-csharp/","summary":"Watermarks are normally used to protect the documents from any unauthorized use. To protect your presentations and to claim ownership, today we will learn how to programmatically add text and image watermarks to the Microsoft PowerPoint presentations within .NET applications using C#. In a separate article, we have seen [applying watermarks to images in C#][1].","title":"Add Watermark to Presentation Slides using C#"},{"content":"CAD (Computer-Aided Design) drawings are normally used to create architectural plans and models using CAD software programs. Some of the well-known AutoCAD file formats are DWG, DXF, DGN, DWF. We discussed viewing the CAD drawings using Java in a separate article. Today, in this article, we will discuss how to programmatically view CAD files using C# within .NET applications.\nThe following topics are covered below in brief:\n.NET API to render CAD files. Convert CAD files to render as HTML, JPG, PNG, or PDF. Get layouts and layers of DWG. Render CAD layers of DWG drawings. Render CAD layouts of DWG drawings. .NET CAD Viewer API – DWG, DXF, DWF, DGN In this article, I will be using GroupDocs.Viewer for .NET that allows programmatically rendering the CAD files like DWG to PDF, JPG, PNG, and HTML within .NET applications. In addition to DWG, the API supports DWF, DGN, DWT, DXF, IFC, STL, Plotter documents, and many more.\nOther than the CAD file formats, API provides are the same rendering features for word-processing documents, spreadsheets, presentations, web pages, images, vectors, eBooks, Visio drawings, many source code files of different programming languages.\nDownload the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Viewer Convert CAD Drawings to View as HTML, PNG, JPG, or PDF in C# In this article, I am only using the DWG format for the conversion and rendering to other formats with examples. Let\u0026rsquo;s start with the conversion of the DWG design file to render it as HTML with embedded as well as external resource options using C#.\nConvert DWG to HTML with Embedded Resources in C# The following are the steps of how to convert the DWG file to render as HTML.\nLoad the DWG file using Viewer class. Create HtmlViewOptions using forEmbeddedResources method. Render .dwg to HTML using View method. The following source code converts the DWG file and renders it as HTML with embedded resources using C#.\nConvert DWG to HTML with External Resources in C# The following are the steps for converting the DWG file and render it as HTML file(s) with external resources.\nLoad the DWG file using the Viewer class. Create HtmlViewOptions using forExternalResources method. Render .dwg as HTML using View method. The following source code renders the DWG file as HTML with external resources in C#.\nConvert DWG to PDF, JPG, and PNG in C# Just like the conversion to HTML format, DWG files can be rendered as PDF, PNG, and JPG format using the respective ViewOptions as follows:\nHTML rendering using HtmlViewOptions. JPG rendering using JpgViewOptions. PNG rendering using PngViewOptions. PDF rendering using PdfViewOptions. Get Layouts and Layers of DWG in C# The CAD files can contain multiple layouts and layers, you can get these layouts and layers using the following steps.\nLoad the DWG file using the Viewer class. Create the ViewInfoOptions for HTML view rendering. Using Viewer, get the CadViewInfo that has layouts. Get the layouts from CadViewInfo and iterate over them. Similarly, get the layers from CadViewInfo and iterate over them. The following code shows how to get the layouts and layers of ا DWG file using C#.\nRender CAD Layers of DWG file in C# If you do not want to render all the layers but only some specific layer of the DWG, it can be done by setting layer names.\nLoad the DWG drawing using the Viewer class. Create view options. Add CAD layers to the View Options Render DWG to HTML using View method. The following code renders the layers of a CAD file of DWG format in C#.\nRender CAD Layouts of DWG file in C# By default, we only get the model presentation when we render a CAD file. We can set properties to render all the non-empty layouts along with the model.\nLoad the DWG drawing using the Viewer class. Create view options. Set the Render Layouts property to true. Render DWG to HTML using View method. The following code renders all the non-empty layouts along with the model of a CAD drawing with DWG format in C#.\nGet a Free API License You can get a free temporary license in order to use the API without evaluation limitations.\nConclusion To conclude, I hope you have learned how to view CAD files in C# within the .NET applications. Further, you have seen, how to get and show models, layouts, and layers of CAD files within your application. You must be confident to build your own CAD Viewer using C#. You can experience the Online applications to view any of your files. These are built using GroupDocs.Viewer.\nYou can learn more about GroupDocs.Viewer for .NET using the documentation. In case you would have any queries, feel free to let us know via our forum.\nSee Also View CAD Documents using Java Convert CAD Drawings to PDF in C# Render Word documents as Clean HTML using C# Viewing Word Documents as PDF using C# ","permalink":"https://blog.groupdocs.com/viewer/view-cad-documents-using-csharp/","summary":"\u003cstrong\u003eCAD\u003c/strong\u003e (\u003cstrong\u003eC\u003c/strong\u003eomputer-\u003cstrong\u003eA\u003c/strong\u003eided \u003cstrong\u003eD\u003c/strong\u003eesign) drawings are normally used to create architectural plans and models using CAD software programs. Some of the well-known AutoCAD file formats are \u003cstrong\u003eDWG, DXF, DGN, DWF\u003c/strong\u003e. We discussed [viewing the CAD drawings using Java][1] in a separate article. Today, in this article, we will discuss how to programmatically view CAD files using C# within .NET applications.","title":"View CAD Documents using C#"},{"content":"As PDF is the most common portable document format used to exchange files, there arises the requirement to convert documents as well as images to PDF format without losing the quality. In this article, we will learn to programmatically convert JPG, PNG, GIF, and other images to PDF format using Java.\nThe following are the topics discussed briefly below:\nImage Conversion Java API Convert JPG Image to PDF Convert PNG, GIF, BMP Images to PDF Image Conversion to PDF with Options Image Conversion Java API For the conversion of images and documents within your Java applications, GroupDocs offers native, specialized GroupDocs.Conversion for Java API. It allows converting whole documents, specific pages, applying rotations, watermarks even on password-protected files. The API has a long list of documents and images supported file formats that can be converted back and forth.\nDownload and Configure Get the conversion library from downloads or add the following pom.xml configuration in your Maven-based Java applications. After that, you can try examples of this article and many more available examples on GitHub. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.4\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert JPG to PDF in Java To convert images to PDF format, there is a simple way. Let\u0026rsquo;s start with a JPG image and follow the steps to convert a JPG image to a PDF document.\nLoad the JPG image using the Converter class. Convert the provided image to PDF using the convert method. Get the converted PDF image from the location it was saved. The following code sample shows how to convert a JPG image to PDF using Java in just 2 lines of code.\nConvert PNG, GIF, BMP Images to PDF in Java The API is not restricted to just JPG images. It supports a wide range of image formats for their conversion to PDF in the same way. Whether it is PNG to PDF, GIF to PDF, BMP to PDF, or any other conversion, it can be performed likewise.\nThe following are the steps to convert any image to a PDF document.\nLoad any image using the Converter class. Convert the provided image to PDF using the convert method. The following code sample shows how to convert a PNG image to a PDF in the same way.\nImage to PDF Conversion in Java with Options The following are the steps to convert images to a PDF document with some customizations as per requirement. You can adjust margins, height, width, DPI, apply watermark, and some other options while converting the images to PDF format.\nLoad the image using the Converter class. Initialize the PDF Conversion Options using PdfConvertOptions. Set the margins, height, width using respective methods. Apply watermark using WatermarkOptions. Convert the provided image to PDF with set options using the convert method. The following code sample shows how to convert a JPG image to a PDF document using Java with options like; setting margins, specific size, apply watermark with rotation and transparency.\nGet a Free API License You can get a free temporary license to use the API without evaluation limitations.\nConclusion In this article, you have learned how to convert the images to PDF format. Specifically, we discussed the conversion of JPG, PNG, BMP images to PDF using Java. Further, you have seen how to set margins, size, apply watermark while converting images PDF.\nTo explore more about the Java Conversion API, you can consult the documentation. For any queries, reach us via the forum.\nSee Also Convert Images to PDF using C# Convert Spreadsheets (XLS, XLSX) to PDF in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-images-to-pdf-in-java/","summary":"As PDF is the most common portable document format used to exchange files, there arises the requirement to convert documents as well as images to PDF format without losing the quality. In this article, we will learn to programmatically convert images to PDF format in Java.","title":"Convert Images to PDF in Java"},{"content":"There was a time when we used to discuss document content and feedback in long email threads with multiple attachments and different file versions. Now we can simply use annotations to markup the document with messages and replies and send it. In this article, you will learn how to programmatically annotate PDF documents in Java with your application. Additionally, we will see how to remove annotations from PDF files using the same Java API.\nThe following are the topics discussed briefly below:\nJava API to Work with Annotations in PDF Add Annotations to PDF in Java Arrow annotation in PDF Rectangle annotation in PDF Ellipse or Oval annotation in PDF Distance annotation in PDF Remove Annotations from PDF in Java PDF Annotator Java API To deal with annotations of your document and images within your Java applications, GroupDocs provides GroupDocs.Annotation for Java. Using the API, you can add, remove, and extract annotations from word-processing documents, spreadsheets, presentations, images, email messages, Visio drawings, some AutoCAD, and digital imaging formats like DICOM. Furthermore, the API allows annotating PDF files. You may have a look at the documentation to know about the long list of supported document formats for annotation.\nDownload and Configure Get the annotation library from downloads or just add the following pom.xml configuration in your Maven-based Java applications to try the examples of this article as well the many more example available on GitHub. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-annotation\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Add Annotations to PDF in Java Let\u0026rsquo;s quickly jump to add some of the different kinds of annotations to the PDF document. As there are many different types of annotation, we may not cover all in this article. I will just mention them, and you may learn about each annotation individually.\nArea / Rectangle annotation\nArrow\nDistance\nEllipse\nHighlight\nLink\nPoint\nPolyline\nReplacement\nResource Redaction\nStrikeout\nText Field\nText Redaction\nUnderline\nWatermark\nLet\u0026rsquo;s start adding some of these in a PDF document.\nAdd Arrow Annotation to PDF using Java The following are the steps to add arrow annotation to a PDF document.\nLoad the PDF document using the Annotator class. Initialize arrow annotation using ArrowAnnotation class. Set the position and size of the arrow using setBox method of ArrowAnnotation. Add the created arrow annotation to the Annotator object. Save the annotated PDF by providing the path using the save method. The following code sample shows how to add arrow annotation to a PDF document using Java.\nInsert Rectangle or Area Annotation to PDF using Java You can customize any annotation while adding it to the document. The following are the steps to add rectangle or area annotation to a PDF document with little more customizations. It is similar to adding Arrow annotation but uses AreaAnnotation class in place of ArrowAnnotation.\nLoad the PDF document using the Annotator class. Initialize rectangle annotation using AreaAnnotation class. Set the position and size of the rectangle using setBox method of AreaAnnotation. Set other properties like color, background, opacity, style, pen width, or even messages, and time. Add the created rectangle annotation to the Annotator object. Save the annotated PDF by providing the path using the save method. The following code sample shows how to add rectangle/area annotation to a PDF document using Java.\nAdd Oval or Ellipse Annotation to PDF using Java The following are the steps to add oval annotation or ellipse annotation to a PDF document.\nLoad the PDF document using the Annotator class. Initialize ellipse annotation using EllipseAnnotation class. Set the position and size of the ellipse using setBox method of EllipseAnnotation. Add the created ellipse annotation to the Annotator object. Save the annotated PDF by providing the path using the save method. The following code sample shows how to add oval or ellipse annotation to a PDF document using Java.\nInsert Distance Annotation to PDF using Java You can also add the distance annotation to show the distance between two points. The following are the steps to add distance annotation to the PDF document.\nLoad the PDF document using the Annotator class. Initialize distance annotation using DistanceAnnotation class. Set the size and position of the annotation using setBox method of DistanceAnnotation. Add the created distance annotation to the Annotator object. Save the annotated PDF by providing the path using the save method. The following code sample shows how to add distance annotation to a PDF document using Java.\nComplete Code To sum up, here is the Java code with the output showing all the added annotations and messages with replies using the mentioned Java code.\nThe following code below adds, arrow, rectangle, ellipse, distance annotations, messages, and replies to a PDF file.\nRemove Annotations from PDF in Java The following steps show how to remove all the annotations from PDF files in Java.\nLoad the PDF document using the Annotator class. Initialize saving Options using SaveOptions class. Set the annotation types to None. Save the PDF file having all the annotations removed, by providing the path using the save method. The following Java code removes annotations from a PDF file.\nConclusion In short, you have learned how to add annotations to PDF within Java applications. Further, you have seen how to remove all the annotations from any PDF file. Now, you should be confident to build your own document annotator Java application. It can support different types of annotations using GroupDocs.Annotation for Java.\nFor more details, options, and examples, you can visit the documentation and the GitHub repository. For further queries, contact the support on the forum.\nSee Also Add Watermark to Images in Java ","permalink":"https://blog.groupdocs.com/annotation/annotate-pdf-files-using-java/","summary":"There was a time when we used to discuss document content and feedback in long email threads with multiple attachments and different file versions. Now we can simply use annotations to markup the document with messages and replies and send it. In this article, you will learn how to programmatically annotate PDF documents in Java with your application.","title":"Add or Remove Annotations from PDF files using Java"},{"content":"If you have tabular data in PDF or Word documents format, you definitely need to convert it to Excel spreadsheets. This scenario becomes complex when there are many spreadsheets or multiple workbooks. You surely need to automate this procedure. In this article, we will see how to convert PDF to Excel and also how to convert Word documents to Excel spreadsheets programmatically in C# using .NET API.\nThe following are the topics discussed briefly in this article:\n.NET API – Convert documents to spreadsheets Convert PDF to Excel Convert Word to Excel PDF or Word to Spreadsheet conversion with more options .NET API - Convert to Spreadsheet formats In this article, I will be using GroupDocs.Conversion for .NET to convert PDF and Word documents to spreadsheets using C#. It is the feature-rich API that allows document and image conversions in many file formats. To highlight some formats, the API supports word-processing documents, spreadsheets, presentations, AutoCAD drawings, eBooks, PDF, email files, Web pages, images, photoshop files, and many other document formats.\nDownload the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Conversion Convert PDF to Excel in C# The following are the step to convert a PDF document to an Excel spreadsheet.\nLoad the PDF file using Converter class. Initialize convert option using SpreadsheetConvertOptions class. Call the Convert method of Converter class with option. The following code sample shows how to convert a PDF file to Excel XLSX format using C#.\nConvert Word to Excel in C# You can convert any word document to an Excel spreadsheet in the same manner as we converted the PDF file above. We just have to provide the right source file to convert into XLS or XLSX.\nThe following are the step to convert a Word document with DOC DOCX format to an Excel spreadsheet.\nLoad the Word file using Converter class. Initialize convert option using SpreadsheetConvertOptions class. Call the Convert method of Converter class with option. The following code sample shows how to convert a DOC or DOCX file to Excel XLSX format using C#.\nPDF or Word to Spreadsheet Conversion with more options using C# You can convert only some of the selected pages of your document. The API gives you the privilege to convert your document with different options that include:\nStarting Page Number. Page Count to convert. Specific Pages for conversion. Format to convert into. Password for make the file protected. Zoom to make it large or smaller. Watermark on the converter file. The following are the steps for how to convert some of the pages of a PDF file into XLSX format with different zoom using C#.\nHere are the PDF file and the converted spreadsheet as output using the above code. It converted the second page of the PDF file into XLSX format.\nGet a Free API License You can get a free temporary license in order to use the API without evaluation limitations.\nConclusion In this article, you have learned how to convert PDF and Word documents in an Excel spreadsheet using C#. Furthermore, you have also seen how we can convert any part of the document with options like zoom, watermark, and making it password-protected. You can now start building your own .NET bases document conversion application or integrate the feature(s) in your existing application.\nFor more details, options, and examples, you can visit the documentation and the GitHub repository. For further queries, contact the support on the forum.\nSee Also Convert CAD Drawings to PDF in C# Convert Presentations to PDF in C# Convert Excel Spreadsheets to PDF using C# ","permalink":"https://blog.groupdocs.com/conversion/convert-document-to-excel-xls-xlsx-in-csharp/","summary":"If you have tabular data in PDF or Word documents format, you definitely need to convert it to Excel spreadsheets. This scenario becomes complex when there are many spreadsheets or multiple workbooks. You surely need to automate this procedure. In this article, we will see how to convert PDF to Excel and also how to convert Word documents to Excel spreadsheet programmatically in C# using .NET API.","title":"Convert Documents to Excel XLS, XLSX in C#"},{"content":"Computer-Aided Design - CAD files are normally used for 2D and 3D designs. These designs are generated by CAD software programs and are normally used to create models and architectural plans. If you have worked with CAD, you’re most likely familiar with some of AutoCAD’s file formats, such as DWG, DXF, DGN, DWF. This article will discuss how to programmatically view CAD files within Java applications.\nThe following topics are covered below in brief:\nJava API to render CAD files. Convert CAD files to render as HTML, JPG, PNG, or PDF in Java. Get layouts and layers of DWG in Java. Render CAD layers of DWG drawing in Java. Render CAD layouts of DWG drawing in Java. Java API to Render CAD files - DWG, DXF, DWF, DGN GroupDocs.Viewer for Java is the API that allows rendering various documents and image files into HTML, Image, or PDF format to view these files within your Java application. The API supports more than 100 file formats to programmatically render as HTML, JPG, PNG, or PDF.\nIn this article, we will stick to the CAD files. In addition to the already mentioned DWG and DGN formats, you can further view AutoCAD formats such as DWF, DWT, DXF, and also IFC, STL, IGS, CF2, Plotter document (PLT, HPG) files within your java applications.\nDownload and Configure Get the library from downloads or just add the following pom.xml configuration in your Maven-based Java applications to try the below-mentioned examples. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsArtifactRepository\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Artifact Repository\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;https://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-viewer\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert CAD Drawings to Render as HTML, PNG, JPG, or PDF in Java The API allows rendering the CAD documents to HTML, JPG, PNG, and PDF formats. In this article, I am sticking to the DWG format for the conversion and rendering to other formats using examples. To start with, let\u0026rsquo;s convert the DWG design and render it as HTML with embedded as well as external resource options.\nConvert DWG to HTML with Embedded Resources The following are the steps of how to convert the DWG file to render as HTML.\nInitialize the Viewer class object using the source .dwg file. Create HtmlViewOptions using forEmbeddedResources method. Render .dwg to HTML using view method. The following source code converts the DWG file and renders it as HTML with embedded resources in Java.\nConvert DWG to HTML with External Resources The following are the steps of how to convert the DWG file to render as HTML file(s) and with external resources.\nInitialize the Viewer class object using the source .dwg file. Create HtmlViewOptions using forExternalResources method. Render .dwg to HTML using view method. The following source code renders the DWG file as HTML with external resources in Java.\nConvert DWG to PDF, JPG, and PNG in Java Similar to the conversion to HTML format, DWG files can be rendered as PDF, JPG, and PNG format using the respective ViewOptions as follows:\nHtmlViewOptions to render as HTML JpgViewOptions to render as JPG PngViewOptions to render as PNG PdfViewOptions to render as PDF Get Layouts and Layers of DWG in Java As CAD files may consist of multiple layouts and layers, you can easily get their layouts and layers using the following steps.\nInstantiate the ViewInfoOptions object for HTML rendering. Using ViewInfoOptions, you can get the CadViewInfo. Get the layouts from viewInfo using getLayouts method. Get the layers from viewInfo using getLayers method. The following code shows how to get all the layouts and layers of the DWG file using Java.\nRender CAD Layers of DWG file in Java By default, all the layers of the CAD drawing get rendered as shown above. However, you can render any specific layer of DWG by selecting the chosen ones using the setLayers method of the Java API as shown below.\nInitialize the Viewer class object using the source .dwg file. Instantiate HtmlViewOptions. Add the layer(s) to render using setLayers method of CadOptions. Render .dwg to HTML using view method. The following code renders the layers of a CAD file of DWG format in Java.\nRender CAD Layouts of DWG file in Java When we render the CAD drawing, we only get the model presentation by default. To render the model as well as all the non-empty layouts, we just have to set the RenderLayout property of CadOptions as true.\nInitialize the Viewer class object using the source .dwg file. Instantiate HtmlViewOptions. Set the RenderLayout property of CadOptions to true. Render .dwg as HTML using view method. The following code renders all the non-empty layouts along with the model of a CAD drawing with DWG format in Java.\nGet a Free API License You can get a free temporary license in order to use the API without evaluation limitations.\nConclusion In this article, you have learned how to view CAD files within Java applications. I hope you will be confident to build your own CAD Viewer using Java. You can further show models, layouts, and layers of CAD files within the application. You can learn more about GroupDocs.Viewer for Java using the documentation. In case you would have any queries, feel free to let us know via our forum.\nSee Also View CAD Documents using C# Convert CAD Drawings to PDF in Java Render Word documents as Minified HTML in Java Viewing Word Documents as PDF in Java ","permalink":"https://blog.groupdocs.com/viewer/viewing-cad-documents-using-java/","summary":"\u003cstrong\u003eC\u003c/strong\u003eomputer-\u003cstrong\u003eA\u003c/strong\u003eided \u003cstrong\u003eD\u003c/strong\u003eesign - \u003cstrong\u003eCAD\u003c/strong\u003e files are normally used for 2D and 3D designs. These designs are generated by CAD software programs and are normally used to create models and architectural plans. If you have worked with CAD, you’re most likely familiar with some of AutoCAD’s file formats, such as \u003cstrong\u003eDWG, DXF, DGN, DWF\u003c/strong\u003e. This article will discuss how to programmatically view CAD files within Java applications.","title":"View CAD Documents using Java"},{"content":"The most common and widely used word-processing file formats are DOC, DOCX, and ODT. The famous Microsoft Word and OpenOffice Writer support these formats and we normally use these formats for drafting the documents. Therefore, as a developer, we widely need to edit Word documents in our applications programmatically. In this article, we will discuss how to edit Word documents in C# using the .NET API for document editing.\nThe following are the topics discussed briefly in this article:\n.NET API - Word Documents Editing Edit Word Documents in C# .NET API for Word Documents Editing and Automation In this article, I will be using GroupDocs.Editor for .NET in C# examples, which is the document editing API and allows developers to load, edit, and save various document formats using WYSIWYG HTML editors. In addition to the word-processing document formats, the API supports editing spreadsheets, presentations, HTML, XML, TXT, DSV, TSV, and CSV formats.\nDownload the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Editor Edit Word Documents in C# Just after setting up the API, you can quickly move towards editing the Word document. The following steps will let you edit the word-processing document.\nLoad the Word document. Edit accordingly with options. Save the edited document. Load the Word document Firstly, load the document by providing the document path and the password, if the document is protected.\nusing (FileStream fs = File.OpenRead(inputFilePath)) { Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); loadOptions.Password = \u0026#34;password-if-any\u0026#34;; } Edit the Word document After loading, you can edit the loaded document as per your requirement. Here I am replacing all the occurrences of word \u0026ldquo;document\u0026rdquo; with the \u0026ldquo;edited document\u0026rdquo; in a Word document using the below C# code.\nusing (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; })) { Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions(); editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem; editOptions.EnableLanguageInformation = true; editOptions.EnablePagination = true; using (EditableDocument beforeEdit = editor.Edit(editOptions)) { string originalContent = beforeEdit.GetContent(); List\u0026lt;IHtmlResource\u0026gt; allResources = beforeEdit.AllResources; string editedContent = originalContent.Replace(\u0026#34;document\u0026#34;, \u0026#34;edited document\u0026#34;); } } Save the Edited Word document with Options Lastly, while saving the edited document content, you can further set various options. These options include; pagination, set password, locale, protection, or memory optimization settings. I set the above options in the below-mentioned code and save the edited document as a password-protected and read-only DOCX file.\nusing (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources)) { Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Docx); saveOptions.EnablePagination = true; saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo(\u0026#34;en-US\u0026#34;); saveOptions.OptimizeMemoryUsage = true; saveOptions.Password = \u0026#34;password\u0026#34;; saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, \u0026#34;write\\_password\u0026#34;); using (FileStream outputStream = File.Create(\u0026#34;filepath/editedDocument.docx\u0026#34;)) { editor.Save(afterEdit, outputStream, saveOptions); } } Complete Code For your convenience, I am showing the complete C# example that is explained above and it edits the Word document and then saves it in DOCX format.\nThe following is the output document in which all the occurrences are replaced using the above code.\nOutput document - All the occurrences are replaced\nConclusion To conclude, we discussed editing Word documents in C# using document editing API for .NET applications. You can use the API with WYSIWYG editors for the visual editing of your documents. After that, you can move ahead to build your own document editor. Similarly, you can also integrate the editing feature within your .NET application.\nFor more details, options, and examples, you can visit the documentation and the GitHub repository. For further queries, contact the support on the forum.\nRelated Articles Edit XML files Data using C# How to Edit XML files in Java See Also On-Premise Document Editing APIs Document Editing and Automation Cloud APIs Edit Word Documents Online ","permalink":"https://blog.groupdocs.com/editor/edit-word-documents-in-csharp/","summary":"The most common and widely used word-processing file formats that are supported by Microsoft Word and OpenOffice Writer are DOC, DOCX, and ODT. We normally use these formats for drafting the documents. Therefore, as a developer, we widely need to edit Word documents in our applications programmatically. In this article, we will discuss how to edit Word documents in C# using the .NET API for document editing.","title":"Edit Word Documents in C#"},{"content":"RIFF file container format used to store audio and video multimedia. This data stored in chunks can include lots of information such as the creation date, copyright information, artists, comments, etc. You can programmatically manipulate the metadata as well as RIFF INFO. This article guides developers to programmatically extract metadata and RIFF INFO from the WAV audio files in Java.\nThe following topics are covered in the article in brief:\nJava API for Metadata Management Extract Metadata of WAV Files in Java Extract RIFF INFO of WAV Files in Java Java API for Managing Metadata and RIFF INFO GroupDocs.Metadata for Java is the metadata automation and manipulation API for various document and image file formats. I will be using this API to extract metadata and RIFF INFO from WAV files. In addition to the audio WAV files, the API supports adding, removing, updating, and extracting metadata from MP3 files and videos. Furthermore, it also supports Microsoft Office and Open Office file formats, eBooks, images, and many other document formats.\nDownload and Configure Get the library from downloads or just add the following pom.xml configuration in your Maven-based Java applications to try the below-mentioned examples. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-metadata\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Extract Metadata of WAV Files in Java The following steps and the below-mentioned Java code example extract the metadata of the WAV files.\nLoad the WAV audio file. Get the WavRootPackage of metadata. Extract the WavPackage using getWavPackage method. Now you can access all the properties of WAV audio. The above code produces the following output with the provided wav file:\nBits per Sample: 16 Block Align: 4 Byte Rate: 176400 Number of Channels: 2 Audio Format: 1 Sample Rate: 44100 Extract RIFF INFO of WAV Files in Java If you want to extract the RIFF INFO of the WAV files, you can get it within your Java application using these steps. This is similar to the way we extracted the metadata shown above.\nLoad the WAV file. Get the WavRootPackage of metadata. Extract the RiffInfoPackage from the root package. Now the properties of WAV audio are accessible. The following code example extracts the RIFF INFO package metadata properties of the WAV file in Java.\nThe following is the output of the above code:\nArtist: GroupDocs Comment: Sample WAV File Copyright: CreationDate: 2020-12-03 Software: Sound Forge Engineer: SGEFFNER Genre: Mystery Conclusion In this article, we discussed how to programmatically extract metadata and RIFF INFO from WAV audio files in Java. I hope you find it quite simple. Now you can build your own metadata extractor Java application using GroupDocs.Metadata for Java.\nMore about the API Documentation Source code examples API Reference Let’s clear any doubts @ Free Support Forum.\nSee Also Extract RIFF INFO and Metadata of WAV files in C# Manage EXIF Data of Images in Java ","permalink":"https://blog.groupdocs.com/metadata/extract-riff-info-and-metadata-of-wav-files-in-java/","summary":"\u003cstrong\u003eRIFF\u003c/strong\u003e file container format used to store audio and video multimedia. This data stored in chunks can include lots of information such as the creation date, copyright information, artists, comments, etc. You can programmatically manipulate the metadata as well as RIFF INFO. This article guides developers to \u003cstrong\u003eprogrammatically extract metadata and RIFF INFO from the WAV audio files in Java\u003c/strong\u003e.","title":"Extract RIFF INFO and Metadata of WAV files in Java"},{"content":"This article addresses the problem of formatting raw JSON data into a presentable and easily understandable report format within the .NET application. We will be converting the JSON data into PDF and DOCX reports in C# using simple templates.\n.NET API for Report Generation GroupDocs.Assembly for .NET is the report generation and document automation API for .NET applications. It allows you to generate reports from the data available in various formats like JSON, XML, or CSV and the template in many different formats like Word document, spreadsheet, presentation, or text format. It also supports many report formatting features such as bullets, numbered lists, charts, tables, images, barcodes, etc.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Assembly Generate PDF Report from JSON Data in C# Let\u0026rsquo;s start with the steps that will lead you to convert JSON data into the formatted PDF report in C#.\nGet JSON data source Define template according to JSON data Provide JSON data source and template to simple C# code for report generation. JSON Data Firstly, the following sample JSON data is used for the PDF report generation that shows managers and their respective clients and details.\n\\[ { \u0026#34;Name\u0026#34;:\u0026#34;John Smith\u0026#34;,\u0026#34;Contract\u0026#34;:\\[ {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;A Company\u0026#34;},\u0026#34;Price\u0026#34;:1200000}, {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;B Ltd.\u0026#34;},\u0026#34;Price\u0026#34;:750000}, {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;C \u0026amp; D\u0026#34;},\u0026#34;Price\u0026#34;:350000}\\] }, { \u0026#34;Name\u0026#34;:\u0026#34;Tony Anderson\u0026#34;,\u0026#34;Contract\u0026#34;:\\[ {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;E Corp.\u0026#34;},\u0026#34;Price\u0026#34;:650000}, {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;F \u0026amp; Partners\u0026#34;},\u0026#34;Price\u0026#34;:550000}\\] }, { \u0026#34;Name\u0026#34;:\u0026#34;July James\u0026#34;,\u0026#34;Contract\u0026#34;:\\[ {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;G \u0026amp; Co.\u0026#34;},\u0026#34;Price\u0026#34;:350000}, {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;H Group\u0026#34;},\u0026#34;Price\u0026#34;:250000}, {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;I \u0026amp; Sons\u0026#34;},\u0026#34;Price\u0026#34;:100000}, {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;J Ent.\u0026#34;},\u0026#34;Price\u0026#34;:100000}\\] } \\] Template Secondly, define the following template in TXT, DOCX, or in the required format. This allows iterating Managers\u0026rsquo; data and their respective Clients and their details. After that, you can jump to code for report generation.\n\u0026lt;\u0026lt;foreach [in managers]\u0026gt;\u0026gt;Manager: \u0026lt;\u0026lt;[Name]\u0026gt;\u0026gt; Contracts: \u0026lt;\u0026lt;foreach [in Contract]\u0026gt;\u0026gt;- \u0026lt;\u0026lt;[Client.Name]\u0026gt;\u0026gt; ($\u0026lt;\u0026lt;[Price]\u0026gt;\u0026gt;) \u0026lt;\u0026lt;/foreach\u0026gt;\u0026gt; \u0026lt;\u0026lt;/foreach\u0026gt;\u0026gt; C# Steps to Convert JSON to PDF Report The following steps of C# code automate the conversion of JSON data to PDF report according to the defined template.\nDefine JSON data, the template file, and PDF output report file paths. Instantiate JsonDataSoure with JSON data file. Create DataSourceInfo with defined JsonDataSource. Call the AssembleDocument method of the DocumentAssembler class to generate the PDF report from the provided JSON data and defined template. The code will produce the PDF report as shown in the figure above. You may also test and above and similar examples from the GitHub repository.\nGenerate MS Word Report from JSON data in C# Similarly, like generating the PDF report above, you can create the DOCX report by following these steps:\nDefining the same template in DOCX format. Set the output report document format as DOCX. The rest of the code will remain the same to generate MS Word DOCX report from the JSON data. For more details, options, and examples, visit the documentation and the GitHub repository. For further queries, contact the free support on the forum.\nConclusion In this article, you learned to convert your JSON data into the PDF report within your .NET application using C#. Further, you can generate reports in other formats like DOCX using other data sources like CSV and XML. I hope you will feel comfortable starting building your report generator .NET application.\nSee Also Generate Reports from JSON Data in Java ","permalink":"https://blog.groupdocs.com/assembly/generate-reports-from-json-data-in-csharp/","summary":"This article addresses the problem of formatting raw JSON data into a presentable and easily understandable report format within the .NET application. We will be \u003cstrong\u003econverting the JSON data into PDF and DOCX reports in C#\u003c/strong\u003e using simple templates.","title":"Generate Reports from JSON Data in C#"},{"content":"eBooks of various formats are very common in everyday use. The eBook can contain text as well as images. If you want to use the images of any eBook elsewhere, you can get these easily extracted programmatically within your Java application. In this article, you will learn to automate, how to extract images from eBook files such as EPUB, PDF, FB2, CHM in Java.\nThe following topics will be covered below:\nJava API - Image Extraction from eBooks Extract Images from EPUB eBook in Java Extract Images from PDF, FB2, CHM eBooks in Java Java API to Extract Images from eBooks GroupDocs.Parser for Java API is a feature-rich automation API for extracting images from eBooks and documents in Java. In addition to this, the API supports parsing, and extraction of images, text, and metadata from word-processing documents, spreadsheets, PDF, presentations, emails, ZIP archives, and many other supported document formats.\nDownload and Configure Get the JAR file from the downloads section, or just add the following pom.xml configuration in your Maven-based Java applications to try the below-mentioned examples. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-parser\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Extract Images from EPUB eBook in Java Let\u0026rsquo;s start with the EPUB eBook to parse it for images. The following steps parse the EPUB eBook and extract all the images from it using Java code.\nCreate Parser class object with the eBook. Use getImages method to extract all the images of the EPUB eBook. Traverse the extracted images and save them to disk. EPUB eBook from the Adobe [Sample eBook Library][11]\nThe following Java code parses the EPUB eBook and saves the images of the eBook one by one to the disk.\nAs a result, all the images will be saved to the provided location. Here is one of the images shown as a sample.\nThe images can be saved in any of the following image file formats:\nJPG PNG WEBP GIF BMP Extract Images from PDF, FB2, CHM eBooks in Java In addition to the EPUB format, if you have your eBook in PDF, FB2, CHM, or with some other format, you can extract their images in the same way. Just pass your eBook to the Parser constructor while creating the object. After that, the getImages method will be extracting images from your provided eBooks using the same Java code.\n// Provide different eBook formats to the Parser constructor to extract the images. // Parser parser = new Parser(\u0026#34;ebook.epub\u0026#34;); Parser parser = new Parser(\u0026#34;ebook.pdf\u0026#34;); // Parser parser = new Parser(\u0026#34;ebook.fb2\u0026#34;); // Parser parser = new Parser(\u0026#34;ebook.chm\u0026#34;); Iterable\u0026lt;PageImageArea\u0026gt; images = parser.getImages(); Conclusion In this article, you learned to programmatically get all the images from PDF, EPUB, FB2, CHM eBooks within your Java applications. Now you can try to build your own image extractor Java application using GroupDocs.Parser for Java API.\nFor more about the API, you may visit documentation or open-source examples at GitHub. For any further issues, you can contact the quick support at the forum.\nSee Also Extract Images from EPUB, FB2, CHM eBooks in C# Extract Data from Invoices and Receipts in Java ","permalink":"https://blog.groupdocs.com/parser/extract-images-from-ebooks-in-java/","summary":"\u003cstrong\u003eeBooks\u003c/strong\u003e of various formats are very common in everyday use. The eBook can contain text as well as images. If you want to use the images of any eBook elsewhere, you can get these easily extracted programmatically within your Java application. In this article, you will learn to automate, \u003cstrong\u003ehow to extract images from eBook\u003c/strong\u003e files such as \u003cstrong\u003eEPUB, PDF, FB2, CHM\u003c/strong\u003e in \u003cstrong\u003eJava\u003c/strong\u003e.","title":"Extract Images from EPUB, FB2, CHM eBooks in Java"},{"content":"The digital signature is a trustworthy scheme for verifying the authenticity of your documents. Digital signatures are often used to implement electronic signatures. In this article, you will learn how to electronically sign PDF and Word documents with digital certificates using C#.\n.NET API for Digital Signatures and Certificates For signing documents with the digital certificate, I will be using GroupDocs.Signature for .NET API in the C# examples of this article. In addition to the signing of PDF documents, this API supports digital signatures for word-processing documents and spreadsheet formats.\nDownload the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Signature Sign PDF with Digital Certificate in C# After setting up the environment, you are few lines away from the successful signing of your documents. Follow the following steps to get your document signed with the available digital certificate using C#.\nInitialize Signature object with the document to sign. Initialize DigitalSignOptions object with the certificate file. Set required sign options such as password, and position. Call Sign method to sign the document with the digital certificate. The following code example signs the PDF documents with the certificate in C#.\nSign with Digital Signature using custom Appearance in C# The digital signature can be customized to have different presentations. For the personalized appearance, the following options can be customized using the PdfDigitalSignatureAppearance class.\nBackground Contact Info Date signed at Digital signed Location Reason Font Family Font Size Further, you can alter following properties:\nHeight Width Border Style Show on All Pages or Not Signed PDF document with digital certificate using GroupDocs.Signature for .NET in C#\nIn the following example, I am using almost all of the above-mentioned properties. This example customizes the appearance of the digital signature in a PDF document using C#.\nSign Word Docs with Digital Certificate in C# Similarly, you can sign Word documents using the certificate. Just provide the right document when you start with initializing the Signature object.\nInitialize Signature object with the Word document to sign. Initialize DigitalSignOptions object with the certificate file. Set sign options such as password, and position. Sign the document with the digital certificate using the Sign method. The example signs the Word documents using the certificate in C#.\nConclusion In this article, you have learned to electronically sign PDF and Word documents with the digital certificate using C#. Further, you can easily customize the appearance of the signature. Now you can try building your own .NET application for signing PDF and Word documents with digital certificates having a custom appearance in C#.\nQuick Links for more about Signature API Examples on GitHub Developer Guide and Documentation Forum for Quick Support See Also Verify Digital Signature in Documents using C# Verify Digital Signature in Documents using Java ","permalink":"https://blog.groupdocs.com/signature/sign-documents-with-digital-certificate-using-csharp/","summary":"The \u003cstrong\u003edigital signature\u003c/strong\u003e is a trustworthy scheme for verifying the authenticity of your documents. Digital signatures are often used to implement electronic signatures. In this article, you will learn how to electronically sign PDF and Word documents with digital certificates using C#.","title":"Sign Documents with Digital Certificate using C#"},{"content":"RIFF (Resource Interchange File Format) is a file container format for storing data as tagged chunks. It is mainly used to store multimedia like video and audio. The chunk may include information such as the artist, the creation date, and copyright information, etc. This article will be guiding developers to extract metadata and RIFF INFO from the WAV audio files in C#.\nThe following topics will be covered in the article in brief:\n.NET API for Managing Metadata Extract Metadata of WAV Files in C# Extract RIFF INFO of WAV Files in C# .NET API for Managing Metadata In this article, I will be using GroupDocs.Metadata for .NET API in the C# examples for extracting metadata from WAV files. In addition to the audio WAV files, the API supports adding, removing, updating, and extracting metadata from MP3 files and videos. Furthermore, it supports Microsoft Office and Open Office file formats, eBooks, images, and many other document formats.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Metadata Extract Metadata of WAV Files in C# Let\u0026rsquo;s start with the extraction of the metadata from the WAV files. Follow the steps and the below-mentioned code example for extracting the WAV package metadata properties of WAV files in C#.\nLoad the WAV audio file. Get the WavRootPackage of metadata. Extract the WavPackage from the root package. Now you can access all the properties of WAV audio. Here is the output of the above code:\nBits per Sample: 16 Block Align: 4 Byte Rate: 176400 Number of Channels: 2 Audio Format: 1 Sample Rate: 44100 Extract RIFF INFO of WAV Files in C# RIFF INFO of the WAV files can also be extracted in no different way than the extraction of WavPackage properties shown earlier. Using the following steps, you can extract the RIFF INFO of the audio file of WAV file format within your .NET application.\nLoad the WAV audio file. Get the WavRootPackage of metadata. Extract the RiffInfoPackage from the root package. Now access the properties of WAV audio. The following code example extracts the RIFF INFO package metadata properties of the WAV file in C#.\nThe following is the output of the above code:\nArtist: GroupDocs Comment: Sample WAV File Copyright: CreationDate: 2020-12-03 Software: Sound Forge Engineer: SGEFFNER Genre: Mystery Conclusion In short, it is very easy to take out the metadata and RIFF INFO from the WAV files in C#. After trying the above examples, think about developing your own metadata extractor .NET application like GroupDocs.Metadata App.\nThere are many more open-source examples available at GitHub Repository. Download the source code and quickly run the examples using the getting started guide. In case of any difficulty, visit the documentation or reach the support team any time on the forum.\nSee Also Manage EXIF Data of Images in C# Manage EXIF Data of Images in Java ","permalink":"https://blog.groupdocs.com/metadata/extract-riff-info-and-metadata-of-wav-files-in-csharp/","summary":"\u003cstrong\u003eRIFF\u003c/strong\u003e (Resource Interchange File Format) is a file container format for storing data as tagged chunks. It is mainly used to store multimedia like video and audio. The chunk may include information such as the artist, the creation date, and copyright information, etc. This article will be guiding developers to \u003cstrong\u003eextract metadata and RIFF INFO from the WAV audio files in C#\u003c/strong\u003e.","title":"Extract RIFF INFO and Metadata of WAV files in C#"},{"content":"GIF and APNG are from the list of most common animated image formats. GIF stands for Graphics Interchange Format and APNG files are the Animated Portable Network Graphics. If we compare GIF and APNG files of the same quality, it is noticed that APNG files are smaller in size. This article will be discussing to play and pause animated GIF and APNG files in an HTML web page using C#.\nThe following topics will be covered below:\n.NET API for Animated Images Play and Pause Animated APNG Image in HTML using C# Play and Pause Animated GIF Image in HTML using C# .NET API for Animated Images For the animated images, I will be using GroupDocs.Viewer for .NET API in the C# examples of this article. Along with the rendering of GIF and APNG images, this API supports rendering word-processing documents, spreadsheets, PDF, presentations, emails, ZIP archives, Visio and CAD drawings, eBooks images, programming source code files, and many other document formats.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Viewer Play and Pause Animated APNG Images in C# To render APNG image file to an HTML page, follow the below-mentioned steps. The C# souce code and output are also available below.\nCreate a Viewer class object with the APNG image file. Create the HTMLViewOptions object using ForEmbeddedResources method, and providing it the output HTML file. Call the View method of viewer object to create the view for the APNG animated image. The following is the C# code that renders APNG image to HTML web page. It also provides the play and pause option for the animated PNG file.\nHere is the view of the output HTML page with the APNG file. From this link, you can also experience the play and pause of APNG animation that is created using the above C# code.\nPlay and Pause Animated GIF Images in C# If you want to render the GIF images to an HTML web page, you can do it using the similar code as above. The play and pause option will also be available for GIF animations as it is for APNG animations. The following C# code example renders the GIF animation file to HTML with the play and pause option.\nConclusion I am sure that you will be confident to give a try rendering animated GIF and APNG files to HTML web pages using C#. You can build your own .NET application having the feature to play and pause GIF and APNG animations in C#.\nFor more about the API and animated images, visit the documentation or the open-source examples at GitHub. Regarding any queries or confusion, feel free to contact support at the forum.\nHave a nice Animated Day with C#.\nSee Also CAD Documents Viewer using C# and Java ","permalink":"https://blog.groupdocs.com/viewer/play-pause-animated-gif-and-apng-in-web-pages-using-csharp/","summary":"\u003cstrong\u003eGIF\u003c/strong\u003e and \u003cstrong\u003eAPNG\u003c/strong\u003e are from the list of most common animated image formats. GIF stands for \u003cstrong\u003eG\u003c/strong\u003eraphics \u003cstrong\u003eI\u003c/strong\u003enterchange \u003cstrong\u003eF\u003c/strong\u003eormat and APNG files are the \u003cstrong\u003eA\u003c/strong\u003enimated \u003cstrong\u003eP\u003c/strong\u003eortable \u003cstrong\u003eN\u003c/strong\u003eetwork \u003cstrong\u003eG\u003c/strong\u003eraphics. If we compare GIF and APNG files of the same quality, it is noticed that APNG files are smaller in size. This article will be discussing to \u003cstrong\u003eplay and pause animated GIF and APNG files in an HTML web page using C#\u003c/strong\u003e.","title":"Play and Pause Animated GIF and APNG Images in Web Pages using C#"},{"content":"An electronic book, popularly known as eBook, is a book in digital form that is readable on various electronic devices. These devices include dedicated eReaders like Kindle, or laptops, desktop computers, and smartphones. There are many popular file formats of eBooks in-use in the market that include; EPUB, FictionBook FB2, Microsoft Compiled HTML Help - CHM, DjVu, MOBI, PDF, and many others. As a programmer, this article will help you to programmatically extract images from eBooks in C# within .NET applications.\nThe following topics will be covered below:\n.NET API for Image Extraction from eBooks Extract Images from EPUB eBook in C# Extract Images from FB2, CHM eBooks in C# .NET API for Image Extraction from eBooks For the extraction of images from eBooks, I will be using GroupDocs.Parser for .NET API in the C# examples of this article. Along with the eBooks, this API supports parsing, and extraction of images from word-processing documents, spreadsheets, PDF, presentations, emails, ZIP archives, and many other document formats.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Parser Extract Images from EPUB eBook in C# Let\u0026rsquo;s start with the EPUB eBook to parse it for images. Following steps followed by the C# code parses the EPUB eBook and extracts all the images in it.\nCreate Parser class object. Use GetImages method to extract all the images of the EPUB eBook. Traverse the extracted images to save these, one by one. EPUB eBook from the Adobe [Sample eBook Library][12]\nThe following C# code implements the mentioned parsing steps to parse to the above shown EPUB eBook and saves the extract images one by one to the disk.\nAs a result, all the available images will be saved. Here is one of the images shown as a sample.\nYou can save the extracted images in any of the following supported image file formats:\nJPG PNG WEBP GIF BMP Extract Images from FB2, CHM eBooks in C# If you have the eBook in FB2, CHM, or with some other format, you can extract its images in the same way. You just have to pass your eBook to the Parser constructor while creating the object. Then the GetImages method will be extracting images from any of the provided eBooks using the same C# code.\n// Pass the FB2, CHM, PDF, or any other eBook to Parser contructor Parser parser = new Parser(\u0026#34;ebook.fb2\u0026#34;); // FB2 // Parser parser = new Parser(\u0026#34;ebook.chm\u0026#34;); // CHM // Parser parser = new Parser(\u0026#34;ebook.pdf\u0026#34;); // PDF IEnumerable\u0026lt;PageImageArea\u0026gt; images = parser.GetImages(); Conclusion I hope now you will be comfortable in programmatically getting all the images from eBooks with EPUB, FB2, CHM, and other file formats within your .NET applications. You can even build your own image extractor application using GroupDocs.Parser for .NET API.\nFor more about the API, you may visit documentation or open-source examples at GitHub. For any further issues, you can contact the quick support at the forum.\nSee Also Extract Images from Word, Excel. PPT files using C# Extract Images from PDF Documents using C# Extract Images from Documents using Java ","permalink":"https://blog.groupdocs.com/parser/extract-images-from-ebooks-in-csharp/","summary":"An electronic book, popularly known as \u003cstrong\u003eeBook\u003c/strong\u003e, is a book in digital form that is readable on various electronic devices. These devices include dedicated eReaders like Kindle, or laptops, desktop computers, and smartphones. There are many popular file formats of eBooks in-use in the market that include; \u003cstrong\u003eEPUB\u003c/strong\u003e, FictionBook \u003cstrong\u003eFB2\u003c/strong\u003e, Microsoft Compiled HTML Help - \u003cstrong\u003eCHM\u003c/strong\u003e, \u003cstrong\u003eDjVu\u003c/strong\u003e, \u003cstrong\u003eMOBI\u003c/strong\u003e, \u003cstrong\u003ePDF\u003c/strong\u003e, and many others. As a programmer, this article will help you to \u003cstrong\u003eprogrammatically extract images from eBooks in C#\u003c/strong\u003e within .NET applications.","title":"Extract Images from EPUB, FB2, CHM eBooks in C#"},{"content":"QR code (Quick Response code) is the type of 2D Barcodes or matrix barcode. It is the machine-readable label that contains information about the attached item. This article will guide you about programmatically generating QR codes in Java to electronically sign your documents and images.\nHere are the quick links to the covered topics:\nQR code Generation Java API Generate QR code and Add to Documents in Java Generate and Add QR code to JPG, PNG, or WebP Image in Java QR Code Generator - Java API In this article, I am using GroupDocs.Signature for Java API to generate QR codes and attached these to PDF files, Word documents, spreadsheets, presentations, and images. This API supports different types of electronic signatures for a vast variety of file formats. Among QR code types, the API supports the following:\nAztec Code DataMatrix Code GS1 DataMatrix GS1 QR QR Download and Configure You may get the JAR file from the downloads section, or add the following pom.xml configuration in your Maven-based Java applications before you move on to examples. For the details, you may visit the API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-signature\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.2\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Generate QR Code in Java - Add to PDF, Word, Excel, PPT The Signature and QrCodeSignOptions classes can quickly create and add different types of QR codes to documents and images in Java.\nCreate the Signature class object with the source document. Set the QR code properties using the QrCodeSignOptions class. Most importantly, select the appropriate from the QR code types. Call the sign method with the Signature object, passing the resultant document path and QR code options. The following Java code will generate QR code and attach it to the provided PDF document.\nThe resultant PDF file is shown here with the QR code that is added using the above code. Similarly, you can provide any word document, spreadsheet, presentation, or any other supported document format to attach the QR codes.\nPDF file with added QR code using GroupDocs.Signature for Java API\nGenerate QR Code in Java - Add to JPG, PNG, or WebP Images Now, you might be thinking that there will be a different strategy to add QR codes to images. The answer is NO. You can use the same above code to generate QR code and add it to the images as well. The API allows you to add QR codes to JPG/JPEG, PNG, WebP, BMP, GIF, SVG, CMX, and TIFF images.\nYou can also change the appearance of the QR codes like background color, forecolor, transparency, and more. Here, I have set the black background color and forecolor as white.\nConclusion Now, you should be confident enough to generate QR codes within your Java applications to electronically signing documents and images using GroupDocs.Signature. To remove any ambiguity or any unaddressed scenario on the documentation, feel free to contact the Support Team on the forum. Many other examples are also available on GitHub.\nSee Also Generate QR codes in C# for Documents and Images ","permalink":"https://blog.groupdocs.com/signature/generate-qr-codes-in-java-to-sign-documents-and-images/","summary":"\u003cstrong\u003eQR code\u003c/strong\u003e (\u003cstrong\u003eQ\u003c/strong\u003euick \u003cstrong\u003eR\u003c/strong\u003eesponse code) is the type of 2D Barcodes or matrix barcode. It is the machine-readable label that contains information about the attached item. This article will guide you about programmatically adding QR codes to electronically sign your documents and images using Java.","title":"Generate QR Code in Java to Sign Documents and Images"},{"content":"As PDF is the popular portable document format, so there comes the need to convert documents of other formats to PDF. Today, we will see different ways to convert PPT, PPTX, or ODP presentations to PDF in Java. In an earlier post, we have seen how to convert presentations using C#. The following scenarios will be covered in this article:\nPresentation Conversion Java API Convert PPT, PPTX, or ODP Presentations to PDF in Java Convert Specific Slides of Presentation to PDF Converting Consecutive Slides of Presentation to PDF Convert Password Protected Presentation to PDF Presentation Conversion Java API For the conversion of presentations to PDF format, I will be using GroupDocs.Conversion for Java in the examples of this article. Along with this feature, the API supports a long list of file formats to convert into one another in Java. These include converting eBooks, word-processing documents, spreadsheets, images, web-pages, emails, CAD, and many other document formats.\nDownload or Configure Download the JAR from downloads or in the case of the Maven-based Java application, add the following repository and dependency configurations in the pom.xml.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.1\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert PPT, PPTX, or ODP Presentations to PDF in Java Once the library is configured in your project, you now have various options to convert your presentations into portable PDF format. Let start with the simplest and quickest way to convert the whole presentation file.\nCreate Converter class object with the source document. Instantiate PdfConvertOptions object. Call convert method of Converter class. Pass the output file path and the created PdfConvertOptions. Here is the 3 liner Java code that converts the PowerPoint PPTX presentation file into PDF.\nSimilarly, you can convert the presentations of Microsoft PowerPoint PPT format or OpenOffice Impress ODP format to PDF with the same examples of this article.\nConvert Specific Slides of Presentation to PDF in Java If you want to skip few slides from the presentation, or just want to convert some specific slides to PDF instead of converting the whole presentation, setPages is the method you are searching for.\nThe below code converts the selected pages of the PPTX presentation to PDF in Java.\nConvert Consecutive Slides of Presentation to PDF in Java You can also select the specific set of slides in sequence to get them converted into PDF. Just mention the starting slide number, and then the number of slides in the sequence ahead.\nStart with initialization of Converter object with the presentation file. Set starting page number. Set number of consecutive pages. Convert slides to PDF using the convert method. Here is the Java code showing the above steps and converting 3 consecutive slides of a PPTX presentation into PDF starting from the 2nd slide.\nConvert Password Protected Presentation to PDF in Java There are many load options while loading any presentation. You can provide the password for the protected presentation using setPassword method. After loading the presentation with the password, you can convert it just like any other presentation we converted before.\nThe following code converts a password protected PPTX presentation to PDF in Java after providing the password while loading.\nFurther, you can set the following load options:\nSpecify the presentation format, however, it is auto-detected. Show or hide the comments. Show or hide hidden slides. Specify the substitute font for the missing fonts. Conclusion After trying the above examples, you must be confident to programmatically convert presentations and slides to PDF in your Java applications. You can try to build your own application using the above-highlighted features for MS PowerPoint and OpenOffice Impress presentation formats like PPT, PPTX, ODP, etc.\nNeed Help? First, see more about the conversion features of the API from the documentation. We would be there on the forum to help you out of any further facing issues.\nSee Also Converting Presentations (PPT, PPTX) to PDF in C# ","permalink":"https://blog.groupdocs.com/conversion/convert-presentations-odp-pptx-ppt-to-pdf-in-java/","summary":"As PDF is the popular portable document format, so there comes the need to convert documents of other formats to PDF. Today, we will see \u003cstrong\u003edifferent ways to convert PPT, PPTX, or ODP presentations to PDF in Java\u003c/strong\u003e. In an earlier post, we have seen [how to convert presentations using C#][1].","title":"Convert Presentations to PDF in Java"},{"content":"JSON is a formatted and readable data interchange format to transmit data with attributes. However, the large data in JSON format is not very presentable and easily understandable. We mostly need to convert the large JSON data into a presentable format. This article will guide you to convert JSON data into PDF and MS Word reports in Java using a simple template.\nReport Generation Java API I will be using GroupDocs.Assembly for Java API to generate reports from the provided JSON data and template in DOCX and TXT format. It also supports automatic report generation in multiple formats from CSV, XML data sources.\nDownload or Configure You may download the JAR file from the downloads section, or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-assembly\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;21.1\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Generate PDF Report from JSON Data in Java Let\u0026rsquo;s quickly jumps to the steps that will lead you to convert JSON data into the formatted PDF report.\nGet JSON data source Define template according to JSON data Provide JSON data source and template to simple java code for report generation. JSON Data For the PDF report generation, I will be using the following sample JSON data of managers and their respective clients and details.\n\\[ { \u0026#34;Name\u0026#34;:\u0026#34;John Smith\u0026#34;,\u0026#34;Contract\u0026#34;:\\[ {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;A Company\u0026#34;},\u0026#34;Price\u0026#34;:1200000}, {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;B Ltd.\u0026#34;},\u0026#34;Price\u0026#34;:750000}, {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;C \u0026amp; D\u0026#34;},\u0026#34;Price\u0026#34;:350000}\\] }, { \u0026#34;Name\u0026#34;:\u0026#34;Tony Anderson\u0026#34;,\u0026#34;Contract\u0026#34;:\\[ {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;E Corp.\u0026#34;},\u0026#34;Price\u0026#34;:650000}, {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;F \u0026amp; Partners\u0026#34;},\u0026#34;Price\u0026#34;:550000}\\] }, { \u0026#34;Name\u0026#34;:\u0026#34;July James\u0026#34;,\u0026#34;Contract\u0026#34;:\\[ {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;G \u0026amp; Co.\u0026#34;},\u0026#34;Price\u0026#34;:350000}, {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;H Group\u0026#34;},\u0026#34;Price\u0026#34;:250000}, {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;I \u0026amp; Sons\u0026#34;},\u0026#34;Price\u0026#34;:100000}, {\u0026#34;Client\u0026#34;:{\u0026#34;Name\u0026#34;:\u0026#34;J Ent.\u0026#34;},\u0026#34;Price\u0026#34;:100000}\\] } \\] Template Define the following template in TXT or DOCX format. This will allow to iterate over Managers and their respective Clients and their details. After that, you can jump to code for report generation.\n\u0026lt;\u0026lt;foreach [in managers]\u0026gt;\u0026gt;Manager: \u0026lt;\u0026lt;[Name]\u0026gt;\u0026gt; Contracts: \u0026lt;\u0026lt;foreach [in Contract]\u0026gt;\u0026gt;- \u0026lt;\u0026lt;[Client.Name]\u0026gt;\u0026gt; ($\u0026lt;\u0026lt;[Price]\u0026gt;\u0026gt;) \u0026lt;\u0026lt;/foreach\u0026gt;\u0026gt; \u0026lt;\u0026lt;/foreach\u0026gt;\u0026gt; Java Steps to Generate PDF Report from JSON Following steps and Java code allows automatic conversion of JSON data into PDF report as per defined template.\nDefine JSON data file, .txt template file, and PDF output report file paths. Instantiate JsonDataSoure with JSON data file. Create DataSourceInfo with defined JsonDataSource. Call the assembleDocument method of the DocumentAssembler class to generate the PDF report from the provided JSON data and defined template. Generate MS Word Report from JSON data in Java Similarly, like the above PDF report generation, you can easily create the DOCX report by:\nDefining the same template in DOCX format. Set the output report document format as DOCX. The rest of the code will remain the same to generate MS Word DOCX report from the JSON data. For more details, options, and examples, you can go through the documentation and GitHub repository. In case of further queries and ambiguities, contact the free support on the forum.\nConclusion I hope you will feel comfortable building your own Java-based application to generate reports by converting JSON data to PDF format. Similarly, you can generate reports in other formats like DOCX using other data sources like CSV and XML.\nSee Also Generate Reports from JSON Data in C# ","permalink":"https://blog.groupdocs.com/assembly/generate-pdf-report-from-json-data-in-java/","summary":"JSON is a formatted and readable data interchange format to transmit data with attributes. However, the large data in JSON format is not very presentable and easily understandable. We mostly need to convert the large JSON data into a presentable format. This article will guide you to \u003cstrong\u003econvert JSON data into PDF report in Java\u003c/strong\u003e using a simple template.","title":"Generate Reports from JSON Data in Java"},{"content":"QR Codes have gained popularity in recent years. As a developer, let us see how to programmatically generate QR codes in C# to electronically sign documents and images. In the earlier post, we discussed attaching QR codes with documents and images using Java.\nThe following topics will be converted in this article:\n.NET API for Generating QR codes and Signing Generate QR codes - Sign documents in C# Generate QR codes - Add to JPG, PNG, or WebP image in C# QR Codes Generator - .NET API In this article, I will be using GroupDocs.Signature for .NET API for generating QR codes. This API supports Aztec Code, DataMatrix Code, GS1 DataMatrix, GS1 QR, QR types. It also supports PDF files, word processing documents, spreadsheets, presentations, images, and a lot more document file formats to add QR codes.\nFor the examples below, I would recommend you to either install the API from the NuGet package manager or get the MSI installer, and DLLs from the downloads section. You may also use the following command in your Package Manager Console.\nPM\u0026gt; Install-Package GroupDocs.Signature For the details, you may visit the API Reference.\nGenerate QR Codes in C# - Add to PDF, Word, Excel, PPT files The Signature and QrCodeSignOptions classes help to quickly create different types of QR codes and sign documents and images within .NET application. The following steps show how to generate QR codes using C# and then attach them to a PDF document:\nInitialize the Signature class object with the source document. Set the QR code properties using the QrCodeSignOptions class. Most importantly, select the appropriate from the available QR code types. (Aztec, DataMatrix, GS1 DataMatrix, GS1 QR, QR) Call the Sign method, passing the resultant document path and QR code options. The following C# code implements the above steps. Similarly, you can provide a word document, spreadsheet, presentation, or any other supported document format to attach the generated QR codes.\nThis is the PDF file with QR code as an output of the above code.\nPDF file with added QR code using GroupDocs.Signature for .NET API\nGenerate QR Codes in C# - Attach with JPG, PNG, or WebP Images You can use the same above code to attach the generated QR codes with the images as well. The API allows you to add QR codes to JPG/JPEG, PNG, WebP, BMP, GIF, SVG, CMX, and TIFF images and some more image file formats as well.\nWhile generating QR codes, you can also change the background color, forecolor, transparency, and some more properties to alter their appearance. The below C#code changes the background color of the QR code to black and sets the forecolor to white.\nConclusion I believe, now you are familiar with how to create QR codes in C# to sign your documents and images electronically within .NET applications. You can further change the appearance of the QR codes that suits your brand.\nSee Also Generate QR codes to Sign Documents and Images in Java\nDocumentation\nFree Support Team\nExamples on GitHub\n","permalink":"https://blog.groupdocs.com/signature/generate-qr-codes-in-csharp-to-sign-documents-and-images/","summary":"In this article, we will see \u003cstrong\u003ehow to programmatically add QR codes to electronically sign documents and images using C#\u003c/strong\u003e. GroupDocs.Signature for .NET is the API to add QR codes in PDF files, word processing documents, spreadsheets, presentations, and images. It supports various electronic signatures for a large list of supported file formats. Among the QR codes, it supports Aztec Code, DataMatrix Code, GS1 DataMatrix, GS1 QR, QR types. The API allows us to add QR codes to JPG/JPEG, PNG, WebP, BMP, GIF, SVG, CMX, and TIFF images and some more image file formats as well.","title":"Generate QR Code in C# to Sign Documents and Images"},{"content":"In the era of online businesses, the use of digital invoices and receipts has largely increased. Similarly, the efficient data extraction from these digital invoices is also demanding. In this article, you will be knowing how to extract data from PDF invoices or receipts programmatically in Java. Previously we have seen the extraction of invoice data using C# in one of the earlier posts.\nDocument Parsing and Data Extraction Java API I will be using GroupDocs.Parser for Java to parse PDF invoices and extract data values within Java application. This API also allows extracting text, images, and metadata from documents, images, presentations, archives, email, and many other supported document formats.\nDownload or Configure From the downloads section, you may download the JAR file or just get the repository and dependency configurations for the pom.xml of your maven-based Java applications.\nHow to Extract PDF Invoice Data in Java The following steps will allow you to easily extract data from the PDF invoices using Java.\nCreate a template. Parse the PDF invoice according to the created template. Extract the information from the parsed PDF. Create Template for the Invoice Below is the template that is created according to the invoice. You may also download the used invoice from the sample files available at the GitHub repository.\nParse PDF Invoice/Receipt for Data Extraction The following lines will parse the PDF invoice according to the created template and extract the invoice data using simple Java code.\nThe Output The following is the output of the above code after extraction of data from the invoice.\n**FROMCOMPANY:** DEMO - Sliced Invoices **FROMADDRESS:** Suite 5A-1204 123 Somewhere Street Your City AZ 12345 **FROMEMAIL:** admin@slicedinvoices.com **TOCOMPANY:** Test Business **TOADDRESS:** 123 Somewhere St Melbourne, VIC 3000 **INVOICENUMBER:** Invoice Number **INVOICENUMBERVALUE:** NV-3337 **INVOICEORDER:** Order Number **INVOICEORDERVALUE:** 12345 **INVOICEDATE:** Invoice Date **INVOICEDATEVALUE:** January 25, 2016 **DUEDATE:** Due Date **DUEDATEVALUE:** January 31, 2016 **TOTALDUE:** Total Due **TOTALDUEVALUE:** $93.50 There are many other open-source examples available at GitHub Repository. You can download the code and quickly run the examples. For more guidance and some other ways to use templates for parsing and data extraction in Java, visit the developer guide in the documentation. In case of any further difficulty, reach the support team for free, any time on the forum.\nSee Also More about parsing PDF invoices in Java using templates Extract Data from Invoices or Receipts in C# ","permalink":"https://blog.groupdocs.com/parser/extract-data-from-invoices-or-receipts-in-java/","summary":"In the era of online businesses, the use of digital invoices and receipts has largely increased. Similarly, the efficient data extraction from these digital invoices is also demanding. In this article, you will be knowing \u003cstrong\u003ehow to extract data from PDF invoices or receipts programmatically in Java\u003c/strong\u003e.","title":"Extract Data from Invoices and Receipts in Java"},{"content":"WebP is the image format introduced by Google that provides lossless and lossy compression for images on the web. WebP images are smaller in size as compared to the well-known and vastly used image formats like PNG and JPG, hence provides a faster web experience.\nIf you are here just to convert your WebP files to JPG, PDF, or WebP to PNG online, use the free online WebP conversion tool by GroupDocs that is developed using GroupDocs.Conversion API. However, if you want to achieve the exact thing programmatically in Java, continue reading.\nWebP images give transparency like PNG, animate like GIF, and the most important for any web developer is the smaller size than comparative quality JPG format. However, due to incompatibility issues or any other requirement, it is sometimes needed to convert the WebP image into JPG, PNG, or other formats.\nJava API to Convert WebP Images Convert WebP to JPG in Java Convert WebP to JPG, PNG, TIFF with Advanced Options in Java WebP to PDF Conversion in Java The Original WebP image is changed to JPG format with color adjustments and options Image Used: A Wild Cherry (Prunus avium) in flower Image Author: Benjamin Gimmel Photo licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license Java API to Convert WebP Images GroupDocs provides the solution to convert 50+ document and image file formats. As a Java developer, you can use GroupDocs.Conversion for Java to convert WebP images within your Java-based applications.\nYou may download the JAR file from the downloads section or just add the following repository and dependency configurations in the pom.xml of your maven-based Java applications.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.10.3\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; While using GroupDocs.Conversion API, you can get the possible conversion formats of the source document or image by using the getPossibleConversions() method of the Converter class. There are several ways to get the possible conversions, you may visit the documentation or the API reference for this.\nConvert WebP to JPG in Java The following steps help you convert the WebP image to JPG or other formats:\nInitialize the Converter class object with the WebP image file. Set the conversion format to JPG using setFormat method of ImageConvertOptions. Convert the WebP to JPG using the convert method. The below Java source code shows how easy is the WebP conversion to JPG format. For the conversion to some other supported formats, you just have to change the output format of the image by setting the appropriate ImageFileType. For instance, to convert WebP to PNG, just change the below ImageFileType from JPG to PNG.\nConvert WebP to JPG, PNG, TIFF with Advanced Options in Java While converting the WebP to JPG, PNG, or other formats, you can also apply color adjustments to the output images. You can change the contrast, brightness, and gamma of the resultant image. The Image can be flipped, rotated, apply watermarks, or get the grayscale image as the output.\nAbove, I have shown the resultant images that are converted from WebP to JPG format after applying different variations using below mentioned Java code.\nWebP to PDF Conversion in Java Along with the conversion of WebP to other image formats, GroupDocs.Conversion API allows converting WebP into document formats like PDF as well. The following example shows how you can quickly convert WebP images into PDF (Portable Document Format). You can further apply different customization for the resultant PDF file using relevant Convert Options.\nThere are many other open-source examples that are publicly available at GitHub Repository. Download the source code and quickly run the examples using the getting started guide. In case of any difficulty, look at the documentation or reach us at any time on the forum.\nConclusion I think, as a Java developer, you are now confident to programmatically convert the WebP images to JPG, PNG, GIF, TIFF, PDF, and other formats in Java. You can now easily change the color adjustment (contrast brightness, gamma, grayscale) to the converted formats and flip, rotate, or apply watermarks.\nWhy not create your own java-based application? It can convert the supported image format and apply different filters and color variations.\nHave a nice coding day!\nSee Also WebP to PNG Online Converter WebP to JPG Online Converter Convert WebP to JPG, PNG, TIFF, and PDF in C# ","permalink":"https://blog.groupdocs.com/conversion/convert-webp-to-jpg-png-and-pdf-in-java/","summary":"WebP images give transparency like PNG, animate like GIF, and the most important for any web developer is the \u003cstrong\u003esmaller size than comparative quality JPG format\u003c/strong\u003e. However, due to incompatibility issues or any other requirement, it is sometimes needed to convert the WebP image into JPG, PNG, or other formats.","title":"Convert WebP to JPG, PNG, and PDF in Java"},{"content":"Whether you want to build an application with spot the difference feature or if you want to compare two images programmatically within any of your .NET based image processing applications, you are at the right place. After this article, you can easily compare JPG, PNG, BMP, or images with some other file formats. Without wasting time, let\u0026rsquo;s compare images in C# using the .NET API for document and image comparison.\n.NET Image Comparison API I will be using GroupDocs.Comparison for .NET API for comparing images in this article. This API supports comparing JPG, PNG, BMP, DICOM, DCM, DjVu images along with many other supported file formats.\nYou can download the DLLs or MSI installer from the downloads section or install the API in your .NET application via NuGet.\nPM\u0026gt; Install-Package GroupDocs.Comparison Compare Images in C# to Highlight Differences Comparing two images in C# is too easy with GroupDocs.Comparison within .NET application. The following steps explain how we can compare any two JPG, PNG, BMP, or any other image. It successfully detects the changes and highlights them in the output/resultant image.\nDefine the first image using the Comparer class. Add the second image using Add method of Comparer object. Call Compare method to compare both the images and save the resultant image that highlights the differences among both the images. The code below shows how to compare two images in C#. As an example, it compares two JPG images and saves the output with differences.\nThe images shown at the start of the article are used in this code. Images on the left are compared, and the output is shown on the right side that highlights the differences.\nConclusion In this article, we learned how to compare two images in C# using image comparison API. Now you can build your own image comparison application that can compare images and highlight the found differences to its users.\nTo get a complete idea about the features of the API, you can go through the documentation. You may also contact the Free Support Team or Free Consulting Team that even writes code to help you understand the usage of GroupDocs APIs as per your requirements.\nSee Also Compare Images in Java to Find Differences Compare Excel, Word, PDF, or PowerPoint files in C# ","permalink":"https://blog.groupdocs.com/comparison/compare-images-in-csharp-dotnet/","summary":"Whether you want to build an application with spot the difference feature or if you want to compare two images within any of your image processing .NET based applications, you are at the right place. After this article, you can easily compare JPG, PNG, BMP, or images with some other file formats. Without wasting time, let us compare images in C# using the [.NET API for document and image conversion][1].","title":"Image Comparison in C# to Spot the Differences"},{"content":"\rNew Year 2021 starts, but soon the big offer ends on January 31st.\nGroupDocs offered 25% OFF on GroupDocs.Total for .NET and Java. The offer remains valid till 31st January 2021. Avail this offer before it ends.\nDo not forget to use the HOLOFF2020 coupon code while ordering to avail this discount offer.\nThis offer is only available on new GroupDocs.Total purchases and cannot be used in conjunction with other offers, renewals, or upgrades. Only available directly from groupdocs.com, not through third parties or resellers. Terms and conditions apply.\nRead more about the offer\nAbout GroupDocs.Total Family GroupDocs.Total is a complete document manipulation toolkit that lets you view, convert, annotate, compare, sign, assemble, search, parse, watermark, edit, merge, redact, manipulate metadata, and classify a wide range of document formats within your .NET and Java applications. It not only gives you the products we have developed by today but also any products we develop in the future**.**\nRead more about GroupDocs.Total\nSee Also 25% OFF on Conholdate.Total - Ending Soon 25% OFF on Aspose.Total - Ending Soon ","permalink":"https://blog.groupdocs.com/total/groupdocs-discount-offer-ends-soon/","summary":"New Year 2021 starts, but soon the big offer ends on January 31st.\nGroupDocs offered 25% OFF on GroupDocs.Total for .NET and Java. The offer remains valid till 31st January 2021. Avail this offer before it ends.\nDo not forget to use the HOLOFF2020 coupon code while ordering to avail this discount offer.\nThis offer is only available on new GroupDocs.Total purchases and cannot be used in conjunction with other offers, renewals, or upgrades.","title":"GroupDocs.Total Discount Offer Ends January 31st"},{"content":"Today we are about to learn some ways to programmatically remove or entirely clean metadata of documents as well as images using C#. In an earlier post, we discussed removing the selective as well as all the available metadata properties from documents and images using Java. It is sometimes important to hide personal information from the receiver, that is attached to the document. Following are the topics that will help you clean your files from metadata using C#.\n.NET Metadata Cleaner API Remove Metadata from Documents using C# Clean Metadata from Images using C# Remove Selective Metadata from Documents and Images using C# .NET Metadata Removing API To achieve what is planned, I will use GroupDocs.Metadata for .NET API that allows .NET developers to add, modify, extract, remove, or completely metadata from many supported formats of documents, images, and other files. The API supports metadata standards like EXIF, XMP, IPTC, ID3 tag, etc. You may download DLLs or MSI installer, or install it via NuGet.\nInstall-Package GroupDocs.Metadata Remove Metadata from Documents using C# In order to remove all the metadata properties without applying any specific filter, use the Sanitize method. The following are the steps to clean metadata from the documents like DOCX, PDF, XLSX, etc using GroupDocs.Metadata for .NET.\nStart by creating Metadata class object and pass the path of the target document as the parameter. Use Sanitize method to clear all the available metadata. It returns the number of the removed metadata properties. Call Save method to save the output file with removed metadata. The following C# code sample shows how to remove and clear metadata from a PDF document.\nRemove Metadata from Images using C# Whether you want to remove metadata from your documents or from your image files, the process will remain the same. Only the source document will be changed accordingly.\nCreate the object of the Metadata class and pass the document path as the parameter. Call the Sanitize method to remove any available metadata properties. Save the output file using the Save method. The following C# code sample shows how to remove metadata from a JPG image.\nRemove Selective Metadata from Documents and Images using C# If it is not required to remove all the available metadata from the files, and we just want to remove only the selective metadata properties. The following steps allow you to locate and remove the targetted metadata properties using the specific name of the property.\nCreate an object of Metadata class to load the source document or image file. Create personalized specifications to find the metadata properties. Call the RemoveProperties method with the created personalized specifications. Save the output file using the Save method. Conclusion We learned the ways to remove metadata from documents and images using C#. After going through this article, you would feel comfortable building your own metadata cleaner application using .NET. It can support metadata removal from MS Word document formats, spreadsheets, presentations, PDF files, images, emails, eBooks, drawings, zip files, and many more file formats that are supported by the API.\nYou may further explore the .NET Metadata Manipulation API from the documentation.\nSee Also Remove Metadata of Documents and Images in Java Manage EXIF Data of Images in C# Manage EXIF Data of Images using Java ","permalink":"https://blog.groupdocs.com/metadata/remove-metadata-of-documents-and-images-using-csharp/","summary":"Today we are about to learn some ways to \u003cstrong\u003eprogrammatically remove or entirely clean metadata of documents as well as images using C#\u003c/strong\u003e. In an [earlier post][1], we discussed removing the selective as well as all the available metadata properties from documents and images using Java. It is sometimes important to hide personal information from the receiver, that is attached to the document. Following are the topics that will help you clean your files from metadata using C#.","title":"Metadata Remover for Documents and Images using  C#"},{"content":"In this article, we will learn how to read and parse PDF documents and then programmatically extract PDF form field values in C#. Earlier, we have seen how to extract values from PDF forms in Java. After reading these articles, if you have filled feedback forms, you can extract the values within your .NET \u0026amp; Java applications for analysis or save them in the database.\n.NET API to Parse and Extract Values from PDF Forms GroupDocs.Parser for .NET is an easy to use, and powerful parsing and data extraction API for the .NET applications. It supports text, metadata, and image extraction from word-processing and PDF documents, spreadsheets, presentations, emails, markups, ebooks, archives, and much more. One of the significant features and will also be shown below is the parsing of fillable PDF forms to extract the form field values using a small piece of C# code.\nTo test the below-mentioned and other examples of the API, you may download and install the API from NuGet or directly download from GroupDocs downloads.\nPM\u0026gt; Install-Package GroupDocs.Parser Extract Data from PDF Form Field using C# The following simple steps tell how to parse PDF and then extract PDF form field values in C#.\nLoad the PDF file using Parser class. Parse the PDF form using ParseForm method. Traverse the parsed collection to extract the form field values. The following C# code example shows the extraction of field values of filled PDF forms within .NET applications.\nCOMPANY: GroupDocs EMAIL: everything@groupdocs.com COUNTRY: Australia Conclusion I am confident, that you will now feel comfortable in developing your own .NET based application that can parse PDF files and fetch values from fillable PDF form fields quickly and precisely. To add more features, you can learn more about the API from the documentation articles and C# examples on GitHub.\nFor queries and quick response, be in contact on the forum.\nSee Also Read PDF Form Fields using Java Extract Images from Documents in C# ","permalink":"https://blog.groupdocs.com/parser/parse-and-extract-data-from-pdf-forms-in-csharp/","summary":"In this article, we will learn \u003cstrong\u003ehow to read and parse PDF documents and then programmatically extract PDF form field values in C#\u003c/strong\u003e. Earlier, we have seen [how to extract values from PDF forms in Java][1]. After reading these articles, if you have filled feedback forms, you can extract the values within your .NET \u0026amp; Java applications for analysis or save them in the database.","title":"Read PDF Form Fields using C#"},{"content":"Let\u0026rsquo;s see today, how to add watermarks to images. This helps you brand your official photography, and protects your pictures from any unauthorized use. This article will guide you to programmatically add text and image watermarks to your image files using C#. In an earlier post, we have seen the same to add text and image-based watermarks to images using Java. After reading this article, it will not be difficult for you to add watermarks to JPG/JPEG, PNG, WebP, GIF, TIFF, JP2, BMP images using C# within your .NET application.\nLet\u0026rsquo;s now separately see, how we can easily add text and image-based watermarks on your pictures, photos, or image files in C# using the .NET Watermarking API for documents and images.\nAdd Text on Images as Watermark Insert Image Watermark to Images Text and Image Watermarking API for .NET GroupDocs.Watermark for .NET is an API for adding watermarks to the images or documents of different file formats within .NET applications. It provides effective watermarking methods that allow you to add text watermarks as well as image watermarks that are hard to get automatically removed by other third-party tools.\nFrom the documentation, you may further check the features and supported file formats.\nYou can download the DLLs or MSI installer from the downloads section or get it from NuGet.\nInstall-Package GroupDocs.Watermark Add Text to Images as Watermark using C# The API allows you to add text to images as a watermark with many customizations. The following steps guide how we can apply watermark on our images files, photos, or pictures using C# within the .NET application.\nLoad the Image using Watermarker. Set the watermark text and style using TextWatermark. Set other watermark properties like position, rotation, opacity, etc. Add the text watermark to the image using the Add method. Save the output image with Save method. The following C# code sample adds a text label on a JPG image as a watermark with some text rotation.\nInsert Image Watermark to Images using C# Similarly, we can also add another image as a watermark on our source image files. For this, use ImageWatermark class and its properties to customize the watermark appearance.\nCreate Watermarker class object to load the source image. Prepare image watermark using ImageWatermark class. Set the watermark properties. Add the image watermark on the source image using Add method. Save the output image using Save method. The following C# code sample adds a PNG image on another PNG file as a watermark on the preferred location.\nConclusion I am confident that you can now easily add a watermark to your image files using C#. Even you can build your own .NET application that supports watermarking the documents and images of various file formats.\nYou can have a Free Temporary License to experience every aspect of the product. Free support will be happy to get you out of any confusion and resolve your watermark-related queries on the forum.\nSee Also Add Watermark to Excel Sheets using C# Remove Watermark from Documents in C# Add Watermark to Images in Java ","permalink":"https://blog.groupdocs.com/watermark/add-watermark-to-images-using-csharp-dotnet/","summary":"Let us see today, how to add watermarks to images. This helps you branding your official photography, and protects your pictures from any unauthorized use. This article will guide you to \u003cstrong\u003eprogrammatically add text and images watermarks to your image files using C#\u003c/strong\u003e. In an earlier post, we have seen the same to [add text and image based watermarks to images using Java][1]. After reading this article, it will not be difficult for you to add watermarks to \u003cstrong\u003eJPG/JPEG, PNG, WebP, GIF, TIFF, JP2, BMP\u003c/strong\u003e images using C# within your .NET application.","title":"Add Watermark to Images using C#"},{"content":"Metadata is the data that provides information about the actual data. It is commonly described as \u0026ldquo;data about data\u0026rdquo;. When sending a file to someone, it is not a good practice to send metadata along. It can reveal your information to the receiver that you may not want to share. Some of the examples include; Name, Company Name, Document Modification Date, Make and Model of Camera, etc. In this article, we will be programmatically removing metadata from the images and documents using Java.\nJava Metadata Cleaner API Remove Metadata from Documents Clean Metadata from Images Remove Selective Metadata from Documents and Images Java Metadata Cleaner API GroupDocs.Metadata for Java is a metadata API for Java that supports most of the popular metadata standards like EXIF, XMP, IPTC, ID3 tag, etc. It allows Java developers to add, modify, extract, and remove metadata with various options from a large list of supported formats of documents, images, and other files.\nSteps in this article and code samples use GroupDocs.Metadata API. So before you proceed, please make sure to prepare the development environment using any of the following options:\nGet the JAR file from the downloads section. Add the following pom.xml configuration in your Maven-based java applications \u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-metadata\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.11\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Remove Metadata from Documents using Java To remove all the available metadata properties without applying any filter, and to stay safe in the era of COVID-19, use the sanitize method. The following are the steps to remove metadata from the documents using GroupDocs.Metadata for Java.\nInstantiate the object of the Metadata class, passing the path of the target document as the parameter. Call the sanitize method. It returns the number of the removed metadata properties. Save the output file with cleared metadata using the save method. The following Java code sample shows how to remove and clear metadata from the document.\nRemove Metadata from Images using Java If you want to remove all the metadata from your images using Java, you can use the same sanitize method by following the same steps:\nCreate the object of the Metadata class, passing the target document path as the parameter. Call the sanitize method. Save the output file using the save method. Remove Selective Metadata from Documents and Images using Java It is not always required to remove all the available metadata from the files, however, we sometimes want to remove the selective metadata properties. The following steps show how to locate and remove the metadata using the specific name of the property.\nCreate Metadata object to load the targeted document or image file. Create personalized specifications to find the metadata properties. Call the removeProperties method and pass the personalized specifications. Save the output file using the save method. Conclusion In this article, we learned cleaning metadata from documents and images using Java. Now you can build your own metadata cleaner java application. It can support removing metadata from word-processing documents, spreadsheets, presentations, PDF files, images, emails, eBooks, drawings, zip files, and many more. You can explore more about the Java metadata API from the documentation.\nSee Also Remove Metadata of Documents and Images using C# Manage EXIF Data of Images using Java Manage EXIF Data of Images in C# ","permalink":"https://blog.groupdocs.com/metadata/remove-metadata-from-documents-and-images-using-java/","summary":"\u003cstrong\u003eMetadata\u003c/strong\u003e is the data that provides information about the actual data. It is commonly described as \u0026ldquo;\u003cstrong\u003edata about data\u003c/strong\u003e\u0026rdquo;. When sending a file to someone, it is not a good practice to send metadata along. It can reveal your information to the receiver that you may not want to share. Some of the examples include; Name, Company Name, Document Modification Date, Make and Model of Camera, etc. In this article, we will be \u003cstrong\u003eprogrammatically removing metadata from the images and documents using Java\u003c/strong\u003e.","title":"Metadata Cleaner for Documents and Images using Java"},{"content":"In this article, we will discuss how to parse PDF document and extract values from PDF forms programmatically in Java. There are many situations, where we have several filled survey forms or feedbacks in PDF format from a large audience. We can easily extract the filled data values and use them for analysis. Let us now move straight towards reading these PDF forms and extract filled data field values within Java applications.\nJava API to Parse and Extract Values from PDF Forms GroupDocs offers a document parsing and data extraction Java API that supports a lot more than word-processing, presentations, spreadsheets, emails, PDF, markup, ebooks, and archive formats. Along with the extraction of text and images, the API also supports the extraction of metadata from the supported document formats. One of the salient features of the API is to parse the fillable PDF documents and extract values from the form fields with easy Java code.\nIn the coming examples, I will be using the mentioned API i.e. GroupDocs.Parser for Java, so I would recommend you to prepare your environment to implement the feature. You may download the latest JAR file from the downloads section or just add the following configurations in your Maven-based Java applications. For details about API, visit API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-parser\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.8\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Extract Data from PDF Form Field in Java The following simple steps for how to extract field values from PDF form.\nInitialize the Parser object with the target PDF form. Call the parseForm method to get all the data from the PDF form. Traverse the collected data to get the desired field values. The following code shows how to parse PDF document and get values from the filled PDF form fields in Java.\nCOMPANY: GroupDocs EMAIL: everything@groupdocs.com COUNTRY: Australia Conclusion I hope, Java developers are now familiar with the easy, precise, and efficient way to parse the PDF documents to extract text values from the PDF form fields. If you are interested to learn more about the basic and advanced features of the API, you can explore the documentation.\nIn case of any queries, reach support @ forum.\nSee Also Read PDF Form Fields using C# Extract Images from Documents using Java ","permalink":"https://blog.groupdocs.com/parser/parse-and-extract-data-from-pdf-forms-in-java/","summary":"In this article, we will discuss \u003cstrong\u003ehow to parse PDF document and extract values from PDF forms programmatically in Java\u003c/strong\u003e. There are many situations, where we have several filled survey forms or feedbacks in PDF format from a large audience. We can easily extract the filled data values and use them for analysis. Let us now move straight towards reading these PDF forms and extract filled data field values within Java applications.","title":"Read PDF Form Fields in Java"},{"content":"\rWinter, holidays, and discounts are together at GroupDocs.\nGroupDocs offers you 25% OFF on GroupDocs.Total - all GroupDocs APIs you have ever wanted. Do not forget to use the HOLOFF2020 coupon code while ordering to avail this discount offer.\nThe offer will remain valid till 31st January 2021. So be one form the lucky ones to get your set of APIs.\nThis offer is only available on new GroupDocs.Total purchases and cannot be used in conjunction with other offers, renewals, or upgrades. Only available directly from groupdocs.com, not through third parties or resellers. Terms and conditions apply.\nAbout GroupDocs.Total Family GroupDocs.Total is a complete document manipulation toolkit that lets you view, convert, annotate, compare, sign, assemble, search, parse, watermark, edit, merge, redact, manipulate metadata, and classify a wide range of document formats within your .NET and Java applications. It not only gives you the products we have developed by today but also any products we develop in the future**.** Read more\nSee Also 25% OFF on Conholdate.Total 25% OFF on Aspose.Total ","permalink":"https://blog.groupdocs.com/total/groupdocs-offers-discount/","summary":"GroupDocs offers you \u003cstrong\u003e25% OFF\u003c/strong\u003e on [GroupDocs.Total][1] - all GroupDocs APIs you have ever wanted. Do not forget to use the \u003cstrong\u003eHOLOFF2020\u003c/strong\u003e coupon code while ordering to avail this discount offer.","title":"Get 25% OFF on GroupDocs.Total"},{"content":"This article is useful for Java developers who are looking for a way to find and remove text or image watermarks from PDF, Word, Excel, PowerPoint, and Visio documents. In one of our posts we have learnt finding and removing watermarks from documents in C#. Let\u0026rsquo;s now jump to quickly see a little about a Java API that allows adding, finding and removing watermarks from various documents in different ways.\nJava API for Watermarking and Removal GroupDocs.Watermark for Java API supports adding text and image watermarks to a wide range of document formats. In addition, it also has the ability to find and remove watermarks from the documents. The API also finds the watermark objects that are added using the third-party tools. So let me demonstrate how you can remove the watermark from a document in a few steps in Java.\nYou may get the JAR from downloads section, or add the following configuration in pom.xml of your Maven-based Java application. For API details, visit API Reference.\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-watermark\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.5\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Steps to Remove Watermarks from a Document in Java Before we begin, have a look at the following PDF document which contains a text watermark as well as an image watermark. We\u0026rsquo;ll use this document and remove the watermarks from it.\n1. Create a new project.\n2. Add the following imports.\n3. Create an instance of Watermarker class and load the source document.\n4. Find the watermarks based on the configured search criteria using search method.\n5. Iterate over the watermarks collection and remove watermarks using removeAt method.\n6. Save the resultant document using save method.\nThere are also some other ways of finding and removing watermarks from documents using different methods. If you want to remove all the watermarks of a document, or want to get rid of some selective watermarks of various kind:\nYou can collect all the possible watermarks. Iterate over the watermark collection or directly access the watermark with index. Check for watermark type and data, if required. Remove it, if it meets your requirement. remove, removeAt, and clear are the methods that can be used accordingly for removing watermarks. For more details, you can visit documentation article about searching and modifying watermarks in Java.\nComplete Code Results The following is the screenshot of the resultant PDF document that we get after removing the watermarks.\nConclusion I believe, as a Java developer, you will not be hesitant any more to find and then remove any kind of watermarks from Microsoft and OpenOffice supported word-processing documents, spreadsheets, presentations, PDF documents, and Visio drawings.\nYou may explore more about the API from the documentation. In case of any queries, reach us @ forum.\nSee Also Add watermarks to images in Java Find and remove watermarks from documents in C# Add watermarks to images or images in documents using C# ","permalink":"https://blog.groupdocs.com/watermark/find-and-remove-watermarks-from-documents-in-java/","summary":"This article is useful for \u003cstrong\u003eJava\u003c/strong\u003e developers who are looking for a way to \u003cstrong\u003efind and remove text\u003c/strong\u003e or \u003cstrong\u003eimage watermarks\u003c/strong\u003e from \u003cstrong\u003ePDF, Word, Excel, PowerPoint,\u003c/strong\u003e and \u003cstrong\u003eVisio\u003c/strong\u003e documents. In one of our posts we have learnt [finding and removing watermarks from documents in C#][1]. Let us now jump to quickly see a little about a Java API that allows adding, finding and removing watermarks from various documents in different ways.","title":"Find and Remove Watermarks from Documents in Java"},{"content":"Today, we will have a look at how to find and remove watermarks from documents in C#. There can be text and image-based watermarks in a document. We can easily search and programmatically remove such watermarks from many PDF, Word, Excel, PowerPoint, and Visio supported documents.\nFollowing topics will be covered in this article:\n.NET API for removing watermarks Find watermarks in documents using C# Remove watermarks from documents in C# .NET API for Watermark Removal GroupDocs.Watermark for .NET is a fast and efficient watermarking API that requires no additional software. It allows adding watermarks to documents and images in such a way that would be hard for third-party tools to remove. It also lets C# developers easily remove watermarks from many Microsoft and OpenOffice file formats of word-processing documents, spreadsheets, presentations, Visio drawings, and PDF documents in .NET applications. All the supported file formats are mentioned in the documentation.\nNow, I will be showing examples that will be finding and removing watermarks. So, it will be better if you prepare the environment beforehand by following any of the suitable options:\nNuGet Direct Download: MSI installer and DLLs Package Manager Console: PM\u0026gt; Install-Package GroupDocs.Watermark Find Watermarks in Documents using C# Watermarker, PossibleWatermarkCollection (the collection of PossibleWatermark are the classes of the API to find various kinds of watermarks in documents with various search criteria and remove them quickly. Following are the steps for the basic search of all the watermarks in any provided document using C#. You can further refine your search for watermarks and this is shown later in this article.\nCreate the Watermarker class object with the source document file. Call the Search method. It will return all the possible watermarks from the document. Traverse the watermarks collection to display data or perform any action on each watermark. Remove Watermarks from Documents in C# From all the searched watermarks, we can remove any watermark or all the watermarks at once. The main thing here, whether you have successfully found the watermark(s) that you want to delete or not. What if there are lots of different types of watermarks in a document? The API gives various options to refine your search for watermarks. The following code removes the watermark from a PDF document by specifying the index of collection using C#.\nMore Search Criteria for Watermarks There are many other ways to find watermarks with certain criteria. After the selective search, we can remove the watermark(s) from the collection by using Remove, RemoveAt, or Clear method accordingly. Here are some of the ways to find watermarks from the provided documents:\nFind and remove watermarks with specific text Search watermarks with RegEx (Regular Expression) and remove Search watermark with specified text formatting Find and remove hyperlink watermarks Find and Remove Watermarks with Specific Text You can search for text watermarks by specifying the exact string using the following C# code:\n// Find possible watermarks containing the specified text TextSearchCriteria textSearchCriterion = new TextSearchCriteria(\u0026#34;© 2020\u0026#34;); PossibleWatermarkCollection possibleWatermarks = watermarker.Search(textSearchCriterion); Search for Watermarks with RegEx and Remove If there is some pattern in the watermark\u0026rsquo;s text, you can provide regular expression (RegEx) to search for these watermarks and can remove later accordingly using the following C# code. This code will fetch all the watermarks with ©YYYY.\n// Search Watermarks by Regular Expression Regex regex = new Regex(@\u0026#34;^© \\\\d{4}$\u0026#34;); TextSearchCriteria textSearchCriterion = new TextSearchCriteria(regex); PossibleWatermarkCollection possibleWatermarks = watermarker.Search(textSearchCriterion); Find and Remove Watermarks with Specific Text Formatting You can also find the watermarks having some specific text formatting like Font name, min/max font size, bold/italic/underlined, etc.\nTextFormattingSearchCriteria criterion = new TextFormattingSearchCriteria() { FontName = \u0026#34;Arial\u0026#34;, MinFontSize = 19, MaxFontSize = 42, FontBold = true }; PossibleWatermarkCollection watermarks = watermarker.Search(criterion); watermarks.Clear(); Find and Remove Hyperlink Watermarks You can use the RegEx to find text watermarks having hyperlinks in the content. Later you can check in the collection if there are hyperlink watermarks in the search result. These can be removed by any of the removal methods. The following C# code removes all the watermarks with hyperlinks.\nPossibleWatermarkCollection watermarks = watermarker.Search(new TextSearchCriteria(new Regex(@\u0026#34;anyurl\\\\.com\u0026#34;))); for (int i = watermarks.Count - 1; i \u0026gt;= 0; i--) { // Is watermark the hyperlink? if (watermarks\\[i\\] is HyperlinkPossibleWatermark) { watermarks.RemoveAt(i); } } There are many other ways to refine your search for watermarks. You can visit documentation for more detail. For queries, visit the forum.\nConclusion I believe that you will now be more confident in finding and removing text watermarks as well as image watermarks from Word documents, Excel spreadsheets, Powerpoint presentations, PDF documents, and Visio drawings using C# within your .NET applications.\nSee Also Add Watermark to Images or Images in Documents using C# Add Watermark to Images in Java Find and Remove Watermarks from Documents in Java ","permalink":"https://blog.groupdocs.com/watermark/find-and-remove-watermarks-from-documents-in-csharp/","summary":"Today, we will have a look at \u003cstrong\u003ehow to find and remove watermarks from documents in C#\u003c/strong\u003e. There can be text and image-based watermarks in a document. We can easily search and programmatically remove such watermarks from many PDF, Word, Excel, PowerPoint, and Visio supported documents.","title":"Find and Remove Watermarks from Documents in C#"},{"content":"Today, we will learn how to programmatically convert the CAD drawings to PDF format in C#. Previously, in an earlier post, we did the same but in Java. We looked to convert the DWG, DGN, and DWF files into PDF documents with the code example. Let\u0026rsquo;s do it in C# using the document conversion API for .NET.\nThe following topics will be covered in this article:\nC# API to Convert CAD Drawings Converting CAD Drawings (DWG, DWF, DGN) to PDF in C# C# API to Convert CAD Drawings GroupDocs.Conversion for .NET is the advanced conversion API for documents and images within any .NET application. It supports many file formats that include word-processing documents, spreadsheets, presentations, images, CAD drawings, and many more.\nThis article will be using GroupDocs.Conversion for .NET API for the conversion of CAD drawings to PDF in C#. You may download the DLL or get it installed using NuGet.\nPM\u0026gt; Install-Package GroupDocs.Conversion Convert CAD Drawings (DWG, DWF, DGN) to PDF in C# The following steps will allow easy conversion of CAD drawings with a lot of options into a personalized PDF file.\nLoad CAD drawing. Specify layouts and options. Convert CAD with options to PDF. Load CAD Drawings Load the CAD file using the CadLoadOptions class.\nCadLoadOptions loadOptions = new CadLoadOptions(); Specify Layouts and Other options You can specify certain properties while loading CAD files. These properties include layout names, width, height, and format. Specifying layout names will allow you to convert only the mentioned layout.\nContracts.Func\u0026lt;LoadOptions\u0026gt; getLoadOptions = () =\u0026gt; new CadLoadOptions { LayoutNames = new \\[\\]{ \u0026#34;Layout1\u0026#34;, \u0026#34;Layout3\u0026#34; }, Width = 1920, Height = 1080 }; Convert CAD Drawings - DWG, DWF to PDF in C# Now using the Convert method of the Converter class, DWG or DWF files can be easily converted to PDF format using the set options.\nusing (Converter converter = new Converter(\u0026#34;with\\_layers\\_and\\_layouts.dwf\u0026#34;, getLoadOptions)) { PdfConvertOptions options = new PdfConvertOptions(); converter.Convert(\u0026#34;converted.pdf\u0026#34;, options); } Complete Code Here is the complete C# code, that you can use to convert DWG or DWF files into PDF by using the steps i.e. Load -\u0026gt; Specify Layout and Options -\u0026gt; Convert.\nThere are many other customization options for the resultant PDF format that gives control over the output result while converting any document to the PDF format. You may have a look at these advanced options in the following documentation article.\nConvert to PDF with Advance Options in .NET\nWith a minor change, we can convert other CAD files like DGN and DWG files accordingly. We just have to provide the right filename and its format in the above code. For a file format that does not support layouts, we will not set LayoutNames. For such little modifications, you may visit the documentation.\nConclusion I hope you are now confident with the conversion of CAD files like DWG, DGN, and DWF to PDF in C# using the GroupDocs.Conversion in your .NET as well as Java applications. You can now build your own conversion applications using any platform just like free apps available @ www.groupdocs.app.\nYou may contact the Free Support Team for any further queries, which is always available to help you on the forum.\nRelated Articles Convert CAD Drawings to PDF in Java Excel Spreadsheets to PDF using C# Load CAD documents Convert documents, and Images to PDF ","permalink":"https://blog.groupdocs.com/conversion/convert-cad-drawings-to-pdf-in-csharp/","summary":"Today, we will learn how to programmatically convert the CAD drawings to PDF format in C#. Previously, in an [earlier post][1], we did the same but in Java. We looked to convert the DWG, DGN, and DWF files into PDF document with the code example. Let us do it in C# using the document conversion API for .NET.","title":"Convert CAD Drawings to PDF in C#"},{"content":"In the previous post, we discussed how to extract images from documents in Java. Today, we will be looking to achieve the same objective using C#. No worries if you have not visited the last post. In this article, we will be learning to programmatically extract images from PDF, Excel, PowerPoint, and Word documents in a C# application using document parsing .NET API.\nFollowing topics will be covered here:\nImage, Text, and Metadata Extraction .NET API Image Extraction from PDF documents Extract Images from Word, Excel, PowerPoint documents Extract Image from Specific Page Supported Formats for Image Extraction Image, Text, and Metadata Extraction .NET API GroupDocs.Parser for .NET is document parsing and data extraction .NET API. It supports document parsing and extraction of images, text, and metadata from word-processing documents, spreadsheets, presentations, archives, and email documents. At the end of the article, document formats are mentioned that are supported by the API for image extraction.\nIn this article, we will use this API, so I would recommend to download its binaries or install the API from NuGet to prepare the environment.\nExtract Images from PDF Documents in C# You can easily retrieve all the images from any PDF document by following these simple steps.\nInstantiate the Parser class object with the source document. Call GetImages method of Parser class to get the collection of all the images in PageImageArea objects. Iterate over PageImageArea to get every image. Save images on the disk using the Save method of PageImageArea. Extracted images can be saved in BMP, GIF, JPEG, PNG, and WebP formats. The complete code is shown below to demonstrate the whole steps.\nImage Extraction from Word, Excel, PowerPoint Files in C# Not restricted to just PDF format, we can take out all the images from word-processing documents, spreadsheets, presentations, with the unchanged code base. Just change the source document path with the file extension, your document will be parsed to extract and save all the images to the disk.\nusing (Parser parser = new Parser(\u0026#34;path/document.docx\u0026#34;)) // Word Document // using (Parser parser = new Parser(\u0026#34;path/document.xlsx\u0026#34;)) // Excel Spreadhseet // using (Parser parser = new Parser(\u0026#34;path/document.pptx\u0026#34;)) // Presentation // using (Parser parser = new Parser(\u0026#34;path/document.pdf\u0026#34;)) // PDF Document Extract Images from Specific Document Page in C# If you want to extract images from a specific page of the document, it can be done easily using the below-mentioned steps and C# code.\nGet the information about the document using the GetDocumentInfo method. From the document information, take out the total PageCount and other information. Use GetImages(pageIndex) method and pass your target page index to it. To save the retrieved images, traverse the images collection, and save the individual image using the Save method. Supported Formats for Image Extraction in C# Following are the document formats that are supported by the GroupDocs.Parser for .NET API for image extraction.\nDocument Type File Formats Word Processing Documents DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF Spreadsheets XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, NUMBERS Presentations PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP Portable Documents PDF Emails EML, EMLX, MSG Archives ZIP More about GroupDocs.Parser Documentation Source Code Examples API Reference Family (On-Premise APIs| Cloud APIs | Free Online App Let\u0026rsquo;s talk some more @ Free Support Forum\nRelated Articles Extract Images from Documents using Java Extract Images from Documents on the Cloud using Python Image Extraction from PDF Files using C# ","permalink":"https://blog.groupdocs.com/parser/extract-images-from-pdf-word-excel-ppt-using-csharp/","summary":"In this article, we will be learning to \u003cstrong\u003eprogrammatically extract images from PDF, Excel, PowerPoint, and Word documents in a C#\u003c/strong\u003e application using document parsing .NET API. [GroupDocs.Parser for .NET][1] is document parsing and data extraction .NET API. It supports \u003cstrong\u003edocument parsing\u003c/strong\u003e and \u003cstrong\u003eextraction of images, text,\u003c/strong\u003e and \u003cstrong\u003emetadata\u003c/strong\u003e from \u003cstrong\u003eword-processing documents\u003c/strong\u003e, \u003cstrong\u003espreadsheets\u003c/strong\u003e, \u003cstrong\u003epresentations, archives,\u003c/strong\u003e and \u003cstrong\u003eemail\u003c/strong\u003e documents.","title":"Extract Images from Documents using C#"},{"content":"If you have a document and you want to use the images inside that document in some other documents, here is one of the solutions. In this article, we will be learning to programmatically extract images from PDF, Excel, PowerPoint, and Word documents using Java.\nImage Extraction Java API Image Extraction from PDF documents in Java Extract Images from Word, Excel, PowerPoint documents in Java Extract Image from Specific Page in Java Image Extraction Java API For the extraction of images, we will use GroupDocs.Parser for Java. This Java API supports the parsing of documents and extraction of images, text, and metadata from word-processing documents, spreadsheets, presentations, archives, and email documents. The following are the document formats supported by the Java API for image extraction.\nDocument Type File Formats Word Processing Documents DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF Spreadsheets XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, NUMBERS Presentations PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP Portable Documents PDF Emails EML, EMLX, MSG Archives ZIP Before you start with the examples below, I would recommend to set up the environment by downloading the latest version of document parsing Java API from the downloads section or you may set the following configurations in your maven-based java applications:\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-parser\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.8\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Extract Images from PDF Documents in Java Follow these simple steps to get all images from the PDF document.\nInstantiate Parser class object. Call getImages method of Parser class to get all the images. Iterate over images using PageImageArea. Save images using the save method of PageImageArea. It\u0026rsquo;s done. See the full code below. Extracted images can be saved in BMP, GIF, JPEG, PNG, and WebP formats.\nThese are the images retrieved from the PDF document using the above code.\nExtract Images from Word, Excel, PowerPoint Files in Java Similarly, all the images can be taken out from the word-processing files, spreadsheets, presentations, with the unchanged code base. What you have to change? Just the source document path and the right file extension.\nParser parser = new Parser(\u0026#34;path/document.docx\u0026#34;) // Word Document // Parser parser = new Parser(\u0026#34;path/document.xlsx\u0026#34;) // Excel Spreadsheet // Parser parser = new Parser(\u0026#34;path/document.pptx\u0026#34;) // PowerPoint Presentation // Parser parser = new Parser(\u0026#34;path/document.pdf\u0026#34;) // PDF Document Image Extraction from Specific Document Page in Java If you do not want to extract all the images from the whole document but from some specific page. Below code demonstrates how we can extract images from a particular page of the document in Java.\nConclusion Today, we learned how to extract images from the whole document, and the specific page of word-processing documents, spreadsheets, presentations, and PDF in Java. There is no difference in the code if we have to extract images from the files of different file formats. We just have to pass the right path and name. That\u0026rsquo;s it.\nSee Also Extract Images from Documents in C# Extract Images from PDF Documents in Java ","permalink":"https://blog.groupdocs.com/parser/extract-images-from-pdf-word-excel-ppt-using-java/","summary":"Today, we will learn to \u003cstrong\u003eprogrammatically extract images from PDF, Excel, PowerPoint, and Word documents using Java\u003c/strong\u003e. For the extraction of images, we will use [GroupDocs.Parser for Java][1]. This Java API supports the parsing of documents and extraction of images, text, and metadata from word-processing documents, spreadsheets, presentations, archives, and email documents. Extracted images can be saved in \u003cstrong\u003eBMP\u003c/strong\u003e, \u003cstrong\u003eGIF\u003c/strong\u003e, \u003cstrong\u003eJPEG\u003c/strong\u003e, \u003cstrong\u003ePNG\u003c/strong\u003e, and \u003cstrong\u003eWebP\u003c/strong\u003e formats.","title":"Extract Images from Documents using Java"},{"content":"In one of the earlier posts, we learned how to programmatically insert the OLE Objects in documents with C#. Today, in this article, we will be embedding PDF and other different documents as OLE objects in Word documents, Excel spreadsheets, PowerPoint presentation slides using Java.\nThis article will guide you about:\nJava API for OLE Objects Insert OLE Objects into MS Word Documents using Java Add OLE Objects into Excel Spreadsheets using Java Insert Documents into Presentations via OLE using Java Java API for OLE Objects Steps and the examples in this article use GroupDocs.Merger for Java to insert documents into other documents via OLE (Object Linking and Embedding). This API also allows us to efficiently combine and split multiple documents with minimum lines of Java code. Before proceeding it will be better if you prepare the environment in any of your relevant ways:\nDownload the API from the downloads section. For the Maven-based projects, the following is the configuration for your pom.xml \u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-merger\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.7\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Insert PDF as OLE Object into MS Word Document using Java Step and code example below inserts the PDF document into a Word document as an OLE object in Java using the GroupDocs.Merger API.\nInstantiate the Merger object with the source word processing document path or stream. Initialize the OleWordProcessingOptions with the path of the PDF document that will be embedded in the Word document. Call the importDocument method of the merger class. Save the resultant word document by calling the save method. Insert Word Document as OLE Object into Excel Spreadsheet using Java Spreadsheets can also embed other documents, like Word documents, spreadsheets, presentations, images or sound clips, etc. Here, I am be adding a Word document into a spreadsheet as an OLE object.\nInitialize the OleSpreadsheetOptions class object by providing the path of the Word document that will be embedded in the spreadsheet. Set the options like row and column positions. Initialize the Merger class object with the path of the spreadsheet document. Call the importDocument method by providing the already set OLE spreadsheet option. Save the resultant spreadsheet having the embedded Word document by calling the save method. Insert Excel Sheet as OLE Object into Presentation using Java Similarly, if we need to add any external document(s) to our presentations, these can be inserted at the precise location with the few lines of Java code mentioned-below:\nInitialize the OlePresentationOptions class object and pass the path of the spreadsheet document. Set the OLE presentation options like x and y coordinates, height and width for the upcoming embedded spreadsheet. Instantiate the Merger class object with the presentation document path as parameter. Embed the spreadsheet into presentation using the importDocument method of the Merger class. Call save method to get the resultant presentation file. Conclusion We have learned, how we can programmatically insert OLE objects in Word, Excel, and Powerpoint documents using Java. The major difference while embedding the documents into various kinds of source documents is just the use of the respective OLE Options class. That\u0026rsquo;s it.\nTo learn more about the Merger API for Java, visit documentation. In case of any query, GroupDocs Support Team will more than happy to facilitate you at Free Support Forum.\nSee Also Insert OLE Objects in Word, Excel, PowerPoint using C# ","permalink":"https://blog.groupdocs.com/merger/insert-ole-objects-in-word-excel-powerpoint-with-java/","summary":"Today, we will be learning to \u003cstrong\u003eembed PDF\u003c/strong\u003e and other different documents \u003cstrong\u003eas OLE objects in Word, Excel, PowerPoint files using Java\u003c/strong\u003e. For embedding the documents via \u003cstrong\u003eObject Linking and Embedding\u003c/strong\u003e, we will be using the GroupDocs.Merger for Java API that also allows us to efficiently combine/merge and split multiple documents with minimum lines of Java code.","title":"Insert OLE Objects in Word, Excel, PowerPoint using Java"},{"content":"Certificate-based digital signatures are the type of electronic signature that provides the highest level of assurance of a signer\u0026rsquo;s identity and complies with strict regulations. In this article, we will be learning to programmatically verify the digitally signed documents using Java. In one of the earlier posts, we have discussed the verification of digital signatures in documents using C#.\nJava API for Signature Verification This article uses Document Signature API for Java by GroupDocs. The GroupDocs.Signatures for Java supports the following types of electronic signatures:\nBarcode Signatures Form-Field Signatures Image Signatures Metadata Signatures QR-Code Signatures Stamp Signatures Text Signatures So, it is better to prepare your workspace beforehand either by downloading the library from the downloads section or by setting the mentioned configuration in your Maven-based applications.\nSteps to Verify Digitally Signed PDF Document using Java By following the steps, you can verify the digitally signed documents. In this example, I have used a PDF document for verification, however, the same steps will work for MS Word documents, Excel spreadsheets, and Powerpoint presentations.\nInstantiate the Signature object with the source document. Instantiate the DigitalVerifyOptions class object and specify verification options. Call verify method of Signature and pass the specified verification options. Below is the full sample source code that shows the above process. Here the Java code verifies the digitally signed PDF document. You may also perform verification of digitally signed word processing documents like MS Word DOC/DOCX, Excel spreadsheets XLS/XLSX, and presentations PPT/PPTX.\nConclusion Today, we learned to verify the digitally signed MS Word, Excel, PowerPoint, and PDF documents using Java. You can explore more about GroupDocs.Signature for Java features using the documentation articles.\nSee Also Verify Digital Signatures in Documents using C# ","permalink":"https://blog.groupdocs.com/signature/verify-digital-signature-in-documents-using-java/","summary":"In this article, we will be learning to \u003cstrong\u003eprogrammatically verify the digitally signed documents using Java\u003c/strong\u003e. The example uses PDF document for the verification, however, you may also perform verification of digitally signed word processing documents like MS Word \u003cstrong\u003eDOC/DOCX\u003c/strong\u003e, Excel spreadsheets \u003cstrong\u003eXLS/XLSX\u003c/strong\u003e, and presentations \u003cstrong\u003ePPT/PPTX\u003c/strong\u003e.","title":"Verify Digital Signature in Documents using Java"},{"content":"Worried about how to programmatically write text on an image using Java? In this article, we will learn to add text and image watermarks to images using Java. Previously, we have already seen the same using C# in another post.\nThere can be two ways to add a watermark to images. Either you want to add the watermark with the personalized text or add an image watermark over the source image. We will see both scenarios.\nInsert Text Watermark to Images Insert Image Watermark to Images Java Text and Image Watermarking API In the examples below, we will be using GroupDocs.Watermark for Java API for adding text and image-based watermarking of JPG and PNG images. It will be better if you download the watermark API from the downloads section or integrate it into your Maven-based applications with the configurations mentioned on the same page.\nAdd Text to Images as Watermark using Java By following the below-mentioned steps and java code we can quickly add text to any image file as a watermark. I have watermarked the following JPG and PNG images using the same steps and below-mentioned code.\nCurrently, in addition to the shown JPG and PNG, this Java API also supports BMP, GIF, JP2, TIFF \u0026amp; WebP image formats for adding watermarks to it.\nInstantiate the TextWatermark object with the personalized text and style. Adjust the text watermark settings. Instantiate the Watermarker with the source image. Insert the watermark to the image using the add method. Save the output image using the save method. Here is the Java source code that adds the text watermark to the JPG image. If we need to apply the watermark to an image other than JPG, no big change is required. Just provide that image with the extension to the Watermarker and the save method. That\u0026rsquo;s it.\nWe can also change the style, orientation, and appearance of the watermark text.\nInsert Image Watermark on Images using Java Instead of adding text to an image, we can also add an image as a watermark on the source image. Follow the similar steps mentioned above but now you must use the ImageWatermark class instead of TextWatermark used earlier to add text over the JPG and PNG images.\nThis image is created using the below mentioned Java source code and shows how we can add a PNG image watermark over the source JPG image:\nConclusion We have seen how to add text and image as a watermark on any image programmatically using Java. Furthermore, we change the text style and orientation of the watermark text.\nYou may explore the documentation for many more features of GroupDocs.Watermark for Java. For any ambiguity, you can directly contact the free support for quick response,\nSee Also Add Watermark to Images using C# Watermark Excel Sheets in Java Remove Watermarks from Documents in Java ","permalink":"https://blog.groupdocs.com/watermark/add-watermark-to-images-in-java/","summary":"In this article, we will learn to \u003cstrong\u003eadd text and image watermarks to images using Java\u003c/strong\u003e. There can be two ways to add watermark to images. Either you want to add the watermark with the personalized text or add an image watermark over the source image. We will see both scenarios. Currently, in addition to the JPG and PNG, this Java API supports BMP, GIF, JP2, TIFF \u0026amp; WebP image formats for adding watermarks on it. We can also change the style, orientation, and appearance of the watermark text.","title":"Add Watermark to Images in Java"},{"content":"\rEmails to PDF conversions are often required for referencing and requirements like sharing the email content. In this article, we will learn about how to convert email message files like MSG and EML into PDF using Java. Previously, in one of the earlier blog posts, we have already learned to convert MSG \u0026amp; EML files using C# in .NET application. This will help to automate the Email conversion within the desktop or web applications.\nThe following are the topics covered in this article:\nJava Conversion Library Conversion of MSG to PDF using Java Conversion of EML to PDF using Java Java Conversion Library In this article, I will be using GroupDocs.Conversion for Java API for the conversions. By using it, you may convert email document formats like MSG and EML to PDF and other formats without losing the email format.\nYou may get the JAR file from the downloads section. For the maven based applications, following is the pom.xml configuration:\n\u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-conversion\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.6\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Convert MSG to PDF using Java The following are the steps to convert the Outlook MSG files to PDF with just a few lines of code. Embedded links in the steps will allow further exploring the classes and methods.\nCreate an instance of the Converter class and pass the MSG file to the constructor. Instantiate the PdfConvertOptions class. Call convert method to get the converted PDF file. Here is the sample MSG file that is created using Microsoft Outlook. Further below is the PDF file, that is obtained by converting the MSG file using the above-mentioned java code.\nMSG file\nPDF file converted from MSG format using the above Java code.\nConvert EML to PDF using Java We can programmatically convert our email messages stored in EML format, into PDF format with similar lines of java code very easily and efficiently. The following steps will guide to achieve the objective.\nInitialize the Converter object providing the source EML file path. Initialize the PDFConvertOptions. You may set further customization for the resultant PDF file. Just call the convert method of the Converter class and pass it the resultant PDF file path and the already set PDFConvertOptions as parameters. Shown below are the source EML file and the converted PDF file screenshots, that has been converted using the above java code.\nEML file\nPDF file converted from EML format using Java.\nConclusion In this article, we learned how to convert the MSG and EML files to PDF using Java Conversion API. Furthermore, we can programmatically apply customization on PDF files to get the outcome in our desired style. You may get some more about GroupDocs.Conversion for Java from the documentation.\nSee Also Convert EML or MSG file to PDF in C# ","permalink":"https://blog.groupdocs.com/conversion/convert-msg-and-eml-files-to-pdf-in-java/","summary":"Emails to PDF conversions are often required for referencing and requirements like sharing the email content. In this article, we will learn about \u003cstrong\u003ehow to convert email message files like MSG and EML into PDF using Java\u003c/strong\u003e. Previously, in one of the [earlier blog posts][1], we have already learned to convert MSG \u0026amp; EML files using C# in .NET application. This will help to automate the Email conversion within the desktop or web applications.","title":"Convert MSG and EML files to PDF in Java"},{"content":"Today, we will learn to programmatically merge PDF, Word documents, spreadsheets, presentations using C#. In an earlier post, we have seen the merging and splitting of documents using Java.\nThis article will also show you the code examples regarding:\nMerge PDF files Merge Word documents Merge selective pages Merge spreadsheets and presentations I will be using the GroupDocs.Merger for .NET in all the examples below. Before you proceed, you may get the API from either of the following options:\nInstall the package from NuGet Packages Gallery. Download the MSI or DLLs from the downloads section of GroupDocs. Merge PDF Files in C# Following simple 3 lines of code combines 2 PDF files into 1 PDF document.\nStart with the first document using Merger class. Call the Join method of Merger class and pass the second document to merge. Call Save method to save the combined document. // Merge 2 PDF files in C# using (Merger merger = new Merger(@\u0026#34;document1.pdf\u0026#34;)) { merger.Join(@\u0026#34;document2.pdf\u0026#34;); merger.Save(@\u0026#34;merged.pdf\u0026#34;); } Join method has several overloaded methods that allow to merge documents or selective pages of different documents via file path, using a stream, or a remote URL.\nMerge Multiple Word Documents in C# The similar above code allows combining two or more files of MS Word and OpenDocument formats without losing the format. Just to give an idea, you can merge .doc, .docx, .docm, .dot, .dotx, .dotm, .rtf, .odt, .ott etc. Below is the 3 liner code that merges two MS Word DOCX files.\n// Merge Word files in C# using (Merger merger = new Merger(@\u0026#34;c:\\\\document1.docx\u0026#34;)) { merger.Join(@\u0026#34;c:\\\\document2.docx\u0026#34;); merger.Save(@\u0026#34;c:\\\\merged.docx\u0026#34;); } Merge Pages of Multiple files - C# Not only the whole document but we can also merge selective pages from multiple documents to get a combined single document.\n// Merge selective pages string filePath = @\u0026#34;c:\\\\sample.docx\u0026#34;; string filePath2 = @\u0026#34;c:\\\\sample2.docx\u0026#34;; string filePathOut = @\u0026#34;c:\\\\output\\\\result.docx\u0026#34;; JoinOptions joinOptions = new JoinOptions(1, 4, RangeMode.OddPages); using (Merger merger = new Merger(filePath, loadOptions)) { merger.Join(filePath2, joinOptions); merger.Save(filePathOut); } Merge Spreadsheets, Presentations and other Documents in C# Along with the documents like PDF and Word, we can merge the presentations, spreadsheets, and many other formats with no different way. Just change the file name and type accordingly in the above code, you will get your merged document.\nusing (Merger merger = new Merger(@\u0026#34;filepath1.xxx\u0026#34;)) { merger.Join(@\u0026#34;filepath2.xxx\u0026#34;); merger.Save(@\u0026#34;xyz.xxx\u0026#34;); } Check File Format Support First Your requirement may be of a bit different file type, so it is better to know first that either the required document is supported for merge by the API or not. The following code gets all the file types supported by the Merger API.\nforeach (FileType fileType in FileType .GetSupportedFileTypes() .OrderBy(fileType =\u0026gt; fileType.Extension)) { Console.WriteLine(fileType); } Here is the output of the above code that displays file formats.\nBitmap Image File (.bmp) Comma Separated Values File (.csv) Excel Binary Spreadsheet (.xlsb) Excel Macro-Enabled Add-In (.xlam) Excel Open XML Macro-Enabled Spreadsheet (.xlsm) Excel Open XML Macro-Enabled Spreadsheet Template (.xltm) Excel Open XML Spreadsheet (.xlsx) Excel Open XML Spreadsheet Template (.xltx) Excel Spreadsheet (.xls) Excel Template File (.xlt) Hypertext Markup Language File (.html) JPEG Image (.jpeg) LaTeX Source Document (.tex) MHTML Web Archive (.mht) MIME HTML File (.mhtml) OneNote Document (.one) Open eBook File (.epub) OpenDocument Document Template (.ott) OpenDocument Presentation (.odp) OpenDocument Presentation Template (.otp) OpenDocument Spreadsheet (.ods) OpenDocument Text Document (.odt) Plain Text File (.txt) Portable Document Format File (.pdf) Portable Network Graphic (.png) PostScript File (.ps) PowerPoint Open XML Presentation (.pptx) PowerPoint Open XML Slide Show (.ppsx) PowerPoint Presentation (.ppt) PowerPoint Slide Show (.pps) Rich Text Format File (.rtf) Tab Separated Values File (.tsv) Visio Drawing (.vsdx) Visio Drawing Template (.vstx) Visio Drawing XML File (.vdx) Visio Macro-Enabled Drawing (.vsdm) Visio Macro-Enabled Drawing Template (.vstm) Visio Macro-Enabled Stencil File (.vssm) Visio Stencil File (.vssx) Visio Stencil XML File (.vsx) Visio Template XML File (.vtx) Word Document (.doc) Word Document Template (.dot) Word Open XML Document (.docx) Word Open XML Document Template (.dotx) Word Open XML Macro-Enabled Document (.docm) Word Open XML Macro-Enabled Document Template (.dotm) XML Paper Specification File (.xps) Know more about the .NET Merger API In case you want to know more about the .NET Merger API of GroupDocs, please visit the documentation or contact us on the forum about any query.\nThanks.\nSee Also Merge PowerPoint PPT/PPTX \u0026amp; Slides using C# ","permalink":"https://blog.groupdocs.com/merger/merge-pdf-word-excel-ppt-files-in-csharp/","summary":"Today, we will learn to programmatically merge PDF, Word documents, spreadsheets, presentations using C#. In an earlier post, we have seen the [merging and splitting of documents using Java][1].","title":"Merge PDF, Word Documents, Spreadsheets, Presentation Files in C#"},{"content":"After going through this article, we will be able to compare text files, Word files, PDF files, and other documents in Java-based applications. By using this feature, we can compare invoices, contracts, presentations, AutoCAD designs, price lists, or programming files. We will also the privilege to highlight the identified changes and have the option to either accept or reject any change. We can even build our own document comparison tool similar to the one launched by GroupDocs, using the document comparison API for Java.\nBelow, you will go through the following topics:\nCompare Word files and show differences. Compare Word files using streams. Accept or reject the identified changes in Word file. Compare text files and highlight differences. Compare PDF files using Java. Java Document Comparison API As a pre-requisite, you may get GroupDocs.Comparison for Java from the downloads section. Also, you can just add the following in your pom.xml in case of maven based applications:\nRepository \u0026amp; Dependencies \u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-comparison\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.4\u0026lt;/version\u0026gt; \u0026lt;/dependency\u0026gt; Compare Word Files and Show Differences using Java Steps below will show you to compare any two Word documents in just a few lines of Java code. As a result, you will get the resultant document that will be highlighting the identified changes.\nInitialize the Comparer object with the source document path. Add the second document to compare using the add method. Call the compare method to get the result of the comparison. The compare method takes the name of the output document as a parameter. // Compare two Word files from the provided location on disk Comparer comparer = new Comparer(\u0026#34;source.docx\u0026#34;); try { comparer.add(\u0026#34;target.docx\u0026#34;); comparer.compare(\u0026#34;comparison.docx\u0026#34;); } finally { comparer.dispose(); } Here I am displaying the resultant Word document generated by the above code, and it contains the highlighted differences of the compared two Word documents. The deleted content will be marked in RED, added content will be displayed in Blue, however, Green shows the modified content.\nCompare Word Files for Text using Stream You can similarly pass the document as a stream to the Comparer class to get it compared with the second document. Here is the Java code to give you a clear idea:\n// Compare two Word file using Stream Comparer comparer = new Comparer(new FileInputStream(\u0026#34;source.docx\u0026#34;)); try { comparer.add(new FileInputStream(\u0026#34;target.docx\u0026#34;)); comparer.compare(new FileOutputStream(\u0026#34;result.docx\u0026#34;)); } finally { comparer.dispose(); } Accept or Reject the Compared Changes in Word File using Java After successfully highlighting the identified differences, you have the option to either accept or reject any change. Just to show as an example, I am accepting and rejecting the changes alternatively. You may display each change one by one with the similar code and take your decisions to accept/reject each change according to your requirement.\n// Accept or Reject the identified changes of Word document in Java Comparer comparer = new Comparer(source); try { comparer.add(target); comparer.compare(); ChangeInfo[] changes = comparer.getChanges(); System.out.println(\u0026#34;changes.length: \u0026#34; + changes.length + \u0026#34;.\u0026#34;); // Accept or Reject the changes for (int n = 0; n \u0026lt; changes.length; n++) { if (n % 2 == 0) { changes[n].setComparisonAction(ComparisonAction.ACCEPT); } else { changes[n].setComparisonAction(ComparisonAction.REJECT); } } // Apply your decisions to get the resultant document. comparer.applyChanges(outputFileName, new SaveOptions(), new ApplyChangeOptions(changes)); } finally { comparer.dispose(); } Compare Text Files and Show Differences using Java Using the Comparer class, we can also compare any text file. Below is the similar code for comparing two text files in Java. Steps are exactly the same as comparing any other two documents:\nStart with passing the text file to the Comparer class. Add the second file using the add method. Call the compare method. // Compare two text files to identify and highlight changes. Comparer comparer = new Comparer(\u0026#34;source.txt\u0026#34;); try { comparer.add(\u0026#34;target.txt\u0026#34;); comparer.compare(\u0026#34;comparison.txt\u0026#34;); } finally { comparer.dispose(); } Here is the output document that shows the comparison result of matching two text files using the above code.\nCompare PDF Files for Text Difference using Java We can compare the PDF files using the same above code, and by just changing the file extensions to \u0026ldquo;.pdf\u0026rdquo;. Just to mention, the code below compare two pdf files and shows differences in Java.\n// Compare two PDF file using Stream Comparer comparer = new Comparer(new FileInputStream(\u0026#34;source.pdf\u0026#34;)); comparer.add(new FileInputStream(\u0026#34;target.pdf\u0026#34;)); comparer.compare(new FileOutputStream(\u0026#34;result.pdf\u0026#34;)); Below is the outcome after comparing the PDF files.\nSee Also C# Diff Library for Comparing Text Files Compare Two Files or More in C# Many other open-source examples are publicly available at GitHub Repository. You may download and quickly run the examples using the getting started guide. In case of any query, look at the documentation or reach us at any time on the forum.\n","permalink":"https://blog.groupdocs.com/comparison/compare-text-word-pdf-files-with-java-difference-library/","summary":"After going through this article, we will be able to compare text files, Word files, PDF files, and other documents in Java-based applications. By using this feature, we can compare invoices, contracts, presentations, AutoCAD designs, price lists, or programming files. We will also the privilege to highlight the identified changes and have the option to either accept or reject any change. We can even build our own [document comparison tool][1] similar to the one launched by GroupDocs, using the document comparison API for Java.","title":"Compare Text, Word, and PDF Files with Java Difference Library"},{"content":"In our previous post, we discussed WebP images and learned to convert WebP Images in Java. Today, in this article, we will learn to programmatically convert the WebP images into JPG, PNG, TIFF, and other formats using C#.\nFirst, we will have a look to convert the WebP images in the simplest way. Later we will convert with some customized options like tilt, flip, grayscale, resize, change gamma, contrast, and brightness, and add watermark to converted JPG images. Following are the quick links to topics:\nConvert WebP to JPG, PNG \u0026amp; TIFF in C# WebP conversion with Advanced Options (Apply Effects) Convert WebP to PDF in C# Steps in this article and code samples are using GroupDocs.Conversion for .NET and the following WebP Image. So please make sure to install the API from any of the following methods:\nInstall using NuGet Package Manager. Download the DLL and reference it into the project. WebP Image\nConvert WebP to JPG in C# To convert the WebP images into other formats, use the Converter class. For the simple conversion, you can use the below-mentioned few lines of C# code. This example shows the quick conversion of a WebP image to a JPG file. Just follow the steps:\nInstantiate the Converter object with the source WebP image. Instantiate the Image Conversion Options using ImageConvertOptions class and just set the Format to JPG. Call the Convert method with the output file path and the conversion options. Here is the converted JPG image that is converted from WebP format using the above code:\nConverted JPG Image\nConvert WebP to PNG, TIFF and other Image Formats in C# Using the same above code and by just changing the file format i.e. \u0026ldquo;ImageFileType.Jpg\u0026rdquo; and the output file name, you may easily convert your WebP files into JPEG, PNG, TIF, TIFF, BMP, etc.\nThis was the simple conversion, now let us convert with different effects.\nConvert WebP to JPG, PNG, TIFF with Advanced Options in C# Along with the conversion of WebP to other formats, we can also add effects while converting. Below are some of the effects like; convert to grayscale; flip images horizontally or vertically; rotate the image to any angle; resize the image to make it smaller or larger; change the contrast, brightness, gamma values; or even apply watermarks to the converted images.\nConverted WebP Image to JPG: Contrast - Flip - Watermark - Brightness - Resize - Gamma - Grayscale - Rotate\nHere is the code that is used to apply these effects. You may apply these effects one by one or in combination to get the desired results.\nConvert WebP to PDF in C# Along with the conversion of WebP images to other image file formats, we can also convert images to PDF format. Following 3 lines of code will do the trick and help you converting the WebP image to PDF format.\nFor more details and advance options to convert into PDF, you may visit the documentation.\nSee Also WebP to PNG Online Converter WebP to JPG Online Converter Convert WebP to JPG, PNG, and PDF in Java There are many other open-source examples that are publicly available at GitHub Repository. Download the source code and quickly run the examples using the getting started guide. In case of any difficulty, look at the documentation or reach us at any time on the forum.\n","permalink":"https://blog.groupdocs.com/conversion/convert-webp-to-jpg-png-tiff-and-pdf-in-csharp/","summary":"In our previous post, we discussed WebP images and learned to convert WebP Images in Java. Today, in this article, we will learn to programmatically convert the WebP images into JPG, PNG, TIFF, and other formats using C#.","title":"Convert WebP to JPG, PNG, TIFF, and PDF in C#"},{"content":"Suppose that you have the opportunity to receive comments or reviews from your customers or some other source and you want to evaluate how positive they are. There is a way to analyze such comments called sentiment analysis. This post focuses on the sentiment analysis tool based on a deep neural network model using C#. This model is suitable for a wide range of tasks.\nSentiment Analysis API for .NET If you want to do sentiment analysis programmatically, GroupDocs.Classification serves that purpose for you. It implements a general-purpose sentiment classifier that can be used to evaluate the tone of product reviews, shop reviews, application reviews, feedbacks, etc.\nThis article will guide you to the classification of comments and analyze the positivity using C# with GroupDocs.Classification for .NET. So before you start, please make sure to install the API from any of the following methods:\nInstall using NuGet Package Manager. Download the DLL and reference it into the project. How to Classify Text using Sentiment Analysis in C# To solve such a task we can use a general class named Classifier, or we can use the Sentiment Classifier which is a bit simpler and more lightweight class. Here are the steps:\nInitialize the SentimentClassifier. Call the PositiveProbability method of SentimentClassifier class and pass the text as a parameter that needs to be analyzed. The PositiveProbability method will return the positivity ranging from 0 to 1. Here is the C# code to find the tone of any statement using the sentiment classification. We have chosen the following sentiment as an example:\n\u0026ldquo;Experience is simply the name we give our mistakes\u0026rdquo;\n// Analyze the positivity of text using sentiment classifier in C#. var sentiment = \u0026#34;Experience is simply the name we give our mistakes\u0026#34;; var sentimentClassifier = new SentimentClassifier(); /// PositiveProbability method returns the positive probability of the sentiment. var positiveProbability = sentimentClassifier.PositiveProbability(sentiment); Console.WriteLine($\u0026#34;Positive Probability of the sentiment { positiveProbability }\u0026#34;); Positive Probability of the sentiment: **0.1118** Any value greater than 0.5 means the sentiment is positive and the range between 0 and 0.5 shows that it is negative.\nNow according to the extracted positivity, you may get the Best Class for that sentiment and probability of that Best Class. We found that its positive probability is 0.11, so it should be classified as a negative comment and its Best Class should be Negative instead of Positive.\nSo what would be its Best Class Probability? Yes, it will be 0.89. Now let see in the code:\nvar sentiment = \u0026#34;Experience is simply the name we give our mistakes\u0026#34;; /// Classify method returns ClassificationResult object with the best class probability and name. var response = sentimentClassifier.Classify(sentiment); Console.WriteLine($\u0026#34;Best Class Name: {response.BestClassName}\u0026#34;); Console.WriteLine($\u0026#34;Best Class Probability: { response.BestClassProbability}\u0026#34;); Best Class Name: **Negative** Best Class Probability: **0.8882** Classify Multiple Comments using Sentiment Analysis in C# Normally we have thousands of comments and feedback, so how could we analyze our customer\u0026rsquo;s feedback? It is simple, just put the feedbacks in an array. Let the string array be the source of review. It also could be a file or the parsed response from a database or service. We can transform the string array to the float array of positive sentiment probabilities.\nvar sentiments = new string\\[\\] { \u0026#34;Now that is out of the way, this thing is a beast. It is fast and runs cool.\u0026#34;, \u0026#34;Experience is simply the name we give our mistakes\u0026#34;, \u0026#34;When I used compressed air a cloud of dust bellowed out from the card (small scuffs and scratches).\u0026#34;, \u0026#34;This is Pathetic.\u0026#34; }; var classifier = new GroupDocs.Classification.SentimentClassifier(); var sentimentPositivity = sentiments.Select(x =\u0026gt; classifier.PositiveProbability(x)).ToArray(); Console.WriteLine(string.Join(\u0026#34;\\\\n\u0026#34;, sentimentPositivity)); **0.8959** - \u0026#34;Now that is out of the way, this thing is a beast...\u0026#34; **0.1118** - \u0026#34;Experience is simply the name we give our mistakes\u0026#34; **0.1252** - \u0026#34;When I used compressed air a cloud ...\u0026#34; **0.0970** - \u0026#34;This is Pathetic.\u0026#34; What can we do with target sentiments? We can measure mean or median positiveness for the target product, shop, etc. Select the worst values and respond to the customers. We can also do analysis like finding inconsistencies between the positive probability value of a product and its rating.\nWe hope you find this post useful. You can find more on text classification or sentiment analysis in C# from the mentioned resources.\nLearn more about GroupDocs.Classification API Documentation Source Code Examples API Reference Downloading and running GitHub examples is the best and easiest way to get started.\nSee Also Classify Raw Text using C# – (IAB-2 \u0026amp; Document Taxonomy) Classify Documents using C# – (IAB-2 \u0026amp; Document Taxonomy) ","permalink":"https://blog.groupdocs.com/classification/classify-customers-feedback-using-sentiment-analysis-in-csharp/","summary":"Suppose that you have the opportunity to receive comments or reviews from your customers or some other source and you want to evaluate how positive they are. There is a way to analyze such comments called \u003cstrong\u003esentiment analysis\u003c/strong\u003e. This post focuses on the sentiment analysis tool based on a deep neural network model using C#. This model is suitable for a wide range of tasks.","title":"Classify your Customer Feedback using Sentiment Analysis in C#"},{"content":"\rWe often need a full-text search API that enables our applications to search through documents for particular information specified as a textual search query. The documents can be of any format such as Word (Doc, Docx), PDF, HTML, EPUB, Spreadsheet (XLS, XLSX), Presentation (PPT, PPTX), images, and videos.\nGroupDocs.Search is a powerful full-text search API that allows you to search through over 70 document formats in your applications. To make it possible to search instantly across thousands of documents, they must be added to the index.\nWhy Use GroupDocs.Search as a Developer? No additional software is required to search through documents of supported formats. Great variety of indexing and search options are provided to meet any requirements. A wide selection of search types is available in text or object form queries. High indexing and search performance is achieved by unique algorithms and data structures, optimizations and multi-threaded execution. Various ways of visualizing search results in the text of documents are supported. Please check About Search Engines article to know what place GroupDocs.Search API occupies in the classification of search engines.\nInstallation GroupDocs.Search for .NET is hosted on NuGet and can easily be installed using the NuGet Package Manager. Alternatively, you can download the API’s DLL from the Downloads section.\nSearch Through Office Documents using C# The following steps explain how to search words or phrases in multiple documents (Word, Excel, PDF and other document formats).\nCreate a new index: First of all, you need to create an index. An index can be created in memory or on disk. An index created in memory cannot be saved after exiting your program. In contrast, an index created on disk may be loaded in the future to continue working. Details on creating an index are described in the section Creating an index. Subscribe to index events: After creating an index, you need to add documents to the index for indexing. Indexing documents can be successful or unsuccessful for various reasons, for example, due to read errors from the disk or the presence of a password to access a document. To receive information about indexing errors, you can subscribe to the ErrorOccurred event. To work with events, see the section Search index events. Index Documents: Document indexing can be performed synchronously or asynchronously. Synchronous indexing means that a thread that started the indexing process will be busy until the operation is completed. However, more often, it is necessary to perform indexing asynchronously, with the ability to execute other tasks in the thread that launched the operation. A detailed description of all aspects of the indexing process is provided in section Indexing. Perform search: When documents are indexed, the index is ready to handle search queries. The following types of search queries are supported: simple, fuzzy, case sensitive, boolean, phrasal, faceted, with wildcards, and others. Description of search queries of various types is presented in the section Searching. Use search results: When a search is completed, you need to somehow interpret a result. The result can be represented by a simple list of documents found, or the words and phrases found can be highlighted in the text of the document. For more information on processing search results, see Search results. string indexFolder = @\u0026#34;/Users/muhammadsohailismail/MyIndex/\u0026#34;; // Specify the path to the index folder string documentsFolder = @\u0026#34;/Users/muhammadsohailismail/MyDocuments/\u0026#34;; // Specify the path to a folder containing documents to search // a) Create new index or // b) Open existing index Index index = new Index(indexFolder); // c) Subscribe to index events index.Events.ErrorOccurred += (sender, args) =\u0026gt; { Console.WriteLine(args.Message); // Writing error messages to the console }; // d) Add files synchronously index.Add(documentsFolder); // Synchronous indexing documents from the specified folder // f) Perform search string query = \u0026#34;Worthy\u0026#34;; // Specify a search query SearchResult result = index.Search(query); // Searching in the index // g) Use search results // Printing the result Console.WriteLine(\u0026#34;Documents found: \u0026#34; + result.DocumentCount); Console.WriteLine(\u0026#34;Total occurrences found: \u0026#34; + result.OccurrenceCount); for (int i = 0; i \u0026lt; result.DocumentCount; i++) { FoundDocument document = result.GetFoundDocument(i); Console.WriteLine(\u0026#34;\\\\tDocument: \u0026#34; + document.DocumentInfo.FilePath); Console.WriteLine(\u0026#34;\\\\tOccurrences: \u0026#34; + document.OccurrenceCount); } // Highlight occurrences in text if (result.DocumentCount \u0026gt; 0) { FoundDocument document = result.GetFoundDocument(0); // Getting the first found document string path = @\u0026#34;/Users/muhammadsohailismail/Output/Highlighted.html\u0026#34;; OutputAdapter outputAdapter = new FileOutputAdapter(path); // Creating the output adapter to a file HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter); // Creating the highlighter object index.Highlight(document, highlighter); // Generating output HTML formatted document with highlighted search results Console.WriteLine(); Console.WriteLine(\u0026#34;Generated HTML file can be opened with Internet browser.\u0026#34;); Console.WriteLine(\u0026#34;The file can be found by the following path:\u0026#34;); Console.WriteLine(Path.GetFullPath(path)); } The above code generates the following output and HTML file.\nSearch in Fields of Documents using C# Faceted search is filtering of search results by setting valid document field names to search. Faceted search allows you to search only in certain fields of documents, for example, only in the content field or in the file name field. A simple faceted search example is presented below with queries in text and object form.\nstring indexFolder = @\u0026#34;c:\\\\MyIndex\\\\\u0026#34;; string documentsFolder = @\u0026#34;c:\\\\MyDocuments\\\\\u0026#34;; // Creating an index in the specified folder Index index = new Index(indexFolder); // Indexing documents from the specified folder index.Add(documentsFolder); // Search in the content field with text query SearchResult result1 = index.Search(\u0026#34;content: Einstein\u0026#34;); // Search in the content field with object query SearchQuery wordQuery = SearchQuery.CreateWordQuery(\u0026#34;Einstein\u0026#34;); SearchQuery fieldQuery = SearchQuery.CreateFieldQuery(CommonFieldNames.Content, wordQuery); SearchResult result2 = index.Search(fieldQuery); Using format specific fields For each document format, there are standard fields that may be present in documents of this type. The library provides the following classes containing constants with the names of standard document fields: EpubFieldNames, FictionBookFieldNames, MailFieldNames, PresentationFieldNames, SpreadsheetFieldNames, WordsFieldNames.\nThere are also fields that may be present in documents of any type. The names of such fields are represented in the CommonFieldNames class.\nAn example of using standard field names of documents is presented in the following example.\nstring indexFolder = @\u0026#34;c:\\\\MyIndex\\\\\u0026#34;; string documentsFolder = @\u0026#34;c:\\\\MyDocuments\\\\\u0026#34;; // Creating an index in the specified folder Index index = new Index(indexFolder); // Indexing documents from the specified folder index.Add(documentsFolder); // Search in the content field with text query string query1 = WordsFieldNames.Company + \u0026#34;: Dycum\u0026#34;; SearchResult result1 = index.Search(query1); // Search in the content field with object query SearchQuery wordQuery = SearchQuery.CreateWordQuery(\u0026#34;Dycum\u0026#34;); SearchQuery fieldQuery = SearchQuery.CreateFieldQuery(WordsFieldNames.Company, wordQuery); SearchResult result2 = index.Search(fieldQuery); Detailed information about faceted search is presented on the page Faceted search.\nConclusion This article has explained how to search through documents (DOCX, PDF, Excel, Text files) for particular information in C#. It also explained how to search in the fields of documents. GroupDocs.Search contains several other features, please check the documentation to learn more about it.\n","permalink":"https://blog.groupdocs.com/search/search-text-in-word-excel-pdf-zip-document-formats-using-csharp-net/","summary":"We often need a full-text search API that enables our applications to search through documents for particular information specified as a textual search query. The documents can be of any format such as Word (Doc, Docx), PDF, HTML, EPUB, Spreadsheet (XLS, XLSX), Presentation (PPT, PPTX), images, and videos.","title":"Search Text in Word, Excel, PDF, ZIP and other Document Formats using C# .NET"},{"content":"Using the .NET API, you can perform searching by parts and specify the number of search threads in C#. This feature will be more beneficial when you search text in large indexes that contain thousands of documents. Furthermore, you can now get the start \u0026amp; end time, and the total search time to get the search results.\nThe following code snippet shows how to create an index and then search text in chunks from the mentioned folder in C# using GroupDocs.Search for .NET. To utilize the best performance, and updated features, I would recommend you install and use the latest version of API.\nSearch Text by Indexing in C# The following example shows how to perform the search by parts/chunks.\nCreate the Index with your index folder. Add your documents folder to the created index. Set the Search Option and set your IsChunkSearch to true for search by chunk/parts Call the Search method of your index by providing your search query and searching options. Now in the result, you may traverse each segment using Search Next and pass it to Chunk Search Token as a parameter. string indexFolder = @\u0026#34;c:\\\\MyIndex\\\\\u0026#34;; string documentsFolder = @\u0026#34;c:\\\\MyDocuments\\\\\u0026#34;; string query = \u0026#34;Einstein\u0026#34;; // Creating an index in the specified folder Index index = new Index(indexFolder); // Indexing documents from the specified folder index.Add(documentsFolder); // Creating a search options instance SearchOptions options = new SearchOptions(); options.IsChunkSearch = true; // Enabling the search by chunks // Starting the search by chunks SearchResult result = index.Search(query, options); Console.WriteLine(\u0026#34;Document count: \u0026#34; + result.DocumentCount); Console.WriteLine(\u0026#34;Occurrence count: \u0026#34; + result.OccurrenceCount); // Continuing the search by chunks while (result.NextChunkSearchToken != null) { result = index.SearchNext(result.NextChunkSearchToken); Console.WriteLine(\u0026#34;Document count: \u0026#34; + result.DocumentCount); Console.WriteLine(\u0026#34;Occurrence count: \u0026#34; + result.OccurrenceCount); } For any suggestions, confusion, or queries related to the .NET Search API, you may use the forum for a quick response. You may quickly create a thread to share your thoughts.\nSee Also Find and Replace Text in PDF using C# Find and Replace Words in Word Documents using C# ","permalink":"https://blog.groupdocs.com/search/search-text-by-indexing-in-csharp-net/","summary":"Using the .NET API, you can perform searching by parts and specify the number of search threads in C#. This feature will be more beneficial when you search text in large indexes that contain thousands of documents. Furthermore, you can now get the start \u0026amp; end time, and the total search time to get the search results.","title":"Text Indexing and Search your Directories using C#"},{"content":"Worried about merge or split documents of various types in multiple platforms? There could be many statements in your mind:\nHow to merge PDF documents together in Java? Want to split word documents, or merge excel spreadsheets. What to do if I need to merge PPT/PPTX presentations. Many more questions, the list may not end. GroupDocs provides a document merging solution for all such requirements. It\u0026rsquo;s Java API allows you to merge documents and manipulate document structure in Java across a wide range of supported document formats. It further allows manipulating document pages, page transformations, information extraction from the documents, generating previews, and much more.\nIn this article, we will look a bit about the following topics :\nHow to merge PDF files in Java. Merge Word documents, Excel Spreadsheets, and PowerPoint presentations. Merge certain document pages. Split any document into multiple documents. The code sample and steps explained below are using GroupDocs.Merger for Java so you may download or integrate it into your maven-based applications with pom.xml configurations.\nMerge PDF files in Java We can combine two or more PDF files in just a few lines of code. Below is the code snippet from the examples, that is self-explanatory and needs no further clarification, hence shows how to merge multiple PDF documents in Java. Steps are very simple if you have done deciding the documents to join together:\nInstantiate Merger object, with the first document with which other documents are to be merged. Call join method, passing the document to merge. Recall join method to merge more documents. Call save method to save the final output. That\u0026rsquo;s it. // Set paths for the documents to join together in a single file. String filePath1 = \u0026#34;document-1.pdf\u0026#34;; String filePath2 = \u0026#34;document-2.pdf\u0026#34;; String filePath3 = \u0026#34;document-3.pdf\u0026#34;; // Merger multiple PDF documents into a single PDF file. Merger merger = new Merger(filePath1 ); merger.join(filePath2 ); // Joining 2nd Document merger.join(filePath3 ); // Joining 3rd Document // Save the merged document. String filePathOutput = \u0026#34;mergedDocument.pdf\u0026#34;; merger.save(filePathOutput); Merge Excel, Word, PowerPoint Documents in Java You can combine multiple Word documents, Excel Spreadsheets, PowerPoint presentations, in fact, almost any documents of the same format. The above code of joining PDF documents can be used to merge a wide variety of documents. At the bottom of the article, I will mention the list of file formats that can be merged with the same code. Here for an example, I am showing how similarly, more than two Word documents can be combined together into a single Word file in just a few lines of Java code.\n// Merger multiple Word documents into a single DOCX file. Merger merger = new Merger(\u0026#34;document1.docx\u0026#34; ); merger.join(\u0026#34;document2.docx\u0026#34; ); // Joining 2nd Document merger.join(\u0026#34;document3.docx\u0026#34; ); // Joining 3rd Document // Save the merged document. merger.save(\u0026#34;mergedDocument.pdf\u0026#34;); Merge Document Pages in Java Multiple documents can be merged by selective pages and also by specifying the desired page range. Your code will remain similar to the mentioned above, just a little change while setting your merging options using JoinOptions class.\nBelow is the source code snippet that shows how to merge documents by specifying certain pages.\n// Set the start and end page number in JoinOptions class. JoinOptions joinOptions = new JoinOptions(1, 2); // Merge two files with selective pages using join method. Merger merger = new Merger(\u0026#34;document-1.docx\u0026#34;); merger.join(\u0026#34;document-2.docx\u0026#34; , joinOptions); merger.save(\u0026#34;merged-Document.docx\u0026#34;); Split Documents into Multiple Documents in Java Just like we have merged documents above, we can also split Word documents, Excel spreadsheets, presentations, PDF files, and many other documents quickly in different ways.\nSplit by exact page numbers Split a document to several multi-page documents Split by page range Split by Even and Odd pages Split by Exact Page Numbers We can split a document by providing the exact number of pages in Java. The following code will split a PDF file into 3 documents, each having the mentioned single page.\nInitialize the SplitOptions object with output file and mode to split. Instantiate the Merger object with the source file or stream to split. Call the split method to split the provided document and get it saved. String filePath = \u0026#34;document.pdf\u0026#34;; String filePathOut = \u0026#34;document\\_{0}.{1}\u0026#34;; // Split the document into multiple single page documents. SplitOptions splitOptions = new SplitOptions(filePathOut, new int\\[\\] { 3, 6, 8 }); Merger merger = new Merger(filePath); merger.split(splitOptions); Split Document into Multipage Documents If you have a document with 6 pages, the below mentioned little modification in the above code will split your document into 3 separate documents in the following manner:\nDocument Name Page Numbers document_1 1, 2 document_2 3, 4, 5 document_3 6 SplitOptions splitOptions = new SplitOptions(filePathOut, SplitMode.Interval, new int\\[\\] { 3, 6 },); Split by Start \u0026amp; End Page Range If you want to split any document by just providing the page range, here is how a Powerpoint presentation can be split into 3 single page presentations.\nString filePath = \u0026#34;presentation.ppt\u0026#34;; String filePathOut = \u0026#34;presentation\\_{0}.{1}\u0026#34;; // Split the presentation into multiple single page presentations. SplitOptions splitOptions = new SplitOptions(filePathOut, 3, 5); Merger merger = new Merger(filePath); merger.split(splitOptions) Split by Even or Odd Page Ranges You can set the even and odd page ranges to split. Following SplitOptions will allow splitting the provided document into multiple one-page documents for odd pages in the range of 3 to 8.\nSplitOptions splitOptions = new SplitOptions(filePathOut, 3, 8, RangeMode.OddPages); Supported Document Formats As promised, here is the list of document formats that can be merged or split with the above examples. You may visit docs anytime to check the updated list.\nDocument Type File Formats Word Processing DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF, TXT Spreadsheets XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, CSV, TSV Presentations PPT, PPTX, PPS, PPSX, ODP, OTP Drawings VSDX, VSDM, VSSX, VSSM, VSTX, VSTM, VDX, VSX, VTX Web HTML, MHT Page Description Languages TEX, XPS eBooks \u0026amp; Others PDF, EPUB, ONE Good to see you here, you can freely contact us on the forum in case you feel any difficulty or have some confusion or want to give some good suggestions.\nSee Also Merge PPT files in Java ","permalink":"https://blog.groupdocs.com/merger/merge-pdf-word-excel-powerpoint-documents-in-java/","summary":"Worried about merge or split documents of various types in multiple platforms? There could be many statements in your mind: * How to merge PDF documents together in Java? * Want to split word documents, or merge excel spreadsheets. * What to do if I need to merge PPT/PPTX presentations. * Many more questions, the list may not end.","title":"Split or Merge PDF, Word, Excel Documents in Java"},{"content":"OLE stands for Object Linking and Embedding. It is provided by Microsoft and allows you to create and edit documents containing items or objects that are created by various applications.\nAs an example, you can embed spreadsheets, images, and sound clips as OLE objects in a Word document. You can use these OLE objects in the Word document and do not worry about switching to multiple applications again and again. You can embed or insert such objects programmatically using OLE in C#.\nThis article will guide you about how you can:\nInsert OLE Object into MS Word Documents Insert OLE Object into Excel Spreadsheets Add OLE Object into PowerPoint Presentations Steps in this article and code samples are using GroupDocs.Merger for .NET. So please make sure to install the API from any of the following methods:\nInstall using NuGet Package Manager. Download the DLL and reference it into the project. Insert PDF as OLE Object into MS Word Document in C# Here are the steps and C# code sample to show how to embed a PDF file into a Word document as an OLE Object:\nInstantiate the OleWordProcessingOptions with embedding options and the document to embed in a Word document. Now instantiate the Merger object with the source Word document path or stream. Call the ImportDocument method and pass the object of OLE Word Processing Options that are set in step 1. That\u0026rsquo;s it. Call the Save method to get the resultant Word document having a PDF document as an OLE object. // Embed a PDF file into a Word document as an OLE Object in C# int pageNumber = 2; OleWordProcessingOptions oleWordProcessingOptions = new OleWordProcessingOptions(@\u0026#34;embedded-doc.pdf\u0026#34;, pageNumber) { Width = 300, // Just setting the height \u0026amp; width, you have more options. Height = 300 }; // Use Merger class to start with source Word document and embed PDF as OLE object. using (Merger merger = new Merger(@\u0026#34;source-doc.docx\u0026#34;)) { merger.ImportDocument(oleWordProcessingOptions); merger.Save(@\u0026#34;word-document-with-OLE.docx\u0026#34;); } Insert Word Document as OLE Object into Excel Spreadsheet in C# We can embed OLE objects into Excel spreadsheets. CSharp Code sample and steps below explaining how to add a Word document into an Excel spreadsheet as an OLE Object:\nInstantiate the OleSpreadsheetOptions with embedding options and the document to embed in an Excel spreadsheet. Now instantiate the Merger object with the source Spreadsheet path or stream. Now call the ImportDocument method and pass the object of OLE Spreadsheet Options that are set in step 1. Finally, call the Save method to get the resultant Excel Spreadsheet having a Word document as an OLE object. // Embed a Word file into an Excel Spreadsheet as an OLE Object in C# int pageNumber = 2; OleSpreadsheetOptions oleSpreadsheetOptions = new OleSpreadsheetOptions(@\u0026#34;embedded-doc.docx\u0026#34;, pageNumber) { RowIndex = 2, // Setting the Row \u0026amp; height Index, you have more options. ColumnIndex = 2 }; // Using Merger class with source spreadsheet and embedding a Word document as an OLE object. using (Merger merger = new Merger(@\u0026#34;sample-doc.xlsx\u0026#34;)) { merger.ImportDocument(oleSpreadsheetOptions); merger.Save(@\u0026#34;excel-sheet-with-ole.xlsx\u0026#34;); } Add PDF as OLE Object to PowerPoint Presentation in C# Similarly, here we are inserting objects in a PowerPoint presentation.\nInstantiate the OlePresentationOptions with embedding options and the document to embed in a PowerPoint presentation. Now instantiate the Merger object with the source Presentation path or stream. Call the ImportDocument method and pass the object of OLE Presentation Options that are set in step 1. Finally, call the Save method to get the resultant PowerPoint presentation with a PDF document as an OLE object. // Embed a PDF file into an Excel Spreadsheet as an OLE Object in C# int pageNumber = 2; OlePresentationOptions olePresentationOptions = new OlePresentationOptions(@\u0026#34;embedded.pdf\u0026#34;, pageNumber) { X = 10, // Setting only X \u0026amp; Y coordinates, you can customize more. Y = 10 }; // Using Merger class to embed a PDF file as an OLE object in the PowerPoint presentation. using (Merger merger = new Merger(@\u0026#34;sample-presentation.ppt\u0026#34;)) { merger.ImportDocument(olePresentationOptions); merger.Save(@\u0026#34;powerpoint-presentation-with-ole.ppt\u0026#34;); } Conclusion We have discussed how easy and quickly we can insert OLE Objects in Word, Excel, or PowerPoint documents programmatically in C#. There is only a small difference in code for each objective i.e. different OLE options class and its options for each file format:\nOleWordProcessingOptions to embed OLE objects in a Word document. OleSpreadsheetOptions to embed OLE objects in Excel Spreadsheets. OlePresentationOptions to embed OLE objects in PowerPoint presentation. You can learn more about the API from the documentation or Let’s talk more @ Free Support Forum.\n","permalink":"https://blog.groupdocs.com/merger/insert-ole-objects-in-word-excel-powerpoint-with-csharp/","summary":"\u003cstrong\u003eOLE\u003c/strong\u003e stands for [Object Linking and Embedding][1]. It is provided by Microsoft and allows you to create and edit documents containing items or objects that are created by various applications.","title":"Insert OLE Objects in Word, Excel, PowerPoint with C#"},{"content":"In the previous post, we discussed how to deal with EXIF data of images in Java. Here, today we will look into achieving the same but in C#. If you haven\u0026rsquo;t visited the last post, but you want to extract, update, add or remove EXIF data of your images programmatically in C#, then this article will guide you through this. We will cover the following ways to manipulate with EXIF data in C#:\nRead EXIF data Read all EXIF tags from an image Update EXIF properties Remove EXIF metadata Metadata Management C# Library GroupDocs.Metadata for .NET is metadata management .NET API. It has a long list of features for a wide variety of supported file formats. It has the ability to not only extract metadata from images but also it can add, edit, update, and remove metadata from the images and documents with various options.\nIn this article, we will use this API, so please make sure to download its binaries or install the API from NuGet.\nRead EXIF Data from Images in C# You can easily read the EXIF data properties by following the mentioned steps. Starting with the extraction of EXIF data from this picture, 93m tall Statue of Liberty. Here we will use a JPG file as an example image, however, we can use any file whether its a PNG, WebP, BMP, GIF, TIFF, or any other from the supported file formats mentioned at the end of this article.\nLoad the image source file containing EXIF data information using the Metadata class constructor. Get its root package by calling GetRootPackage() method. From the root package, get its ExifPackage from its ExifPackage property. Once you have the EXIF package, you can now access the EXIF properties of the image; like Make, Model, Width, Length, DateTime, Copyright, Software, etc as shown below in C# code example. // Extract EXIF Data Package Information from image in C# using (Metadata metadata = new Metadata(\u0026#34;statue-of-liberty.jpg\u0026#34;)) { IExif root = metadata.GetRootPackage() as IExif; if (root != null \u0026amp;\u0026amp; root.ExifPackage != null) { Console.WriteLine(root.ExifPackage.Make); Console.WriteLine(root.ExifPackage.Model); Console.WriteLine(root.ExifPackage.ImageWidth); Console.WriteLine(root.ExifPackage.ImageLength); Console.WriteLine(root.ExifPackage.DateTime); } } The above code will display the following available EXIF information of the provided JPG image.\nMake : NIKON CORPORATION Model : NIKON D7200 Width : 640 Length : 384 DateTime : 2018:07:06 19:31:05 Reading EXIF IFD \u0026amp; GPS Information of Image EXIF data also include the Exif IFD (Image File Directory) and GPS (Global Positioning System) Information. Now for IFD and GPS package information, you just have to access the respective properties of EXIF package i.e. ExifIfdPackage or GpsPackage. From these packages, you can extract much more information than mentioned below:\nDevice serial number Camera Owner name CFA Pattern Speed Image Direction Date Stamp Area Information Altitude Latitude Longitude etc. Below mentioned code can be added in your above method to display EXIF data along with IFD \u0026amp; GPS information.\n// Display EXIF IFD Package Properties like Serial Number and Camera Owner. Console.WriteLine(root.ExifPackage.ExifIfdPackage.BodySerialNumber); Console.WriteLine(root.ExifPackage.ExifIfdPackage.CameraOwnerName); Console.WriteLine(root.ExifPackage.ExifIfdPackage.UserComment); // Display EXIF GPS Information like Latitude, Longitude, etc. Console.WriteLine(root.ExifPackage.GpsPackage.Altitude); Console.WriteLine(root.ExifPackage.GpsPackage.LatitudeRef); Console.WriteLine(root.ExifPackage.GpsPackage.LongitudeRef); Read All EXIF Tags of Images in C# You can extract all the EXIF properties of any image, you may do it in an almost similar fashion as above:\nLoad the image with Metadata constructor. Get the root package by calling the method GetRootPackage(). Get the EXIF package from the ExifPackage property of the root package. Iterate the EXIF package and get desired name-value pairs. Similarly, get the IFD \u0026amp; GPS packages to displays its keys and values. // Extract all EXIF Metadata from the image using (Metadata metadata = new Metadata(\u0026#34;statue-of-liberty.jpg\u0026#34;)) { IExif root = metadata.GetRootPackage() as IExif; if (root != null \u0026amp;\u0026amp; root.ExifPackage != null) { const string pattern = \u0026#34;{0} = {1}\u0026#34;; // Read all EXIF Package Tags and values. foreach (TiffTag tag in root.ExifPackage.ToList()) { Console.WriteLine(pattern, tag.Name, tag.Value); } // Read all EXIF IFD Package Tags and values. foreach (TiffTag tag in root.ExifPackage.ExifIfdPackage.ToList()) { Console.WriteLine(pattern, tag.Name, tag.Value); } // Read all EXIF GPS Package Tags and values. foreach (TiffTag tag in root.ExifPackage.GpsPackage.ToList()) { Console.WriteLine(pattern, tag.Name, tag.Value); } } } Update EXIF Properties in C# You can change the existing EXIF data of any image easily. Following are the steps you may follow:\nUpdate EXIF Package Get the root package by calling the method GetRootPackage(). Set the ExifPackage properties by assigning the new values to corresponding properties like assign new value to: root.ExifPackage.Copyright - to set updated copyrights information. Similarly, you can set the values for the artist, make, model, software, image width \u0026amp; height, DateTime, etc. Update EXIF IFD Package Similar to the setting properties of the EXIF package, we can update the properties of EXIF IFD and GPS packages.\nAssign value to root.ExifPackage.ExifIfdPackage.CameraOwnerName to set camera owner. You may visit the ExifIfdPackage or ExifGpsPackage classes to get an idea about how much you can customize for your images.\n// Update or change new values in EXIF Data (EXIF Package \u0026amp; EXIF IFD Package). using (Metadata metadata = new Metadata(\u0026#34;statue-of-liberty.jpg\u0026#34;)) { IExif root = metadata.GetRootPackage() as IExif; if (root != null) { // Set the EXIF package if it is missing if (root.ExifPackage == null) { root.ExifPackage = new ExifPackage(); } // Setting the desired values in EXIF Package and EXIF IFD Package. root.ExifPackage.Copyright = \u0026#34;Copyright (C) 2011-2020 GroupDocs. All Rights Reserved.\u0026#34;; root.ExifPackage.ImageDescription = \u0026#34;Statue of Liberty for EXIF Data\u0026#34;; root.ExifPackage.Software = \u0026#34;GroupDocs.Metadata for .NET\u0026#34;; root.ExifPackage.ExifIfdPackage.BodySerialNumber = \u0026#34;GD-2020\u0026#34;; root.ExifPackage.ExifIfdPackage.CameraOwnerName = \u0026#34;GroupDocs\u0026#34;; root.ExifPackage.ExifIfdPackage.UserComment = \u0026#34;Nice image captured in 2018\u0026#34;; metadata.Save(\u0026#34;statue-of-liberty-updated.jpg\u0026#34;); } } Remove EXIF Metadata from Images in C# If you want to remove EXIF package from any file, just set its ExifPackage property to null.\n// Removing the EXIF data from an image. using (Metadata metadata = new Metadata(\u0026#34;statue-of-liberty.jpg\u0026#34;)) { IExif root = metadata.GetRootPackage() as IExif; if (root != null) { root.ExifPackage = null; metadata.Save(\u0026#34;statue-of-liberty-no-exif.jpg\u0026#34;); } } Supported Images \u0026amp; Other Formats These are the currently supported file formats by GroupDocs.Metadata for EXIF data information of images, audios, and videos. You may always visit the documentation for the updated information.\nDocument Type File Formats Images BMP, GIF, JPG, JPEG, JPE, JP2, PNG, DJVU, DWG, DXF, WebP, TIFF, PSD, EMF, WMF Audio \u0026amp; Video MP3, WAV, AVI, MOV / QT, FLV, ASF, DICOM See more about GroupDocs.Metadata Documentation - .NET | Java Source code examples API Reference GroupDocs.Metadata – The Metadata Management Solution Let’s talk more @ Free Support Forum.\nRelated Article Manage EXIF Data of Images in Java ","permalink":"https://blog.groupdocs.com/metadata/manage-exif-data-in-csharp-net-for-jpeg-png-tiff-webp-images/","summary":"In the [previous post][1], we discussed how to deal with EXIF data of images in Java. Here, today we will look into achieving the same but in C#. If you haven\u0026rsquo;t visited the last post, but you want to \u003cstrong\u003eextract, update, add or remove EXIF data of your images programmatically in C#\u003c/strong\u003e, then this article will guide you through this.","title":"Manage EXIF Data of JPEG, PNG, TIFF \u0026 WebP Images in C# .NET"},{"content":"EXIF (Exchangeable Image File Format) is the standard to specify the image and sound formats mainly used by digital cameras and scanners. EXIF data includes the tagging and metadata information about the captured image file. Metadata may contain information like camera make, model, shutter speed, date and time, aperture, exposure time, X resolution, Y resolution. etc.\nIf you want to manage, extract, update, or remove EXIF data of your images programmatically, then this article is for you. This article will cover the following ways to manipulate with EXIF data in Java:\nExtract EXIF data - EXIF Data Viewer Extract all EXIF tags from images Update EXIF properties Remove EXIF metadata Java Metadata Manipulation Library GroupDocs.Metadata for Java is an easy to use metadata management Java API. It has the ability to not only extract metadata from images like JPG, PNG, or WebP but also it can add, edit, update, and remove metadata from the images and other documents with different options.\nI am using this API in this article so please make sure to download or integrate it in your Maven-based applications by just adding the following configurations to the pom.xml.\nRepository \u0026amp; Dependency \u0026lt;repository\u0026gt; \u0026lt;id\u0026gt;GroupDocsJavaAPI\u0026lt;/id\u0026gt; \u0026lt;name\u0026gt;GroupDocs Java API\u0026lt;/name\u0026gt; \u0026lt;url\u0026gt;http://repository.groupdocs.com/repo/\u0026lt;/url\u0026gt; \u0026lt;/repository\u0026gt; \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;com.groupdocs\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;groupdocs-metadata\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;20.5\u0026lt;/version\u0026gt; \u0026lt;classifier\u0026gt;javadoc\u0026lt;/classifier\u0026gt; \u0026lt;/dependency\u0026gt; Extract EXIF Data from Images in Java - Metadata Viewer You can read the EXIF data properties by following simple steps. Let\u0026rsquo;s start with the extraction of EXIF data from this picture of Eiffel Tower. I have selected a JPG file as an example image, you can use any of your files whether its a PNG, WebP, BMP, GIF, or TIFF.\nLoad the image source file containing EXIF data information using the Metadata class constructor. Get its root package by calling getRootPackage() method. From the root package, get its EXIF package by calling getExifPackage() method. Once you have the EXIF package, you can get image EXIF properties like Make, Model, Width, Length, Date-Time, etc as shown in the below Java code example. // Extract EXIF Data Package Information from image in Java try (Metadata metadata = new Metadata(\u0026#34;eiffel-tower.jpg\u0026#34;)) { IExif root = (IExif) metadata.getRootPackage(); if (root.getExifPackage() != null) { // Extract EXIF Package ExifPackage exifPackage = root.getExifPackage(); System.out.println(\u0026#34;Make : \u0026#34; + exifPackage.getMake()); System.out.println(\u0026#34;Model : \u0026#34; + exifPackage.getModel()); System.out.println(\u0026#34;Width : \u0026#34; + exifPackage.getImageWidth()); System.out.println(\u0026#34;Length : \u0026#34; + exifPackage.getImageLength()); System.out.println(\u0026#34;DateTime : \u0026#34; + exifPackage.getDateTime());\t} } Here is the EXIF information you will get as a result of the above code.\nMake : NIKON CORPORATION Model : NIKON D3000 Width : 640 Length : 424 DateTime : 2014:08:09 10:35:13 For further IFD (Image File Directory) and GPS (Global Positioning System) package information, you just have to call the respective methods of EXIF package i.e. getExifIfdPackage() or getGpsPackage(). From these packages, you may extract more information like;\nImage capture device serial number Camera Owner name User comments Altitude Latitude Longitude etc. Here is the code that you can add in your above method to display EXIF data along with IFD and GPS information.\n// EXIF IFD Package ExifIfdPackage exifIfdPackage = exifPackage.getExifIfdPackage(); System.out.println(\u0026#34;BodySerialNumber : \u0026#34; + exifIfdPackage.getBodySerialNumber()); System.out.println(\u0026#34;CameraOwnerName : \u0026#34; + exifIfdPackage.getCameraOwnerName()); System.out.println(\u0026#34;UserComment : \u0026#34; + exifIfdPackage.getUserComment()); // EXIF GPS Information Package ExifGpsPackage exifGpsPackage = exifPackage.getGpsPackage(); System.out.println(\u0026#34;getAltitude : \u0026#34; + exifGpsPackage.getAltitude()); System.out.println(\u0026#34;Latitude Ref : \u0026#34; + exifGpsPackage.getLatitudeRef()); System.out.println(\u0026#34;LongitudeRef : \u0026#34; + exifGpsPackage.getLongitudeRef()); Read All EXIF Tags of Images using Java If you want to show or extract all the EXIF properties of any image or file, you may do it in steps similar to the above examples:\nJust load the file with Metadata constructor. Get the EXIF root package by calling the method getRootPackage(). Get the EXIF package by calling getExifPackage() method. Iterate through the EXIF package to get your desired name-value pairs. Similarly, get the IFD and GPS packages and displays its keys and values. try (Metadata metadata = new Metadata(\u0026#34;eiffel-tower.jpg\u0026#34;)) { IExif root = (IExif) metadata.getRootPackage(); if (root.getExifPackage() != null) { String pattern = \u0026#34;%s = %s\u0026#34;; // Reading all EXIF tags. for (TiffTag tag : root.getExifPackage().toList()) { System.out.println(String.format(pattern, tag.getName(), tag.getValue())); } // Extract all EXIF IFD tags. for (TiffTag tag : root.getExifPackage().getExifIfdPackage().toList()) { System.out.println(String.format(pattern, tag.getName(), tag.getValue())); } // Extract all EXIF GPS tags for (TiffTag tag : root.getExifPackage().getGpsPackage().toList()) { System.out.println(String.format(pattern, tag.getName(), tag.getValue())); } } } Update EXIF Properties in Java You can even change the existing EXIF data of any image or any document easily. Steps are simple:\nUpdate EXIF Package Get the EXIF package by calling getExifPackage() method. Use the setter methods like; setCopyright() - to set updated copyrights information. setImageDescription() - to set description of the image. Similarly, you can set the values for Artist, Make, Model, Software, Image Width \u0026amp; Height, Date, Time, etc. Update EXIF IFD Package Just like updating the EXIF package, you can update the properties of EXIF IFD and GPS packages. Please visit the ExifIfdPackage or ExifGpsPackage class to know how much you can customize for your valuable images and documents.\n// Update/Set new values in EXIF Data (EXIF Package and EXIF IFD Package). try (Metadata metadata = new Metadata(\u0026#34;eiffel-tower.jpg\u0026#34;)) { IExif root = (IExif) metadata.getRootPackage(); // Set the EXIF package if it\u0026#39;s missing if (root.getExifPackage() == null) { root.setExifPackage(new ExifPackage()); } ExifPackage exifPackage = root.getExifPackage(); // Setting the desired values in EXIF Package and EXIF IFD Package. exifPackage.setCopyright(\u0026#34;Copyright (C) 2011-2020 GroupDocs. All Rights Reserved.\u0026#34;); exifPackage.setImageDescription(\u0026#34;Eiffel Tower for EXIF\u0026#34;); exifPackage.setSoftware(\u0026#34;GroupDocs.Metadata\u0026#34;); exifPackage.getExifIfdPackage().setBodySerialNumber(\u0026#34;GD-2020\u0026#34;); exifPackage.getExifIfdPackage().setCameraOwnerName(\u0026#34;GroupDocs\u0026#34;); exifPackage.getExifIfdPackage().setUserComment(\u0026#34;Nice image captured in 2014\u0026#34;); metadata.save(\u0026#34;eiffel-tower-updated.jpg\u0026#34;); } Remove EXIF Metadata from Images in Java This is very simple if you want to remove EXIF package from any file, just set its EXIF package to null by calling setExifPackage(null) of root package.\n// Removing the EXIF data from an image. try (Metadata metadata = new Metadata(\u0026#34;eiffel-tower.jpg\u0026#34;)) { IExif root = (IExif) metadata.getRootPackage(); root.setExifPackage(null); metadata.save(\u0026#34;eiffel-tower-no-exif.jpg\u0026#34;); } Supported Images \u0026amp; Other Formats Here are the currently supported file formats by GroupDocs.Metadata. You may always visit the documentation for the updated information.\nDocument Type File Formats Images BMP, GIF, JPG, JPEG, JPE, JP2, PNG, DJVU, DWG, DXF, WebP, TIFF, PSD, EMF, WMF Audio \u0026amp; Video MP3, WAV, AVI, MOV / QT, FLV, ASF, DICOM See more about GroupDocs.Metadata Documentation Source code examples. Java | .NET GroupDocs.Metadata – The Metadata Management Solution Let’s talk more @ Free Support Forum.\nRelated Article Manage EXIF Data of Images in C# ","permalink":"https://blog.groupdocs.com/metadata/handle-exif-data-of-jpg-png-webp-images-in-java/","summary":"\u003cstrong\u003eEXIF\u003c/strong\u003e (\u003cem\u003eExchangeable Image File Format\u003c/em\u003e) is the standard to specify the image and sound formats mainly used by digital cameras and scanners. EXIF data includes the tagging and metadata information about the captured image file. Metadata may contain information like camera make, model, shutter speed, date and time, aperture, exposure time, X resolution, Y resolution. etc.","title":"Manage EXIF Data of JPEG, PNG, TIFF \u0026 WebP  Images in Java"},{"content":"\rThe GroupDocs.Comparison for .NET is a C# library which allows you to compare documents and find differences. Compare and merge Microsoft Word, Excel, PowerPoint, OpenDocument, PDF, Text, HTML and many other documents, retrieve a list of changes between source and target document(s), apply or reject changes and save results with GroupDocs.Comparison API. In addition to this, GroupDocs.Comparison can identify styling and formatting changes - like bold, italic, underlines, strikethroughs, font types, etc.\nChanges detection algorithms used by GroupDocs.Comparison allows to detect differences in different document parts and blocks:\nText blocks - paragraphs, words and characters; Tables; Images; Shapes etc. Here are simple steps to compare two text files and show differences: Instantiate Comparer object with source document path or stream; Call Add method and specify the target document path or stream; Call Compare method. The following code snippet demonstrates the simplest case of documents comparison using a couple lines of code. Compare documents from local file using (Comparer comparer = new Comparer(“source.docx”)) { comparer.Add(“target.docx”); comparer.Compare(“result.docx”); } Compare documents from the stream using (Comparer comparer = new Comparer(File.OpenRead(“source.docx”))) { comparer.Add(File.OpenRead(“target.docx”)); comparer.Compare(File.Create(“result.docx”)); } Let\u0026rsquo;s say you have two contracts in DOCX format that were concluded in different years. If you use the above code to compare these contracts, you get a DOCX file where the deleted elements are marked in red, the added in blue, and the modified in green as shown below:\nAccept or Reject detected differences GroupDocs.Comparison provides an ability to apply or discard specific changes between source and target documents and save the resultant document with (or without) selected changes.\nThe following are the steps to apply/reject changes to the resultant document.\nInstantiate Comparer object with source document path or stream; Call Add method and specify path target document path or stream; Call Compare method; Call GetChanges method and obtain detected changes list; Set ComparisonAction of needed change object to ComparisonAction.Accept or ComparisonAction.Reject value; Call ApplyChanges method and pass collection of changes to it. The following code sample shows how to accept/reject detected differences.\nusing (Comparer comparer = new Comparer(“source.docx”)) { comparer.Add(“target.docx”); comparer.Compare(); ChangeInfo[] changes = comparer.GetChanges(); changes[0].ComparisonAction = ComparisonAction.Reject; comparer.ApplyChanges(File.Create(“result.docx”), new SaveOptions(), new ApplyChangeOptions() { Changes = changes }); } Generate document pages preview GroupDocs.Comparison allows to generate page previews for source, target and resultant document(s) using GeneratePreview method of a Document class.\nPreviewOptions class is used to manage preview generation process - specify desired page numbers, image format etc.\nThe following are the steps to generate a document preview with GroupDocs.Comparison API:\nCreate a new instance of Comparer class and pass the source document path as a constructor parameter; Add target document(s) to comparison using Add method; Source and Targets properties of Comparer object allows to access source and target documents and provides GeneratePreview method; Instantiate the PreviewOptions object with: delegate for each page stream creation (see event handler CreatePageStream); image preview format - PNG / JPG / BMP; page numbers to process; custom size of preview images (if needed). Call GeneratePreview method of Source and Targets document and pass PreviewOptions to it. Get page previews for resultant document using (Comparer comparer = new Comparer(“source.docx”)) { comparer.Add(“target.docx”); comparer.Compare(“result.docx”); Document document = new Document(File.OpenRead(“result.docx”)); PreviewOptions previewOptions = new PreviewOptions(pageNumber =\u0026gt; { var pagePath = Path.Combine(“C:\\\\”, $\u0026#34;result\\_{pageNumber}.png\u0026#34;); return File.Create(pagePath); }); previewOptions.PreviewFormat = PreviewFormats.PNG; previewOptions.PageNumbers = new int[] { 1, 2 }; document.GeneratePreview(previewOptions); } Compare multiple documents GroupDocs.Comparison allows comparing more than two documents. The following code sample shows how to compare multiple documents programmatically.\nusing (Comparer comparer = new Comparer(“source.docx”) { comparer.Add(“target1.docx”); comparer.Add(“target2.docx”); comparer.Add(“target3.docx”); comparer.Compare(“result.docx”); } Installation NuGet is the easiest way to download and install GroupDocs.Comparison for .NET. Please get a temporary license to test the library without any functional restrictions.\nPlease check the documentation to learn more about the library. We also offer free technical support so please feel free to contact us - we will be happy to help.\n","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-for-net-c-sharp-diff-library-for-comparing-text-files/","summary":"The [GroupDocs.Comparison for .NET][1] is a C# library which allows you to compare documents and find differences. Compare and merge Microsoft Word, Excel, PowerPoint, OpenDocument, PDF, Text, HTML and [many other documents][2], retrieve a list of changes between source and target document(s), apply or reject changes and save results with GroupDocs.Comparison API. In addition to this, GroupDocs.Comparison can identify styling and formatting changes - like bold, italic, underlines, strikethroughs, font types, etc.","title":"C# Diff Library for Comparing Text Files"},{"content":"\rEither you want to convert a document to HTML format to get the content for your website, or you have come across an online document submission website that requires documents to be submitted in HTML format. In either case, you need a DOC to HTML converter. However, if you need to convert your documents to HTML programmatically, then this article is for you only. This article will cover the following ways to convert documents to HTML in C#:\nSimplest conversion of documents like DOCX to HTML in C#. Convert to HTML with customized options. Convert using the option to show or hide page borders. C# Document Conversion Library GroupDocs.Conversion for .NET is an easy to use powerful API with the ability to convert any document from the wide list of supported document formats into any supported target formats. You may download the API from the downloads section or install it from NuGet.\nConvert DOCX to HTML in C# - Simple This is the simplest and very useful conversion. I better say that you can convert any of your documents to the HTML format. Just check your format from the supported formats list and go-ahead to get it converted.\nCreate the instance of the Converter class to start with your source document. Instantiate MarkupConvertOptions object. Call the Convert method of the Converter class. That\u0026rsquo;s it. Your document will be converted to HTML and the resultant document will be there in your repository. The following small code sample shows the conversion of a DOCX file into HTML using the Converter class in C#.\n// Converting DOCX to HTML in C# using (Converter converter = new Converter(\u0026#34;document.docx\u0026#34;)) { MarkupConvertOptions options = new MarkupConvertOptions(); converter.Convert(\u0026#34;converted.html\u0026#34;, options); } Convert DOC/DOCX to HTML with Customized Options GroupDocs.Conversion provides different other options to get the desired conversion result. The customized options include:\nFixed Layout Fixed Layout - Show Borders Format Page Number Pages Pages Count Use PDF Watermark Zoom You may visit the documentation or GitHub samples to see each option in detail. I will show some of the customizations while again converting the DOCX to HTML format in below code sample.\n// Converting DOCX to HTML in C# with advance options. using (Converter converter = new Converter(\u0026#34;document.docx\u0026#34;)) { MarkupConvertOptions options = new MarkupConvertOptions { // Setting customized options PageNumber = 2, PagesCount = 1, FixedLayout = true }; converter.Convert(\u0026#34;converted.html\u0026#34;, options); } Convert DOC/DOCX to HTML - Show or Hide Page Borders Last but not least, you can now control the visibility of page borders while converting documents to HTML in C#. The GroupDocs.Conversion for .NET gives this control to the C# programmers. The below example shows that by setting the FixedLayoutShowBorders property of MarkupConvertOptions class to true or false, you can show or hide the page borders in the resultant HTML document.\n// Converting DOCX to HTML in C# with show or hide borders control. using (Converter converter = new Converter(\u0026#34;document.docx\u0026#34;)) { MarkupConvertOptions options = new MarkupConvertOptions { PageNumber = 2, FixedLayout = true, PagesCount = 1, FixedLayoutShowBorders = false }; converter.Convert(\u0026#34;converted.html\u0026#34;, options); } Images below showing the original DOCX document and the converted HTML with and without page borders.\nOriginal DOCX Document\nThe above figure shows the HTML files that are converted from DOCX with show borders and do not show borders options.\nLearn more about GroupDocs.Conversion Documentation Source code examples GroupDocs.Conversion - The Document \u0026amp; Image Conversion Solution Let\u0026rsquo;s talk more @ Free Support Forum.\n","permalink":"https://blog.groupdocs.com/conversion/convert-doc-docx-to-html-in-csharp-and-show-or-hide-page-borders/","summary":"Either you want to convert a document to HTML format to get the content for your website, or you have come across an online document submission website that requires documents to be submitted in HTML format. In either case, you need a \u003cstrong\u003eDOC to HTML converter\u003c/strong\u003e. However, if you need to convert your \u003cstrong\u003edocuments to HTML programmatically\u003c/strong\u003e, then this article is for you only. This article will cover the following ways to convert documents to HTML in C#:","title":"Show and Hide Page Borders while Converting Documents to HTML in C#"},{"content":"Electronic Signature is the digital data that is attached to an electronically transmitted document. It verifies the sender\u0026rsquo;s intention to sign the document.\nAs a developer, you can programmatically sign documents and also verify if the document is properly signed with the right signature. GroupDocs.Signature for .NET API provides many such features and gives you complete control over the electronic signing process. It provides different electronic signature implementations, like:\nText Signatures (text, annotations, watermarks, stickers) Image Signature - with options like image effects and rotation. Digital Signature - based on digital certificates. Barcode Signature QR code Signature Stamp Signature Metadata Signature FormField Signature This article shows how developers can search electronic signatures of various types within any document with C# using GroupDocs.Signature API for .NET.\nSearch QR code signatures in C# Following is the simplest search method that shows how to search QR Code Signatures within a PDF document. You can use the same line of code to search in any of the supported file formats.\n// Search QR Code Signatures in PDF document using C# using (Signature signature = new Signature(\u0026#34;signed.pdf\u0026#34;)) { // search for signatures in document List\u0026lt;QrCodeSignature\u0026gt; signatures = signature.Search\u0026lt;QrCodeSignature\u0026gt;(SignatureType.QrCode); Console.WriteLine($\u0026#34;\\\\nSource document contains following signatures.\u0026#34;); foreach (var qrCodeSignature in signatures) { Console.WriteLine($\u0026#34;QRCode signature found at page {qrCodeSignature.PageNumber} with type {qrCodeSignature.EncodeType.TypeName} and text {qrCodeSignature.Text}\u0026#34;); } } Search barcode, QR code, and other signatures in C# It is quite simple to find barcode signature, QR Code signature, Text signature, or even the hidden Metadata signature in the document. The below-mentioned code shows how different signature types can be extracted from any document in C#.\nusing (Signature signature = new Signature(\u0026#34;signed.pdf\u0026#34;)) { // search for signatures in document SearchResult result = signature.Search(SignatureType.Text, SignatureType.Barcode, SignatureType.QrCode, SignatureType.Metadata); if (result.Signatures.Count \u0026gt; 0) { Console.WriteLine($\u0026#34;\\\\nSource document contains following signatures.\u0026#34;); foreach (var resSignature in result.Signatures) { Console.WriteLine($\u0026#34;Signature found at page {resSignature.PageNumber} with type {resSignature.SignatureType} and Id#: {resSignature.SignatureId}\u0026#34;); } } else { Console.WriteLine(\u0026#34;No signature was found.\u0026#34;); } } Search image signature in PDF and grab content in C# The .NET Signature API not only allows getting all the signatures of various types, but it also grabs the image data content for presentations, spreadsheets, word processing, and PDF documents. Following is the source code showing how to grab the image content after the successful image signature search from a PDF document in C#.\nusing (Signature signature = new Signature(\u0026#34;signed.pdf\u0026#34;)) { // setup search options ImageSearchOptions searchOptions = new ImageSearchOptions() { // enable grabbing image content feature ReturnContent = true, // set minimum size if needed MinContentSize = 0, // set maximum size if needed MaxContentSize = 0, // specify exact image type to be returned ReturnContentType = FileType.JPEG, }; // search document List\u0026lt;ImageSignature\u0026gt; signatures = signature.Search\u0026lt;ImageSignature\u0026gt;(searchOptions); Console.WriteLine($\u0026#34;\\\\nSource document contains following image signature(s).\u0026#34;); // output signatures foreach (ImageSignature imageSignature in signatures) { Console.Write($\u0026#34;Found Image signature at page {imageSignature.PageNumber} and size {imageSignature.Size}.\u0026#34;); Console.WriteLine($\u0026#34;Location at {imageSignature.Left}-{imageSignature.Top}. Size is {imageSignature.Width}x{imageSignature.Height}.\u0026#34;); } //Save signature images string outputPath = \u0026#34;Output\u0026#34;; if (!Directory.Exists(outputPath)) { Directory.CreateDirectory(outputPath); } foreach (ImageSignature imageSignature in signatures) { Console.Write($\u0026#34;Found Image signature at page {imageSignature.PageNumber} and size {imageSignature.Size}.\u0026#34;); Console.WriteLine($\u0026#34;Location at {imageSignature.Left}-{imageSignature.Top}. Size is {imageSignature.Width}x{imageSignature.Height}.\u0026#34;); string outputFilePath = System.IO.Path.Combine(outputPath, $\u0026#34;image{i}{imageSignature.Format.Extension}\u0026#34;); using (FileStream fs = new FileStream(outputFilePath, FileMode.Create)) { fs.Write(imageSignature.Content, 0, imageSignature.Content.Length); } } } Key Resources for GroupDocs.Signature for .NET Explore more about the GroupDocs.Signaure for .NET API. You can freely contact support if you need any help:\nDocumentation Source Code Examples - GitHub Forum ","permalink":"https://blog.groupdocs.com/signature/search-image-signatures-in-word-excel-ppt-pdf-using-csharp/","summary":"\u003cstrong\u003eElectronic Signature\u003c/strong\u003e is the digital data that is attached to an electronically transmitted document. It verifies the sender\u0026rsquo;s intention to sign the document.","title":"Search Image Signatures in Word, Excel, PowerPoint, PDF Documents in C#"},{"content":"Document comparison is one of the most common requirements for today\u0026rsquo;s programming world. Whether it is to compare word files, compare excel files, PDF documents or even compare text files or any other document format, accuracy is the key factor while comparing.\nThis article will give you the idea, how GroupDocs.Comparison facilitates programmers to compare any two or more documents in many ways. On-Premise APIs of GroupDocs.Comparison are currently available for .NET and Java, however, this article is inclined towards C# developers.\nCompare Excel, Word Files or any Document in C# GroupDocs.Comparison allows developers to compare two documents (in fact more than 2. The resulting document shows the changes between the two files in comparison. Below mentioned code shows how you can compare two excel files in just 3 lines of code in C#.\nInstantiate the Comparer object with the source document path. Call Add method to specify the target document path. Call Compare method. That\u0026rsquo;s it. using (Comparer comparer = new Comparer(“source.xlsx”)) { comparer.Add(“target.xlsx”); comparer.Compare(“result.xlsx”); } Comparing excel spreadsheets or Microsoft Word documents are just among the subset of comparisons that are supported by the .NET API of GroupDocs.Comparison. Below is the list of supported document types and their formats. You can visit the documentation to stay updated.\nDocument Type File Formats Word Processing DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, TXT Spreadsheets XLS, XLSX, XLSM, XLT, XLTM, XLSB, XLSM, CSV Presentations PPT, PPTX, PPS, PPSX, POT, POTX OpenDocument ODT, ODP, OTP, ODS, OTT Microsoft Visio Drawings VSD, VSDX, VSS, VST, VDX Portable PDF Note Taking ONE Web HTM, HTML, MHT, MHTML eBooks MOBI Images BMP, GIF, JPG, JPEG, PNG, DICOM, DJVU, DWG, DXF Emails EML, EMLX, MSG Compare two or more Spreadsheets or OneNote Documents in C# After the release of GroupDocs.Comparison for .NET 20.2, the API now supports:\nComparison of more than two Microsoft Excel and OpenOffice spreadsheets (XLS, XLSX, ODS, CSV, \u0026hellip;) Compare multiple Microsoft OneNote documents. The API already supports the comparison of multiple files for various document formats. Following code snippet shows how quickly, multiple excel files can be compared in C#.\nusing (Comparer comparer = new Comparer(“source.xlsx”) { comparer.Add(“target1.xlsx”); comparer.Add(“target2.xlsx”); comparer.Add(“target3.xlsx”); comparer.Compare(“result.xlsx”); } Compare Documents from Stream in C# As a programmer, you are not only allowed to compare documents that are available on local storage, in fact, we can compare documents from the stream.\nJust initialize the Comparer object with the source document stream. Call Add method and specify the target stream. Call Compare method using (Comparer comparer = new Comparer(File.OpenRead(“source.docx”)) { comparer.Add(File.OpenRead(“target1.docx”)); comparer.Add(File.OpenRead(“target2.docx”)); comparer.Add(File.OpenRead(“target3.docx”)); comparer.Compare(File.Create(“result.docx”)); } Compare Password Protected Word Documents / Excel Spreadsheet in C# Password protection is common in the official documentation. Using the document comparison .NET API, it allows its users/developers to compare password-protected documents.\nJust a little change in the code as compared to the code for comparing documents that are not password-protected. While loading the document, use LoadOptions to specify the document password. Below is the sample comparison code for your assistance.\nusing (Comparer comparer = new Comparer(\u0026#34;source.docx\u0026#34;, new LoadOptions() { Password = \u0026#34;1234\u0026#34; })) { comparer.Add(\u0026#34;target1.docx\u0026#34;, new LoadOptions() { Password = \u0026#34;5678\u0026#34; }); comparer.Add(\u0026#34;target2.docx\u0026#34;, new LoadOptions() { Password = \u0026#34;5678\u0026#34; }); comparer.Add(\u0026#34;target3.docx\u0026#34;, new LoadOptions() { Password = \u0026#34;5678\u0026#34; }); comparer.Compare(\u0026#34;result.docx\u0026#34;); } Comparison of Documents with Specific Settings One step ahead of just comparing, using the code similar to the mentioned below, you can compare multiple documents with your customized comparison settings.\nCompareOptions provides you the opportunity to specify your comparison options like font styling for detected changes etc.\nusing (Comparer comparer = new Comparer(“source.docx”) { comparer.Add(“target1.docx”); comparer.Add(“target2.docx”); comparer.Add(“target3.docx”); CompareOptions compareOptions = new CompareOptions() { InsertedItemStyle = new StyleSettings() { FontColor = System.Drawing.Color.Yellow } }; comparer.Compare(“result.docx”, compareOptions); } Compare Programming Language Files in C# GroupDocs continuously increasing the support to compare more file formats. After the release v 20.2, you can now also compare JSON files using .NET API. Following are the programming language file formats that are recently added to the supported document formats list:\nActionScript Assembler C-Based CSharp Groovy JavaScript Java JSON Objective C/C++ Perl PHP Python Ruby Scala Shell/Batch Script, Log, Diff, Config, LESS SQL Let’s Talk You can build your own application using the above-highlighted features. We will be delighted if you contact us on the forum to discuss, solving a problem, or share your feedback.\n","permalink":"https://blog.groupdocs.com/comparison/compare-excel-word-pdf-files-in-csharp/","summary":"Document comparison is one of the most common requirements for today\u0026rsquo;s programming world. Whether it is to compare word files, compare excel files, PDF documents or even compare text files or any other document format, accuracy is the key factor while comparing.","title":"Compare Two Files or More in C#"},{"content":"PDF is no doubt the Portable Document Format, which is one of the most commonly used file formats. PPT and PPTX formats of Microsoft PowerPoint share the popularity in business documents. Due to the popularity of both the document formats and the fixed layout nature of PDF format, there comes the requirement to convert PPT/PPTX to PDF format.\nConsidering the .NET developers today, this article will be providing the solution to the above-mentioned file format conversion. GroupDocs supports the conversion of 50+ document formats, hence providing On-Premise APIs (.NET \u0026amp; Java), Cloud APIs, and online Conversion Apps. After this article, you will get familiar with different ways to convert Microsoft and OpenOffice presentations using GroupDocs.Conversion for .NET.\nThe following topics are discussed below:\nHow to Convert Complete Presentation to PDF Convert Specific PPT slides to PDF Convert Sequential Subset of Slides to PDF Possible Conversions of PowerPoint PPT/PPTX format Convert Presentation with Advanced Options Apply Watermark while Conversion to PDF Convert PPT to PDF in C# GroupDocs.Conversion has made this so easy; the popular and demanding conversion of presentation files. Just with the below-mentioned two lines of CSharp code, you can quickly convert any type of presentation like PPTX or PPT to PDF.\nCreate a new instance of Converter Class with the source document. Instantiate PdfConvertOptions object. Call Convert() method of Converter class. The following code sample converts the complete PowerPoint PPTX to PDF in C#.\nConvert Specific Slides of PPT to PDF in C# We could have a requirement to convert only the selected slides instead of converting the whole presentation. GroupDocs.Conversion allows converting the specific slides of a presentation to the resultant PDF document. Below are the steps and C# source code that shows, how to achieve this.\nLoad the presentation using Converter class. Prepare ConversionOptions for PDF. List the selected slide numbers to convert. Convert to PDF using Convert() method. The following source code converts slides number 1, and 3 of a presentation to PDF.\nConvert Consecutive Slides of PPTX to PDF using C# With the little modification in the requirement, below is the little change in the code. Certain consecutive slides of the presentation can be selected to get these converted into PDF format. Just set the starting page number and number of successive pages ahead.\nLoad the presentation file using Converter class. Set the starting page number and the count of sequentials slides ahead using PDF Conversion Options. Save the selected slides in PDF format using Convert() method. The following code snippet converts the slide numbers 2, 3, and 4 to PDF format in C#.\nPossible Conversions of PPT/PPTX This is not only the PDF that could be the target document format while conversion. You can refer to the documentation for all the possible conversions. More important for developers, we can retrieve all the possible conversion formats of PPT/PPTX presentations by simply calling the GetPossibleConversions() method of the Converter class.\nDefine the source format using the Converter class. Get all the possible conversions of the source format using GetPossibleConversions() method. The following source code shows how to retrieve all the possible conversions of the PPTX formats using C#.\nConvert PPT to PDF with Advanced Options There are many more options while converting the presentations. These options are rarely needed, however when required, they prove their importance. PdfConvertOptions gives control over conversion results while converting to PDF. Along with the common conversion options, it has many additional options that can be seen in detail from the documentation. Just for an overview, we can customize the PPT conversion with the mentioned options and much more:\nZoom Margins GrayScale Formatting Options Image Quality Rotation Watermark Add Watermark while converting PPTX or PPT to PDF in C# Want to secure your presentation while converting it to PDF format? Leave a watermark on the resultant PDF. The below-mentioned steps and source code shows how to put a watermark when a PPT/PPTX presentation is converted to PDF format.\nLoad the PPT file using Converter class.\nPrepare the text watermark options and define:\nWatermark Text \u0026amp; Font\nWatermark Color\nWidht and Height\nRotation Angle\nTranparency\nAdd the prepared watermark to PDF conversion options.\nSave the presentation to PDF using Convert() method.\nThe following C# code example adds a watermark with rotation angle and transparency while converting the PPT to PDF.\nConclusion Let\u0026rsquo;s summarize what we discussed. We learned different ways to convert PPT to PDF format in C#. We separately looked at the steps and code example for converting a specific list of slides, any successive subset of presentation slides, and conversion of PPT to PDF with a customized watermark and other options. Learn more about GroupDocs.Conversion from the documentation.\nLet\u0026rsquo;s Talk You can build your own application using the above-highlighted features. We will be delighted if you contact us on the forum to discuss, solve a problem, or share your feedback. Have a nice development time.\nSee Also Convert PowerPoint and OpenOffice Presentations to PDF in Java ","permalink":"https://blog.groupdocs.com/conversion/convert-presentations-pptx-ppt-to-pdf-in-csharp/","summary":"PDF is no doubt the Portable Document Format, which is one of the most commonly used file formats. PPT and PPTX formats of Microsoft PowerPoint share the popularity in business documents. Due to the popularity of both the document formats and the fixed layout nature of PDF format, there comes the requirement to convert PPT/PPTX to PDF format.","title":"Convert PowerPoint PPT, PPTX and OpenOffice Presentations to PDF in C#"},{"content":"About BoardPro BoardPro is an innovative cloud-based startup developing board management software specifically designed to meet the requirements and governance workflows of the board of directors of small to medium businesses and non-profits. It is an easy-to-use software for board meetings, responsibilities, and documents. It is designed specifically to meet the challenges of limited resources and limited experience. Professional corporate boards can afford extensive governance and administration resources, freeing directors to focus on making a powerful contribution. However, many SME’s and non-profit organisations lack these dedicated resources, meaning they often run less effectively, despite the quality of their directors. BoardPro has taken best practices from corporate boards and simplified and automated these for SME and non-profit boards. Today, still in its early days, BoardPro is used by over 200 boards. In the first 10 months has hosted over 1000 meetings and converted more than 31,000 documents.\nProblem One of the core features of BoardPro is the production of the meeting “Board Pack”. All the reports and papers for each meeting compiled from a variety of user-uploaded files into a single PDF.\nThe executives of the organisation are able to go into BoardPro, find the scheduled meeting, and can attach their monthly reports, special papers to the specific agenda items they relate to.\nThe reports could be uploaded in a wide variety of formats – .pdf, .doc, .docx, .ppt, .pptx, .rtf, .txt, .jpg, etc.\nEach file is converted to PDF and then merged into a single PDF in the correct order, with an internally linked Index and Agenda file.\nThe Board Pack is then distributed to the board members, who can prepare for the board meeting from this single file. No longer are board members receiving multiple documents attached to an email, where they are left wondering which document relates to which agenda item, etc.\nSolution BoardPro Limited Using GroupDocs.Conversion to convert user files to PDF\nZeeshan Bhatti, BoardPro CTO\nOur Initial Implementation To create the Board Pack solution, BoardPro needed a .NET solution for converting a variety of files to PDF. As the executives of the organisation are chronically time-poor, they need to be able to load their reports into BoardPro in the format in which they are written. This means that BoardPro needs to accept the most common office document formats: .pdf, .doc, .docx, .ppt, .pptx, .rtf. txt, .jpg, etc.\nThese documents are stored in their original format in Azure Blob Storage with SQL Server Table enabling the indexing to enable searching of documents. When the Board Pack is requested, an asynchronous service processes this request, converting all attached files into PDF and combining them into a single resultant PDF.\nSystem Architecture Level Issues The earlier implementation of Board Pack feature utilized SyncFusion, a set of libraries for converting various file formats into PDF. Even during the feature implementation phase, we had to constantly work around issues like thread-safety and consistency of behavior and revise system architecture multiple times. Some of these issues are described below.\nSyncFusion lacked support for conversion of documents on managed Azure services, and required us to launch our Board Pack service hosted in a virtual machine (VM). Single-threaded implementation meant that we could process one request per VM. This was a major bottleneck in the overall system. Some documents caused the Board Pack service VM to suspend. This caused a domino effect of failure to cause all subsequent requests to be blocked. We had to implement redundancy to avoid total system failure as presented in the following diagram. Fig 1. Redundancy to avoid total system failure when Syncfusion causes VM to suspend\nDocument Rendering Issues After performing a reasonable amount of testing, we launched this feature for our customers and then the disaster struck – many times over.\nAs soon as the feature was launched, we started getting failures when the uploaded Microsoft Word and PowerPoint documents included embedded objects, linked tables or graph objects. Some of the problems we faced during the conversion of these documents are presented as follows.\nIn some cases, the document conversion failed completely, and users were frequently advised to convert to PDF first in the native client. This caused cognitive dissonance among our customers. Some documents were rendered incorrectly e.g., images were rotated at a wrong angle or the chart trendlines were incorrect. All charts were rendered as raster images with low-quality JPEG compression. See an example of this conversion issue as follows. Fig 2. Original trendline chart on the left (screenshot from Word), incorrect raster rendering by SyncFusion on the left (screenshot from PDF).\nAs a result of these issues, we had to constantly apologize to our customers and suggest inconvenient workarounds. Many of these issues could not be reported to SyncFusion because of the sensitivity of user data. However, the issues that were reported, were confirmed to be defects in their product. The disruption and cost to clients and the business sent us in search of another solution that would provide a superior conversion experience.\nExperience Benefits gained by switching to GroupDocs Previously BoardPro had been using SyncFusion generating Board Pack PDFs, which involved converting the user uploaded documents into PDFs and combining them together. This process, as discussed above, was riddled with bugs and scalability issues. After reporting an average of approximately two issues per month to SyncFusion support team, we decided to start looking for alternatives.\nOur search lead us to discover GroupDocs.Conversion. We wanted to be cautious and evaluated GroupDocs for both scalability and reliability before making the final call. In both our evaluation and later implementation to replaced SyncFusion, we have found GroupDocs.Conversion to be a complete winner.\nSystem Architecture Improvements for Scalability Unlike SyncFusion that requires special VMs and has thread-safety issues, GroupDocs works flawlessly on Azure App Service, Azure WebJobs, as well as Azure Functions. This allowed us to leverage the massive scalability of Azure Functions. For our customers, this means that the Board Pack queue will no longer be choked, even in the rare cases the feature fails. The following diagram illustrates the improved architecture that uses Azure Functions to achieve scalability in a serverless manner.\nFig 3. Leveraging serverless architecture to achieve massive scalability of the BoardPack feature using GroupDocs.Conversion. This was previously not possible using SyncFusion\nImproved Document Conversion Having switched to GroupDocs.Conversion, we are yet to discover a single instance where the document conversion fails. In the past, we had kept anonymized versions of the customer documents that failed to convert using SyncFusion, so that we could report them. With GroupDocs.Conversion, we are pleased to find that each one of that document converts flawlessly. All images and tables are rendered correctly, and above all, charts are rendered as vector images that do not distort or introduce JPEG compression artifacts on higher zoom levels. See an example of this conversion as follows.\nFig 4. Original trendline chart on the left (screenshot from Word), flawless rendering by GroupDocs.Conversion on the right (screenshot from PDF). GroupDocs.Conversion generates a Vector image in the resultant PDF.\nNext Steps BoardPro is continually offering new services to boards of SME’s and non-profit organisations. We have plans for digital signatures, custom document templates and offering a wider range of supported documents to be attached. We are convinced that all of this will be possible using the range of products offered by GroupDocs and Aspose.\nSummary BoardPro no longer uses its previous solution for converting various document formats to PDF for building the Board Pack – this has been completely replaced using GroupDocs.Conversion for .NET.\nGroupDocs.Conversion was easy to implement and an elegant solution for our requirements at BoardPro. It has allowed us to offer higher scalability and reliability to our customers. We found GroupDocs.Conversion more stable and more effective at converting documents than our previous solution.\nThe fidelity of documents is very good. Our biggest concern, that executives can upload their files with the complex components they need for their reporting. The concern has been adequately addressed and we have absolute confidence that these will seamlessly be converted and integrated into the Board Pack. Thanks to GroupDocs.Conversion.\nWe have found GroupDocs documentation and support forums to be very helpful. Overall BoardPro has been very impressed with the product and support offered. We wish we had found GroupDocs sooner.\nContact For more information on this case study and to request details on the customer’s previous supplier, please contact us at www.boardprohub.com\n","permalink":"https://blog.groupdocs.com/total/convert-files-to-pdf-and-merge-multiple-pdfs-to-single-pdf-using-groupdocs.conversion/","summary":"About BoardPro BoardPro is an innovative cloud-based startup developing board management software specifically designed to meet the requirements and governance workflows of the board of directors of small to medium businesses and non-profits. It is an easy-to-use software for board meetings, responsibilities, and documents. It is designed specifically to meet the challenges of limited resources and limited experience. Professional corporate boards can afford extensive governance and administration resources, freeing directors to focus on making a powerful contribution.","title":"BoardPro Converts Files into PDF and Merge Multiple PDFs to Single PDF using GroupDocs.Conversion"},{"content":"About Sakhr Software Sakhr Software Company is a pioneer and market leader in advanced Arabic language technology and solutions. With 28+ years of leading research and development in Arabic computational linguistics, Sakhr has successfully transformed its research in \u0026ldquo;Natural Language Processing\u0026rdquo;; (NLP) into industry-first commercial software and solutions. Governments and enterprises in multiple industries across the Arab region and beyond use Sakhr’s award-winning technology to handle any Arabic content for the digital age. We provide the leading solutions for Arabic, including:\nMachine Translation Optical Character Recognition Speech Technology Knowledge Management Advanced Research Services Professional Translation \u0026amp; Localization Using GroupDocs.Total for .NET to handle and manage the documents manipulations in Sakhr Correspondence Management System.\nAmr Hammad, Projects Director, August 2017\nChallenge We have been looking for a generic document viewer that we can OEM and use within our Correspondence Management System. The development team consists of 5 developers for implementing the new Correspondence Management System.\nWe are in the process to upgrade our solution in 5 customers with an average of 200 users in each customer.\nFigure 1: Login page of the system\nStrategy Finding a Solution We evaluated more than 5 products and compare their technology, supported document formats, features, Arabic support, and licensing schemes. Our team selected the GroupDocs suite from Aspose as we need more features than viewing documents.\nImplementation The solution took 12 months in the development. The challenges were minor as we have been working in the same field for years and the integration with GroupDocs and other third parties was straightforward. In some cases, we needed support from the GroupDocs team and we got the needed support on the timeframe. Result The outcome of our implementation is having state of the art modern Correspondence Management System that can manage and handle all types of the required documents.\nNext Steps We are planning to deploy the solutions in the government agencies in GCC.\nSummary The target objectives and features were achieved, GroupDocs API saved the time and the efforts for our team and minimized the required investments for the company.\nBased on the above, we highly recommend the Aspose GroupDocs Suite of APIs, productive, easy to use, flexible and above all affordable.\n","permalink":"https://blog.groupdocs.com/total/sakhr-software-builds-correspondence-management-system-with-groupdocs/","summary":"About Sakhr Software Sakhr Software Company is a pioneer and market leader in advanced Arabic language technology and solutions. With 28+ years of leading research and development in Arabic computational linguistics, Sakhr has successfully transformed its research in \u0026ldquo;Natural Language Processing\u0026rdquo;; (NLP) into industry-first commercial software and solutions. Governments and enterprises in multiple industries across the Arab region and beyond use Sakhr’s award-winning technology to handle any Arabic content for the digital age.","title":"Sakhr Software efficiently builds Correspondence Management System using GroupDocs.Total for .NET"},{"content":"About Anglo-Eastern Ship Management Anglo-Eastern Ship Management Limited is a ship management company focusing on managing commercial ships. It helps ship owners (direct clients) to ensure ships documentation necessary for trading requirements, maintenance, voyages, staffing, regulatory conformities, legal requirement, and maintenance will be operationally sound. As a ship management, it is at our utmost concerns to operate at the port or at sea. This entails huge documentation such as safety manuals, crew documents, forms and reports to and from the ships to office and vice versa which requires tracking and analysis to meeting regulatory requirements and performance monitoring.\nAnglo-Eastern Ship Management Limited Using GroupDocs.Comparison\nApol Villamor, Senior IT Manager, 13 April 2018 Problem In this kind of industry, transferring, maintaining and updating of documents to and from multiple commercial ships are enormous and complex processes. Document handling overall is a “pulling teeth” in terms of organizing, search and tracking. Therefore, the IT department put forward an initiative to build a document management system (Nautic Systems) to handle document processes in a more structured and efficient way.\nSolution We, the development team in IT department, chose \u0026ldquo;GroupDocs.Comparison\u0026rdquo; to leverage as an API tool incorporated in our Nautic System providing not only on development efficiency but also a highly intuitive document comparison and changes tracking within the document versions that currently most of the controlled document is needed. This achieves the increase of efficiency for about 90% on processing the documents and eliminates back and forth revisions between processors, checkers and approvers. Figure 1: Document version comparison\nFigure 2: Comparison result\nExperience Our development platforms (.NET) truly matched with the GroupDocs API providing the complete document solutions and tools delivering core requirements of the business-user. GroupDocs are very lenient to provide a temporary license to be used for development testing without the trial limitations. The support response turn over to our query is swift and friendly and willing to give ample time to fully test the product until it reaches our satisfaction. They are not going to push you to pay until we are satisfied with the result and expectation. Since the initiative has a very limited time to market requirements, other products are not being benchmarked as GroupDocs alone can provide all we need.\nThe development time incorporating the API took us a week to complete, although meeting some of the challenges like the generation of comparison results for certain document formats. However, the technical support quickly responded to our technical inquiries which the issue has been resolve at the right time.\nNext Steps We will be utilising other products such a search, annotation and watermarking of controlled documents and manuals in the next version and the same will be incorporated in the Nautic System. Also, GroupDocs.Comparison roadmap to expand its functionality on comparing various documents across different storage locations.\nSummary Developing document management for maritime industry is quite challenging, it involves uncommon workplaces such as the ships that are continuously moving around 4 oceans. Transferring of documents across multiple ships coming from various offices (back and forth) requires functionalities that provide efficiency on the processes in a reasonable and timely fashion. GroupDocs bridges that gap by providing useful and powerful API to deliver the document functionalities necessary to provide a quick and timely response to the ship\u0026rsquo;s operations that is the lifeblood of our business.\n","permalink":"https://blog.groupdocs.com/comparison/document-formats-comparison-changes-tracking-solution-by-anglo-eatern/","summary":"About Anglo-Eastern Ship Management Anglo-Eastern Ship Management Limited is a ship management company focusing on managing commercial ships. It helps ship owners (direct clients) to ensure ships documentation necessary for trading requirements, maintenance, voyages, staffing, regulatory conformities, legal requirement, and maintenance will be operationally sound. As a ship management, it is at our utmost concerns to operate at the port or at sea. This entails huge documentation such as safety manuals, crew documents, forms and reports to and from the ships to office and vice versa which requires tracking and analysis to meeting regulatory requirements and performance monitoring.","title":"An Efficient Document Formats Comparison \u0026 Changes Tracking Solution by Anglo-Eastern"},{"content":"About Business Fitness (HowNow) Business Fitness has been providing solutions to Australian accountants since 2001. Our primary software is HowNow Knowledge, Document and Email Management system which is sold to accounting firms and other businesses.\nWe are a small company based out of Brisbane, Australia and have been developing our own software products (primarily server-based) since inception of the company. Over the last 12 months, we have been moving to a SaaS environment.\nOne of the new SaaS products our small team of developers has been creating is the HowNow Portal to facilitate the exchange of documents between accounting firms and their clients. The product is available standalone, but also links directly from HowNow Document \u0026amp; Email Management, making it seamless for users to upload documents to the portal. Two of the features that this new portal needed was Previewing and Signing. Problem As a small team, we did not have the capacity to develop previewing and signing ourselves and were looking for a product that would integrate seamlessly into our Portal. It needed to be available as an outright purchase and be tightly aligned to HowNow. We did not want to integrate with a signing application that charged per transaction or where our clients had to sign up for a separate service. Solution From the user perspective, the GroupDocs integration is invisible, it just appears that they are using the HowNow product at all times, a very clean experience. GroupDocs previewing and signing is implemented inside an ASP.NET MVC website to make it easy to use as a viewer for multiple documents. We can pass a URL for a single document.\nFigure 1: Signing a tax return in the HowNow Portal.\nExperience Finding a solution: Throughout our research, we looked at many products, particularly for an electronic signing solution. One of these products was GroupDocs and we have trialed the product throughout the development period. While we looked at many other products, some of which provided the solutions we needed, they were not available as an outright purchase, which meant our users would have needed to add another subscription to our service. The GroupDocs team has been extremely helpful during the evaluation period and have added extra functionality that we required. We are hoping for more new features in the future!\nImplementation: We are still in the implementation stage, but so far have not had too many challenges and where we have the support team at GroupDocs has been extremely helpful.\nOutcome: The HowNow Portal is completed to the point of being ready for beta testing in the next month. After that, we except a good take-up from existing and new clients.\nNext Steps We are only at stage one of the HowNow Portal, so we will be implementing additional features, such as multiple signatures in the very near future. We hope to use GroupDocs.Viewer and possibly other GroupDocs products in HowNow Online, which is our SaaS document and email management system.\nSummary Thanks GroupDocs for your assistance and for allowing for an extended trial so that we were comfortable in our selection of your products to integrate into HowNow Portal. We are looking forward to seeing enhanced features in both of our products.\nUsing Preview \u0026amp; E-signing to facilitate exchange and signing of documents between accounting firms and their clients.\nMargaret George, General Manager 26th November 2014\n","permalink":"https://blog.groupdocs.com/signature/groupdocs-signature-api-offers-previewing-and-document-e-signing-solution-for-accountancy-firms/","summary":"About Business Fitness (HowNow) Business Fitness has been providing solutions to Australian accountants since 2001. Our primary software is HowNow Knowledge, Document and Email Management system which is sold to accounting firms and other businesses.\nWe are a small company based out of Brisbane, Australia and have been developing our own software products (primarily server-based) since inception of the company. Over the last 12 months, we have been moving to a SaaS environment.","title":"Business Fitness develops HowNow Portal to Preview and e-Sign documents for Accounting Firms"},{"content":"\rWe have rolled out another update for GroupDocs.Viewer for .NET featuring some important bug fixes as well as an improvement related to the MSI package. This release hasn\u0026rsquo;t brought any new feature, still, it has addressed some important issues related to PDF, DWG and ODG file formats. Furthermore, a few compatibility issues which appeared under .NET Standard 2.0 have been resolved. So let\u0026rsquo;s have a brief overview of the bug fixes and improvements we have introduced in v19.11.\nIssue: Rendering DWG to image (PNG/JPG) or PDF resulted in an empty output This issue appeared for some specific DWG files when the contents of the source files were missing in the output and it resulted in blank/empty images or PDF documents.\nIssue: The code hangs when rendering PDF document to HTML One of our customers faced an issue where the API was taking too long to render a particular PDF document into HTML. We have resolved this issue and improved the performance of the API when rendering such PDF documents.\nIssue: Console output is printed when rendering ODG images In the previous versions, the unnecessary messages were printed in the console window while rendering the ODG images. Although it wasn\u0026rsquo;t affecting API\u0026rsquo;s functionality or the output, it might have created confusion for the developers. We have fixed this issue to prevent unexpected messages to be printed in the console window.\nIssue: Compatibility issues under .NET Standard 2.0 In the previous release, we added the support of .NET Standard 2.0 for cross-platform development using GroupDocs.Viewer for .NET. This enhancement raised some internal compatibility issues, however, we have fixed these issues in v19.11.\nImprovement: New ProjectGuid and UpgradeCode for MSI package We have updated the unique identifier that is used by OS to identify the application installed with an MSI package. This update would require you to manually uninstall the previous version of GropuDocs.Viewer for .NET before installing v19.11 using the MSI package.\nSince the updates are always important, we would recommend you to upgrade to v19.11 in your applications. In case you would face any issue or have any confusion, feel free to share with us via our forum.\n","permalink":"https://blog.groupdocs.com/viewer/bug-fixes-for-pdf-dwg-odg-in-groupdocs-viewer-for-net-api/","summary":"We have rolled out another update for GroupDocs.Viewer for .NET featuring some important bug fixes as well as an improvement related to the MSI package. This release hasn\u0026rsquo;t brought any new feature, still, it has addressed some important issues related to PDF, DWG and ODG file formats. Furthermore, a few compatibility issues which appeared under .NET Standard 2.0 have been resolved. So let\u0026rsquo;s have a brief overview of the bug fixes and improvements we have introduced in v19.","title":"Important Bug Fixes in GroupDocs.Viewer for .NET 19.11"},{"content":"\rWe are excited to bring a major release of GroupDocs.Viewer for Java API packaging a bunch of new features, improvements, and bug fixes. In the latest release, we have added the support of viewing archives and a couple of code files as well as provided the features of working with security settings in the PDF documents. So let\u0026rsquo;s walk through the latest release of our document viewer API for Java and check out what you are going to get after upgrading to v19.11.\nView ZIP and TAR Archives The first and foremost feature of v19.11 is viewing the list of files and folders in the ZIP and TAR archives. This feature is quite handy when you want to view the list of the contents without extracting the archives.\nZIP file is used to encase multiple files or folders as a single package that is further compressed to reduce the file size. Similarly, TAR is a Unix File Archive format used to archive the files and folders. In general, both ZIP and TAR are categorized as compression file formats.\nIn the following sections, you will see how to view a list of contents from the ZIP or TAR archives without extracting.\nView List of Contents in ZIP or TAR Archives When rendering an archive file as HTML, GroupDocs.Viewer returns an HTML page containing the list of items that are at the root of the archive. In the case of rendering as image or PDF, the API returns one or more pages depending on the number of items. The following code sample demonstrates this feature.\nView List of Folders from ZIP or TAR ZIP or TAR archives may contain multiple files and folders. These folders may further contain files as well as subfolders. GroupDocs.Viewer also allows viewing the folders that are located at the root of the archive. The following code sample shows how to get a list of folders from a ZIP or TAR archive.\nView List of Subfolders within a Certain Folder of ZIP or TAR There might be the case when you need to obtain the list of subfolders within a root folder in the ZIP or TAR archive. For such a case, you can specify the folder name using ArchiveOptions.setFolderName(\u0026ldquo;FolderName\u0026rdquo;) and the API will return the list of subfolders.\nView List of Files within a Folder in ZIP or TAR Now, once you have got the list of folders (and the subfolders as well), you can extract and view the items from your desired folder. The following code sample shows how to view the items of a specific folder in a ZIP or TAR.\nFor more details on rendering archives, please visit working with archives.\nWorking with Security Settings in PDF Documents The PDF documents allow setting security parameters to restrict unauthorized access. The security can be enabled using:\nOwner password - The password which is required to change document permissions. User password - The password required to open the document. PDF file permissions - The permissions to allow or deny printing, modification and data extraction. In the latest release, we have added the feature of setting the above-mentioned security settings when rendering a file into a PDF document. The following code sample shows how to set the owner password, user password, and the permissions to deny the printing.\nDetecting Security Settings in PDF Document You can also check the security settings that are applied to a particular PDF document. For example, you can check if printing of the document is allowed or not as shown in the following code sample.\nSupport for Viewing Code Files In addition to the support of ZIP and TAR files, we have also added the feature of viewing C# (.cs) and Visual Basic (.vb) code files.\nBug Fixes The following is the list of bugs that are fixed in v19.11.\nOutput extension is empty when saving HTML page into cache Object null reference exception when rendering DWG document The Watermark opacity is set twice when rendering as HTML The separator is wrong for the opacity value File is corrupted or damaged exception for presentation documents Unable to render .xls file with exception \u0026ldquo;file is corrupted or damaged\u0026rdquo; Improvement We have made the following improvements in v19.11.\nImproved performance for rendering PSD image format into PDF Improved rendering Dicom, Dng and WebP formats into PDF Extended support for CellsOptions.setTextOverflowMode option for rendering the document into image Extended support for CellsOptions.setTextOverflowMode option for rendering into PDF Rendering contact photo from vCard file format (VCF) Improve output for rendering zip archives Well, this was a brief overview of the major features as well as improvements and bug fixes. You can also visit the release notes of GroupDocs.Viewer for Java 19.11 to know about the public API changes. Visit the documentation of GroupDocs.Viewer for Java for more details and code samples of every feature. You can download/clone the source code examples from the GitHub repository.\nIn case you find any issue while using our API, we are always available to provide you free support on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/view-files-and-folders-in-zip-and-tar-archives-using-java-api/","summary":"We are excited to bring a major release of GroupDocs.Viewer for Java API packaging a bunch of new features, improvements, and bug fixes. In the latest release, we have added the support of viewing archives and a couple of code files as well as provided the features of working with security settings in the PDF documents. So let\u0026rsquo;s walk through the latest release of our document viewer API for Java and check out what you are going to get after upgrading to v19.","title":"View Contents of ZIP and TAR Archives using GroupDocs.Viewer for Java 19.11"},{"content":"With the release of GroupDocs.Conversion for .NET v19.11 you can now monitor document conversion progress and status using C#. There are way many conversions supported by the API, that are listed in the documentation.\nA new property Listener is added. The document converter listener implementation is used for monitoring conversion status and progress. Have a look at ConverterListener class that implements IConverterListenerinterface\nBelow is the usage\nComing to the improvement, MPP to XLS conversion is improved. Previously, there was an issue in PNG image conversion (e.g. PNG to Word or Presentation). This issue is now fixed. There was another document conversion issue, a particular Word file to PDF with exception: Could not create the bitmap with the specified parameters. This bug is also resolved.\nGet the latest version from the download section. If you want to evaluate API features, we have an open-source example project for you that could be downloaded from GitHub.\n","permalink":"https://blog.groupdocs.com/conversion/monitor-document-conversion-status-and-progress-in-csharp/","summary":"With the release of GroupDocs.Conversion for .NET v19.11 you can now monitor document conversion progress and status using C#. There are way many conversions supported by the API, that are listed in the documentation.\nA new property Listener is added. The document converter listener implementation is used for monitoring conversion status and progress. Have a look at ConverterListener class that implements IConverterListenerinterface\nBelow is the usage\nComing to the improvement, MPP to XLS conversion is improved.","title":"Monitor Document Conversion Status and Progress in C#"},{"content":"\rThe technology is growing at a huge pace and to stand strong through this storm you need to improve every day. Accordingly, to make you enhance your applications and take them to the next level, we keep trying to meet your emerging requirements by introducing new features and improving the existing ones. This is the reason we have introduced an optimized and simplified version of our Java document sanitization and text redaction API - GroupDocs.Redaction for Java.\nThe v19.11 of GroupDocs.Redaction for Java has been released with a new public API and a couple of enhancements. So let\u0026rsquo;s have a look at the enhancements and changes we have done in this version.\nSupport of Numbers Spreadsheets Numbers is Apple\u0026rsquo;s application to create and view the spreadsheet documents in iOS or macOS. The spreadsheets created within this application are stored with .numbers extension and they are quite similar to the other spreadsheets, for example, that are created with MS Excel. We have extended the list of our support spreadsheet formats in the latest release and added the ability to redact the content in the Numbers spreadsheets. Visit spreadsheet redaction for more details on text redaction in spreadsheets.\nSetting PDF Compliance Level GroupDocs.Redaction also allows saving the redacted document into a rasterized PDF document. Since the PDF documents may possess different compliance levels such as PDF/A-1a, PDF/A-1b, we have made it possible for you to set the compliance level of the resultant PDF document as per your choice. For this, the enum PdfComplianceLevel has been added to com.groupdocs.redaction.options package. The following code sample shows how to set the PDF compliance level.\nBreaking Changes In v19.11, we have introduced a new public API which is designed to be simple and easy to use. The following are some notable changes we have made in this version and if you are already using the API, you will face these breaking changes once you upgrade.\nThe Redactor class is introduced to manage the document redaction process (instead of _Document _class from previous versions). The methods redactWith() of the _Document _class are replaced with similar apply() methods in the _Redactor _class. The classes RedactionSummary, RedactionLogRecord, and MetadataFilter have been renamed to RedactorChangeLog, RedactorLogRecord, and MetadataFilters respectively. A number of new exception classes and base exception class for GroupDocs.Redaction exceptions are added. The constructor LoadOptions(DocumentFormatConfiguration) has been removed. All the obsolete members have been removed from the public API. Please visit the migration notes to see how the classes, methods and their usage has been changed in v19.11.\nTry out the latest release by downloading or cloning the source code examples from GitHub. Visit documentation for more details on how to redact, hide, or find and replace text, metadata, and annotations in Word, Excel, PowerPoint, PDF, and image formats.\nIn case you find something difficult for you, feel free to let us know via our forum.\n","permalink":"https://blog.groupdocs.com/redaction/redact-apple-numbers-spreadsheet-using-groupdocs-redaction-for-java-api/","summary":"The technology is growing at a huge pace and to stand strong through this storm you need to improve every day. Accordingly, to make you enhance your applications and take them to the next level, we keep trying to meet your emerging requirements by introducing new features and improving the existing ones. This is the reason we have introduced an optimized and simplified version of our Java document sanitization and text redaction API - GroupDocs.","title":"Redact Content in Apple's Numbers Spreadsheet using GroupDocs.Redaction for Java 19.11"},{"content":"GroupDocs.Parser for Java API is in the market since last year and it is proved to be one of the powerful document parser APIs. It allows parsing and reading popular formats of word processing documents, spreadsheets, presentations, ebooks, emails, markup documents, notes, archives, and databases. Not only the text but you can also extract the images and metadata properties from various document formats including PDF, XLS, XLSX, CSV, DOC, DOCX, PPT, PPTX, MPP, EML, MSG, OST, PST, ONE, and many more.\nIn order to improve the working of the API and simplify its usage for the developers, we have revamped its architecture from scratch. Now, the improved and simplified API is onboard as GroupDocs.Parser for Java 19.11.\nWhat is new in Parser API for Java? In case you are using an older version. The following are the key reasons why you should upgrade to the latest release.\nThe Parser class is introduced to read and extract data from the document of any supported format.\nThe process of data extraction has been unified for all data types.\nProduct architecture has been revamped from scratch in order to simplify the usage of different options and classes to manipulate data.\nThe process of getting document information and preview generation has been simplified.\nHow to migrate? Since the product has gone through the major updates, the classes, methods, and the way they are used have also been changed. However, we haven\u0026rsquo;t yet removed the legacy API from the package, instead, we have moved it to the com.groupdocs.parser.legacy package. Once you upgrade to the v19.11, you just need to perform project-wide replacements of packages from com.groupdocs.parser to com.groupdocs.parser.legacy. This way you will get rid of immediate build issues. You can then gradually proceed to update the source code and use the new public API\u0026rsquo;s classes and methods.\nCode Comparison - Extract Text and Metadata from Documents using Java Let\u0026rsquo;s now have a look at how the code has been changed for extracting text and metadata using the latest release.\nExtract Text from PDF in Java v19.11 or Later Legacy API Extract Metadata from Documents in Java v19.11 or Later Legacy API For more details on code comparison, please have a look at the migration notes.\nWell, this was a brief overview of the latest release. Now, you can evaluate the recent changes yourself by downloading or cloning the updated source code examples from the GitHub repository. We have also updated the documentation as per the latest release.\nIn case you would face any issue while migrating to the latest release or using any particular feature, feel free to let us know via our forum.\n","permalink":"https://blog.groupdocs.com/parser/extract-text-and-metadata-from-documents-using-java/","summary":"GroupDocs.Parser for Java API is in the market since last year and it is proved to be one of the powerful document parser APIs. It allows parsing and reading popular formats of word processing documents, spreadsheets, presentations, ebooks, emails, markup documents, notes, archives, and databases. Not only the text but you can also extract the images and metadata properties from various document formats including PDF, XLS, XLSX, CSV, DOC, DOCX, PPT, PPTX, MPP, EML, MSG, OST, PST, ONE, and many more.","title":"Parse Documents to Extract Text and Metadata using Java"},{"content":"\rShare this issue:\nMonthly Newsletter December 2019\n25% off GroupDocs.Total\nGet 25% off GroupDocs.Total for .NET and Java. Quote HOLOFF2019 when placing your order.\nThis offer is only available on new GroupDocs.Total purchases and cannot be used in conjunction with other offers, renewals or upgrades. Only available directly from groupdocs.com, not through third parties or resellers. Ts\u0026amp;Cs Apply.\nProduct News\nUpcoming .NET API to classify your documents or text with IAB-2 or document taxonomies The GroupDocs.Classification for .NET is going to be launched very soon. All you will have to do is integrate a DLL in your application and start document or text classification. As this will be a back-end API, you can implement it in your web, console or desktop applications. Read more details here.\nGroupDocs free consulting services for customized projects To extend our support services, we are starting the Free Consulting Services for you that will help you get free consultancy about how to use GroupDocs APIs in your projects\nFree Consulting Services are for the customers who are looking to use our APIs but could not find how to get started. Also, there could be the case when you may find it difficult to implement a particular feature our API provides. In such cases, our experienced staff members would love to work with you to know your requirements and help you implement your desired functionality. Read more details here.\nSearch text or image signatures from documents in .NET with GroupDocs.Signature Sometimes you need to scan a document to search if it is signed with a particular text or image. The manual inspection of the whole document or a bunch of documents is not an efficient way. To deal with such a case, we have introduced the feature of searching text or image signatures. Read more details here.\nInsert links dynamically with GroupDocs.Assembly for .NET Hyperlinks in the documents prove to be useful in many cases, for example, adding links to bookmarks in Word documents, adding links to slides within PowerPoint presentations, inserting a link to cell (or a range of cells) in Excel spreadsheets, etc. Therefore, to handle the hyperlinks in the document automation process, please visit this article.\nAdd watermarks to password protected documents in .NET GroupDocs.Watermark already supports adding watermarks to the password protected documents, however, we have further improved and simplified the usage of this feature. Please visit this article to get an insight.\nFrom the Library\n.NET code example: Build your full text search solution in C# Full text search is basically a more advanced way to search a text/query over a collection of documents in a computer. This approach quickly finds all instances of a term and it works by using text indexes. One of the examples of full text search implementation is in Word processors and text editors. It helps you find a phrase or word anywhere in the document. Read more details here.\n.NET code example: Create document viewer in ASP.NET Core MVC for 140+ file formats The online document viewers have become popular after the grown usage of digital documents, especially in the content management systems. The reason behind this popularity is you can view a variety of document formats without purchasing or installing dedicated software programs. Read the article here to know how to create a universal document viewer application.\nCase study: How to remove watermarks from PDF documents If you are looking to create an application to delete watermark from a PDF document. This article is a good learning source for the C# programming developers.\n.NET code example: Add arrow annotation in a PDF file using C# If you are given a document (e.g. PDF, Word, Presentation) and asked to brief the sales achieved in 2018. What will you do? Read this article to get the solution for such cases.\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite.\nGroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite.\nCheck out for more releases during last month\n","permalink":"https://blog.groupdocs.com/total/25-percent-off-groupdocs-total-groupdocs-com-newsletter-december-2019/","summary":"Share this issue:\nMonthly Newsletter December 2019\n25% off GroupDocs.Total\nGet 25% off GroupDocs.Total for .NET and Java. Quote HOLOFF2019 when placing your order.\nThis offer is only available on new GroupDocs.Total purchases and cannot be used in conjunction with other offers, renewals or upgrades. Only available directly from groupdocs.com, not through third parties or resellers. Ts\u0026amp;Cs Apply.\nProduct News\nUpcoming .NET API to classify your documents or text with IAB-2 or document taxonomies The GroupDocs.","title":"25 percent off GroupDocs.Total -  groupdocs.com Newsletter December 2019"},{"content":"Compare two documents but ignore or include header and footer content. Is this what you need in your document comparison application? Then you must try GroupDocs.Comparison for .NET. This back-end API can be implemented in any of your .NET application without any third party tool/software dependency. Those who are already using this API, we have some interesting features and few bug fixes introduced in GroupDocs.Comparison for .NET 19.11.\nSet output paper size A new property PaperSize is introduced in CompareOptions class using that you can adjust paper size of the resultant document (e.g. PaperSize.A4). If you don\u0026rsquo;t set PaperSize value, output file will has paper size same as target document by default.\n[gist id=\u0026ldquo;29d72ee453257df10c4051cb19e16807\u0026rdquo; name=\u0026ldquo;papersize.cs\u0026rdquo;]\nMulti comparer for Email and Text formats API now allows you to compare more than one email and text (target) files.\n[gist id = \u0026ldquo;49d4bd20d6f1431d80a47f60584958de\u0026rdquo; name = \u0026ldquo;multiemailcomparison.cs\u0026rdquo;]\nComparing multiple text files follow same procedure.\nSwitch header and footer comparison A new property HeaderFootersComparison is introduced in CompareOptions class. If you don\u0026rsquo;t want to compare header/footer of a document, just set this property to false.\n[gist id=\u0026ldquo;50bc0ac4ff27812b1e2cc909aec3bf08\u0026rdquo; name=\u0026ldquo;headerfootercomp.cs\u0026rdquo;]\nFollowing are some of the main bug fixes introduced in latest release:\nAPI is not releasing file handles Incorrect box dimensions and position Exception during comparing PDF-files without license Get API from download section. Explore developer guide and in case of any issue, post it on forum.\n","permalink":"https://blog.groupdocs.com/comparison/compare-two-documents-control-header-and-footer-comparison-in-csharp/","summary":"Compare two documents but ignore or include header and footer content. Is this what you need in your document comparison application? Then you must try GroupDocs.Comparison for .NET. This back-end API can be implemented in any of your .NET application without any third party tool/software dependency. Those who are already using this API, we have some interesting features and few bug fixes introduced in GroupDocs.Comparison for .NET 19.11.\nSet output paper size A new property PaperSize is introduced in CompareOptions class using that you can adjust paper size of the resultant document (e.","title":"Compare two documents - Control header and footer comparison in C#"},{"content":"We have a major update for our customers who are using our metadata manipulation API - GroupDocs.Metadata for .NET. We have revamped the architecture of the API to improve and simplify the process of reading, updating, searching or removing the metadata properties from the documents. So let\u0026rsquo;s take a tour of version 19.11.\nWhy do you need to upgrade? You should upgrade to the latest release because:\nThe_ Metadata_ class is introduced as a single entry point to manage metadata in all supported formats. Extracting and updating metadata has been unified for all supported formats. The product architecture has been redesigned from scratch in order to simplify the most common operations with metadata properties. The process of getting document information and preview generation has been simplified. How to migrate? All public types of the legacy API have been moved from the GroupDocs.Metadata namespace to the GroupDocs.Metadata.Legacy namespace. Furthermore, all the legacy types have been marked as obsolete and will be removed in future releases.\nOnce you upgrade to the latest release, you will have to do the project-wide replacement of GroupDocs.Metadata. namespace with the GroupDocs.Metadata.Legacy. to successfully build your solution.\nComparison of Coding Styles Since the API has gone under the major updates, the classes/properties/methods and the way they are used has also been changed. The following is the code comparison of some common metadata operations. This will give you an overview of how things have changed.\nFinding Metadata using Regular Expressions The following code samples retrieve metadata from a file using a regular expression.\nLegacy API v19.11 or Later Replacing Metadata using Regular Expressions The following code samples show how to replace metadata properties using a regular expression.\nLegacy API v19.11 or Later For more details, please have a look at the migration notes.\nYou can download and evaluate the source code examples of the latest release from the GitHub repository. For more details about every feature of the API, please visit the documentation. In case you find something difficult for you, feel free to contact us via our free support forum.\n","permalink":"https://blog.groupdocs.com/metadata/manipulate-metadata-properties-in-documents-groupdocs-metadata-net-api/","summary":"We have a major update for our customers who are using our metadata manipulation API - GroupDocs.Metadata for .NET. We have revamped the architecture of the API to improve and simplify the process of reading, updating, searching or removing the metadata properties from the documents. So let\u0026rsquo;s take a tour of version 19.11.\nWhy do you need to upgrade? You should upgrade to the latest release because:\nThe_ Metadata_ class is introduced as a single entry point to manage metadata in all supported formats.","title":"Manipulate Metadata Properties in Documents with All-New GroupDocs.Metadata for .NET"},{"content":"As all our records and documentations are facing a digital transformation. It has made it quite necessary for us to have a good knowledge of the tools that may help us in the long run. Annotation is one of those tools which may help you in adding the extra, yet necessary, piece of information into your documents.\nAnnotation helps readers in understanding the text in a better way. It also helps different people working on the same task to exchange their concerns regarding a piece of information in the document. It assists different users in commenting or replying through annotations to each other. Simply put, annotations have a wide range of utility.\nGroupDocs.Annotation For .NET And Java GroupDocs.Annotation is a powerful tool which helps in improving applications by adding annotation in the documents. It supports a wide range of documents along with the advantage of authorizing the user to annotate the supported formats in the form of textual comments, watermarks, polylines, redactions, highlighted notes, among others. It empowers the users to communicate their concerns and collaborate through comments.\nAdd Point Annotation In PDF GroupDocs.Annotation offers multiple features to users. Some of these features include Area, Distance, Point, Polyline, Arrow, TextField, Watermark and Ellipse annotations. However, if you are looking for a way to specify the main text on which you are making the comment without creating any mess on the document, Point feature works the best. It helps you to stick comments to any point in a document without causing any harm to the content. In simple words, if you are looking forward to point a text in the document, you can always use the Point Annotation feature to fulfill your purpose. Some of the properties offered by this feature include Box, PageNumber, Type, CreatedOn and CreatorName.\nFollowing example demonstrates how you can add point annotation into PDF using GroupDocs.Annotation for .NET:\nJava developers can add a point annotation into PDF using GroupDocs.Annotation for Java with following line of codes:\nFollowing screenshot shows how the point annotation look likes in resultant document:\n","permalink":"https://blog.groupdocs.com/annotation/add-point-annotation-in-documents-using-.net-and-java-api/","summary":"As all our records and documentations are facing a digital transformation. It has made it quite necessary for us to have a good knowledge of the tools that may help us in the long run. Annotation is one of those tools which may help you in adding the extra, yet necessary, piece of information into your documents.\nAnnotation helps readers in understanding the text in a better way. It also helps different people working on the same task to exchange their concerns regarding a piece of information in the document.","title":"Add Point Annotation in Documents using .NET and Java API"},{"content":"You can convert an image file (e.g. JPEG, JPG, PNG) to PSD format and redesign it as per your requirements using GroupDocs.Conversion for .NET. All you have to do is to integrate this DLL in your web, desktop or console application.\nImplementation Pass source document path as a constructor parameter to the instance of Converter class Instantiate ImageConvertOptions Specify resultant image format using Format property of ImageConvertOptions class Declare SavePageStream delegate, which should proved a stream where each document page will be stored Call Convert method of Converter class instance and pass the declared SavePageStream delegate and the instance of ImageConvertOptions from the previous two steps [gist id=\u0026ldquo;27d0573878a8342d2a30b0c9ac04a8d9\u0026rdquo; name=\u0026ldquo;jpegtopsd.cs\u0026rdquo;]\nHave a look at the source JPEG file:\nBelow is the resultant PSD:\nLearn more about document conversion to image format in this article. You can download our open-source example project in order to evaluate API features. In case of any issue, post it on forum.\n","permalink":"https://blog.groupdocs.com/conversion/convert-a-jpeg-file-to-psd-programmatically-in-csharp/","summary":"You can convert an image file (e.g. JPEG, JPG, PNG) to PSD format and redesign it as per your requirements using GroupDocs.Conversion for .NET. All you have to do is to integrate this DLL in your web, desktop or console application.\nImplementation Pass source document path as a constructor parameter to the instance of Converter class Instantiate ImageConvertOptions Specify resultant image format using Format property of ImageConvertOptions class Declare SavePageStream delegate, which should proved a stream where each document page will be stored Call Convert method of Converter class instance and pass the declared SavePageStream delegate and the instance of ImageConvertOptions from the previous two steps [gist id=\u0026ldquo;27d0573878a8342d2a30b0c9ac04a8d9\u0026rdquo; name=\u0026ldquo;jpegtopsd.","title":"Convert a JPEG file to PSD programmatically in C#"},{"content":"Document Automation (or document assembly) is widely used by organizations for their reporting services and GroupDocs.Assembly for .NET and Java APIs provide a complete package of features required to build reports dynamically. Keeping the modern trends in mind and to meet the emerging requirements of our customers, we keep introducing the new features. Recently, we have released the v19.11 of our document automation API with quite a useful set of features. So in this article, I\u0026rsquo;ll give you an overview of what is new in the latest release.\nDynamic Insertion of Links to Bookmarks, Cells and Slides Hyperlinks in the documents prove to be useful in many cases, for example, adding links to bookmarks in Word documents, adding links to slides within PowerPoint presentations, inserting a link to cell (or a range of cells) in Excel spreadsheets, etc. Therefore, to handle the hyperlinks in the document automation process, we have introduced the dynamic insertion of hyperlinks to:\nbookmarks for Word Processing documents and emails, cells for Spreadsheet documents, and slides for Presentation documents. To insert the hyperlinks, the link tag is used which is placed inside the template documents. The following is the syntax for the link tag:\n\u0026lt;\u0026lt;link [uri_or_bookmark_expression] [display_text_expression]\u0026gt;\u0026gt; The uri_or_bookmark_expression in the tag defines a URI or the name of a bookmark within the same document. This expression is mandatory and must return a non-empty value. Whereas, display_text_expression is the text to be displayed for the hyperlink. This expression is optional and in case it is omitted or returns empty, uri_or_bookmark_expression is used as hyperlink\u0026rsquo;s text.\nFor more details along with the sample template documents, please visit the following documentation articles:\nDynamic insertion of hyperlinks in Java Dynamic insertion of hyperlinks in C# Code Blocks, Spans and Strikeout Text for Markdown In the latest version of our document assembly API, we have extended the set of supported Markdown features. From now on, the following Markdown features will be supported when saving assembled Markdown documents to Word Processing formats and saving assembled Word Processing documents and emails to Markdown:\nIndented code blocks Fenced code blocks Inline code spans Strikethrough text For more details, see how to work with Markdown documents using .NET and Java API.\nAlright! So this is it from my side and it\u0026rsquo;s your turn to check out and use these amazing document assembling features to enhance your document automation process.\nYou can download our ready-to-run source code examples from the GitHub repository. The details of every feature are available in our documentation and as always, we would love to hear from you on our forum.\n","permalink":"https://blog.groupdocs.com/assembly/net-java-document-assembly-api-for-dynamic-insertion-of-hyperlinks/","summary":"Document Automation (or document assembly) is widely used by organizations for their reporting services and GroupDocs.Assembly for .NET and Java APIs provide a complete package of features required to build reports dynamically. Keeping the modern trends in mind and to meet the emerging requirements of our customers, we keep introducing the new features. Recently, we have released the v19.11 of our document automation API with quite a useful set of features.","title":"Dynamic Insertion of Links to Bookmarks, Cells and Slides using GroupDocs.Assembly 19.11"},{"content":"The online document viewers have become popular after the grown usage of digital documents, especially in the content management systems. The reason behind this popularity is you can view a variety of document formats without purchasing or installing dedicated software programs. Considering the importance of document viewers, I thought to write an article on how to create a universal document viewer in ASP.NET MVC.\nWe are going to create an ASP.NET MVC document viewer application that will target the .NET Core framework. For the document rendering at the backend, we\u0026rsquo;ll use GroupDocs.Viewer for .NET API - a powerful document viewer API which supports over 140 document types including PDF, Word, Excel, PowerPoint, Visio, CAD, Outlook, and many other popular formats.\nWhy .NET Core? .NET Core is a valuable addition to the .NET ecosystem by Microsoft. It makes it possible to develop cross-platform applications without any additional efforts required by the developers. This is why I have selected .NET Core to be the targetted framework.\nSteps to Create Document Viewer in ASP.NET Core 1. Open Visual Studio and start a new project.\n2. Select .NET Core from the project types and ASP.NET Core Web Application from templates.\n3. Select Web Application (Model-View-Controller) and click Ok button.\n4. Install GroupDocs.Viewer from NuGet.\n5. Open Views/Home/Index.cshtml file and replace its content with the following:\n6. Open Controllers/HomeController.cs and replace the content of the class with the following code.\n7. Append the following styles in the wwwroot/css/site.css file.\n8. Build the document viewer application and run in your favorite browser.\nDownload ASP.NET MVC Document Viewer The source code of the ASP.NET MVC document viewer is open source and available for download.\n","permalink":"https://blog.groupdocs.com/viewer/document-viewer-in-asp-net-core-mvc-csharp/","summary":"The online document viewers have become popular after the grown usage of digital documents, especially in the content management systems. The reason behind this popularity is you can view a variety of document formats without purchasing or installing dedicated software programs. Considering the importance of document viewers, I thought to write an article on how to create a universal document viewer in ASP.NET MVC.\nWe are going to create an ASP.","title":"Create Document Viewer in ASP.NET Core MVC for 140+ File Formats"},{"content":"We are back with a major update for our customers who are using the eSign API - GroupDocs.Signature for Java. We have performed major product optimization and revamped the architecture which has made the API more memory efficient and easy to use. We have also added the support of a couple of new file formats. Let\u0026rsquo;s have an overview of this amazing release and check out what you would get after upgrading to API v2.\nWhat is New in API v2? We have simplified the way of signing the documents as well as improved the working of the API. Have a look at the key reasons why you should upgrade to the latest release.\nThe previous versions of the API had separate classes to deal with each supported document format. For example, we had PdfSignTextOptions class for text signatures in PDF files and WordsSignTextOptions class for Word Processing documents. But now, we have introduced a unified approach where the signature, verification, and search options are related to signature types only and not the document formats. A single class, TextSignOptions will now be used for all the document formats.\nThe Signature class is introduced as a single entry point to sign the document with various signature types as well as perform verification and search.\nThe overall document related classes that were used to deal with different document formats have been unified to common classes.\nThe API’s architecture is redesigned from scratch in order to simplify the usage of options and classes to manipulate all the signature types.\nThe procedures of getting the document’s information and generating the previews for the documents are also simplified.\nHow to Migrate? The migration process is not as complex as it is supposed to be for the API versions with major updates. The legacy API has been moved into the com.groupdocs.signature.legacy package. Once you upgrade, it is required to make a project-wide replacement of imports from com.groupdocs.signature. to com.groupdocs.signature.legacy to resolve build issues.\nThe following is a code comparison of the previous versions with the latest one. It will give you an overview of how the coding style, the classes, and the methods have been changed.\nSigning Document with Text Signature Old Versions Version 19.11 or Later Setting Up Encryption for Metadata Signature In addition to the major update, we have also added the feature of setting up the encryption for the metadata signature at the options levels. The MetadataSignOptions class provides setDataEncryption method to specify the encryption type (read more). The following code sample shows how to use this option:\nSupport of New File Formats We have added the support of following file formats in the latest release:\nScalable Vector Graphics File (.svg)\nCorel Draw File (.cdr)\nIf you are interested in migration to the latest release, just download and integrate v19.11 in your applications. We have also updated the source code examples in our GitHub repository so you can easily evaluate the API v2. For more details, consult the documentation or have a conversation with us on our forum.\n","permalink":"https://blog.groupdocs.com/signature/java-esign-api-for-digital-signatures-in-documents-and-images/","summary":"We are back with a major update for our customers who are using the eSign API - GroupDocs.Signature for Java. We have performed major product optimization and revamped the architecture which has made the API more memory efficient and easy to use. We have also added the support of a couple of new file formats. Let\u0026rsquo;s have an overview of this amazing release and check out what you would get after upgrading to API v2.","title":"Introducing All-New  GroupDocs.Signature for Java API"},{"content":"GroupDocs.Classification for .NET allows you to classify document or text with IAB-2 or Document taxonomies. Have a look at the image below:\nYou can see how API classifies an input text to IAB-2. If you haven\u0026rsquo;t already explored the online app, visit it now.\nBig News\nWe are going to launch GroupDocs.Classification API for .NET platform very soon. That means, whatever features you can avail/evaluate in the online app, will be available in a back-end API that you can integrate in any of your (existing or new) .NET application.\nIs there any dependency?\nNo, all you have to do is to integrate a DLL in your application and start document or text classification. As this will be a back-end API. Hence, you can implement it in your web, console or desktop application.\nLets have a look at the basic API features:\nRaw text classification Document classification Classifying documents with the next format Supported document formats:\nWord PDF OpenOffice TXT Official release of the API will be announced soon. Please stick to our blog for further updates and news.\n","permalink":"https://blog.groupdocs.com/classification/upcoming-release-of-groupdocs.classification-for-.net/","summary":"GroupDocs.Classification for .NET allows you to classify document or text with IAB-2 or Document taxonomies. Have a look at the image below:\nYou can see how API classifies an input text to IAB-2. If you haven\u0026rsquo;t already explored the online app, visit it now.\nBig News\nWe are going to launch GroupDocs.Classification API for .NET platform very soon. That means, whatever features you can avail/evaluate in the online app, will be available in a back-end API that you can integrate in any of your (existing or new) .","title":"Upcoming release of GroupDocs.Classification for .NET"},{"content":"\rWith the release of version 19.10 of our electronic signature API - GroupDocs.Signature for .NET, we have introduced the features of searching text signatures and image signatures in the supported document formats. Not only this, the API now supports .NET Standard 2.0 which makes it compatible with any .NET implementation that targets .NET Standard specifications. So let\u0026rsquo;s have a brief overview of what is new, improved or fixed in the latest release.\nSearching Text or Image Signatures Text and image signatures are among the popular types of signatures for digital documents. GroupDocs.Signature supports adding text and image signatures in the supported document formats. However, there could be the case when you need to scan a document to search if a document is signed with a particular text or image. The manual inspection of the whole document or a bunch of documents is not an efficient way. To deal with such a case, we have introduced the feature of searching text or image signatures.\nSearching Text Signature GroupDocs.Signature for .NET provides various options in TextSearchOptions class for searching the text signatures including:\nText - The signature text to match on searching. AllPages - Flag to search on each page of the document. MatchType - Specifies the match types such as exact match, contains, starts with and ends with. PageNumber - For searching on a specific page. PagesSetup - To specify if you want to search on even/odd pages, first/last page or on the arbitrary page numbers. The following code sample shows how to search a text signature in a document.\nSearching Image Signature For searching image signatures, the API provides ImageSeachOptions class which contains the following options:\nAllPages - Flag to search on each page of the document. PageNumber - For searching on a specific page. PagesSetup - To specify if you want to search on even/odd pages, first/last page or on the arbitrary page numbers. The following code sample shows how to search the image signature in a document.\nFor more details on the search feature, please visit this documentation section.\nSupport of .NET Standard 2.0 We received a number of requests from our customers for the support of .NET Core. Therefore, we have added the support of .NET Standard 2.0 in our latest release. Now, you can use the API in .NET Framework as well as in .NET Core for the cross-platform development.\nBug Fix The memory leaks were found in the previous versions of the API while previewing the documents. This issue has now been fixed in v19.10.\nYou can download the latest version of the API to avail the above-mentioned features and fix. For running code samples, download or clone the examples project from the GitHub repository. You can also get in touch with us via our forum.\n","permalink":"https://blog.groupdocs.com/signature/search-text-or-image-signatures-in-documents-using-groupdocs-signature-for-net/","summary":"With the release of version 19.10 of our electronic signature API - GroupDocs.Signature for .NET, we have introduced the features of searching text signatures and image signatures in the supported document formats. Not only this, the API now supports .NET Standard 2.0 which makes it compatible with any .NET implementation that targets .NET Standard specifications. So let\u0026rsquo;s have a brief overview of what is new, improved or fixed in the latest release.","title":"Search Text or Image Signatures in Documents using GroupDocs.Signature for .NET 19.10"},{"content":"The database is considered to be an integral part of most of the applications. Be it a desktop, web or mobile application, database plays a vital role in storing, accessing and manipulating the data. There are many database management systems that allow creating and managing databases for you.\nHowever, there could be a scenario when you need a way to extract data from database files, i.e. .db file, without installing a database management system or writing the SQL queries. How would you parse the database file in such a case and get the data from it?\nIn this article, I am going to demonstrate how easily you can extract the data from the tables in an SQLite database without writing SQL queries. I am going to use GroupDocs.Parser for .NET API which supports extracting data from databases via ADO.NET.\nSteps to Extract Data from Tables in SQLite Database (.db) 1. Create a new project in Visual Studio.\n2. Install GroupDocs.Parser for .NET from NuGet.\n3. Add the following namespaces.\n4. Prepare the connection string.\n5. Load the database file in the Parser object.\n6. Get list of the tables in the database using Parser.GetToc method.\n7. Iterate over the tables and extract data.\nComplete Code Output Visit the documentation to explore more about GroupDocs.Parser for .NET API. You can download or clone the source code examples from GitHub repository. In case of any query, just post it on the forum.\n","permalink":"https://blog.groupdocs.com/parser/extract-data-from-database-files-using-csharp/","summary":"The database is considered to be an integral part of most of the applications. Be it a desktop, web or mobile application, database plays a vital role in storing, accessing and manipulating the data. There are many database management systems that allow creating and managing databases for you.\nHowever, there could be a scenario when you need a way to extract data from database files, i.e. .db file, without installing a database management system or writing the SQL queries.","title":"Extract Data from Database Files using C#"},{"content":"At GroupDocs, we always strive to provide you with the best services for document manipulation operations. Our document manipulation APIs have been serving our customers in building feature-rich applications. Our free support services have proved to be a great success in helping solve customers\u0026rsquo; issues and concerns.\nTo extend our support services, we are starting the Free Consulting Services for you that will help you get free consultancy about how to use GroupDocs APIs in your projects.\nFree Consulting Services are for the customers who are looking to use our APIs but could not find how to get started. Also, there could be the case when you may find it difficult to implement a particular feature our API provides. In such cases, our experienced staff members would love to work with you to know your requirements and help you implement your desired functionality.\nThe workflow of getting free consultancy is simple. Just post the details of your requirements along with the underlying technology, environment, operating system, or any other aspects that will help us understand your scenario. Once we have got the details, we\u0026rsquo;ll shape up your requirements into a running project. After completion, you will be able to fetch your customized project and enhance it to the next level to turn it into a professional application.\nPlease note that Free Consulting Services is not intended to be used for reporting bugs or requesting for the new features in the APIs. If you find a bug in our APIs or have a new feature request, please post that in our Free Support Forums.\nPlease visit the Free Consulting Services page for more details. If you have a free consulting request, get started and post your request.\n","permalink":"https://blog.groupdocs.com/total/offering-groupdocs-free-consulting-services-for-customized-projects/","summary":"At GroupDocs, we always strive to provide you with the best services for document manipulation operations. Our document manipulation APIs have been serving our customers in building feature-rich applications. Our free support services have proved to be a great success in helping solve customers\u0026rsquo; issues and concerns.\nTo extend our support services, we are starting the Free Consulting Services for you that will help you get free consultancy about how to use GroupDocs APIs in your projects.","title":"Offering GroupDocs' Free Consulting Services for Customized Projects"},{"content":"\rHello everyone! We have released v19.10 of GroupDocs.Viewer for .NET and I have a piece of breaking news especially for those who requested the support of .NET Core. The latest release of the API includes 6 new features, 2 improvements, and 11 bug fixes. So let\u0026rsquo;s have a look at some major updates we have brought for you.\nSupport of .NET Standard 2.0 As promised, we have added the support of .NET Standard 2.0 in v19.10. So now, the API supports the .NET implementations that target .NET Standard 2.0 inlcuding .NET Framework and .NET Core. Thus, you can use GroupDocs.Viewer for .NET API in your cross-platform applications. At the moment, there exist a few limitations when using the API in a non-Windows environment. You can see the details of the limitations and the possible recommendations here.\nAdjusting Page Size when Rendering Emails as HTML Previously, the feature of setting page size for email messages was available only for image-based rendering. However, we have extended it for HTML-based rendering as well. Now, you can control the page size of the resultant HTML pages as shown in the following code sample:\nSupport of .gzip and .sxc Formats In the latest release. we have extended the list of our supported file formats and added the support of Gnu Zipped Files (.gzip) and StarOffice Calc Spreadsheets (.sxc).\nBug Fixes The following bugs that were reported in earlier versions have been fixed.\nTiff files are rendered incorrectly. Incorrect image URLs when rendering email as HTML. Blur image in when rendering slides as HTML. Rendering Word document is taking a long time. External resources failed to load when rendering Email messages. Styles are lost when rendering XLSX into HTML. The print preview of the rendered HTML is zoomed in. Exception when rendering Word document as HTML. Rendering Diagram document provides improper output colors. \u0026ldquo;A null reference or invalid value was found\u0026rdquo; exception when rendering DWG as HTML. DWG rendered empty. Other Improvements Improved rendering of Markdown Documentation File (*.md) file format. Fit content by width when rendering mail messages into PDF/JPG/PNG. Have a look at the release notes for more details about the API changes in v19.10. We have also updated the source code examples on the GitHub repository for the latest release and added the sample project for .NET Core. In case you would have any questions or queries, do let us know on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/support-of-net-standard-and-net-core-in-groupdocs-viewer-for-net/","summary":"Hello everyone! We have released v19.10 of GroupDocs.Viewer for .NET and I have a piece of breaking news especially for those who requested the support of .NET Core. The latest release of the API includes 6 new features, 2 improvements, and 11 bug fixes. So let\u0026rsquo;s have a look at some major updates we have brought for you.\nSupport of .NET Standard 2.0 As promised, we have added the support of .","title":"Support of .NET Standard 2.0 in GroupDocs.Viewer for .NET 19.10"},{"content":"Watermarking is a famous way of adding labels to the documents that may indicate the state of the document such as draft, confidential, etc. It can be used to add a company\u0026rsquo;s logo behind the text of the document to avoid the ownership dispute. In some cases, people add watermarks to the documents to protect the content. But, are you sure that the content is protected and no one can remove those watermarks? There is no guarantee because various third-party tools are available that can wipe out the watermarks from the documents.\nIn such scenarios, you need some way to lock the watermarks to restrict the editing. In this article, I\u0026rsquo;ll show you how to protect your Word documents and prevent the editing of the watermarks programmatically in C# using GroupDocs.Watermark for .NET API.\nLocking Watermark in Word Document GroupDocs.Watermark provides 5 variants of locking Word document when adding watermark.\nAllowing Revisions Only In this case, the user will only be able to add revision marks to the Word document. The content of the document as well as the watermark will be read-only.\nAllowing Comments Only If this type of restriction is applied then the user will only be able to modify the comments in the document.\nAllowing Form Fields Only With this option, the document is split into one-page sections and a locked section with the watermark is added between each two adjacent document sections.\nRead Only with Editable Content In this case, the document is marked as read-only but all the content except the watermark is marked as editable.\nCompletely Read Only In this case, the entire document is marked as read-only and nothing can be edited.\nSource Code The following code sample shows how to impose the above-mentioned restrictions on a Word document when adding the watermark.\nHave any questions or queries? Do contact us on our forum.\n","permalink":"https://blog.groupdocs.com/watermark/lock-watermarks-in-word-documents-programmatically-using-csharp/","summary":"Watermarking is a famous way of adding labels to the documents that may indicate the state of the document such as draft, confidential, etc. It can be used to add a company\u0026rsquo;s logo behind the text of the document to avoid the ownership dispute. In some cases, people add watermarks to the documents to protect the content. But, are you sure that the content is protected and no one can remove those watermarks?","title":"Lock Watermarks in Word Documents using C#"},{"content":"Invoices and receipts are the documents that are used to record the transactions in a particular format when buying or selling of the services or goods is involved. Things have gone digital and with the popularity of online shopping, digital invoices are widely used. Processing a number of digital invoices and extracting the information manually is a complex as well as time taking process. Thus, you need a faster yet efficient way for such a case. So in this article, I am going to show you how to extract data from a PDF invoice or receipt programmatically in C# using GroupDocs.Parser for .NET API.\nWorkflow for Extracting Data from a PDF Invoice The following is the workflow of how to extract the data from a PDF invoice using GroupDocs.Parser for .NET.\nCreate table parameters for extracting data from the tables. Create template items for extracting data from fields. Parse the invoice according to the given template. Extract the data. The Invoice The following is the screenshot of a sample PDF invoice that I\u0026rsquo;ll use for extracting the data. You can download this invoice from our GitHub repository.\nThe Code Create the template for the given invoice (read more about templates). Parse the invoice and extract data. The Output To explore more about GroupDocs.Parser for .NET API, visit the documentation. Reach us at our forum in case of any questions or queries.\nSee Also Extract invoice data from PDF using templates in Java ","permalink":"https://blog.groupdocs.com/parser/extract-data-from-invoices-or-receipts-in-csharp/","summary":"Invoices and receipts are the documents that are used to record the transactions in a particular format when buying or selling of the services or goods is involved. Things have gone digital and with the popularity of online shopping, digital invoices are widely used. Processing a number of digital invoices and extracting the information manually is a complex as well as time taking process. Thus, you need a faster yet efficient way for such a case.","title":"Extract Data from Invoices or Receipts in C#"},{"content":"Document comparison is one of the most common procedure that is practiced almost in all of the digital businesses. And the objective is same, highlight the inserted or deleted items. Detect the style changes and generate a summary. Let\u0026rsquo;s see how GroupDocs.Comparison for Java can help us with this scenario. This is a back-end API that can be integrated in any Java application irrespective of the frameworks. Explore API documentation to learn more about the supported features and file formats.\nThose who are already using the API, we\u0026rsquo;ll discuss new features and improvements introduced in version 19.10.\nHow about controlling the document comparison sensitivity? We\u0026rsquo;ve added a sensitivity property in ComparisonSettings class. This option defines limit in percents, when an element is detected as deleted or inserted.\nMinimal value\nMinimal value is 0, comparison process does not occur for any length of sequences of two compared objects.\nValue by default\nThe default percentage is 75, comparison occurs when the percentage of deleted or inserted elements in relation to all elements does not exceed 75%.\nMaximum value\nThat is 100%. Comparison occurs at any length of a common sub-sequence of two compared objects.\nNow let’s understand this with a use-case. Suppose we have two words:\noneSource twoTarget These two words have very small common sub-sequence. Therefore, when comparing them at 75% accuracy, it is not taken into account and we get a completely removed and inserted word as follows:\n(twoTarget)\\[oneSource\\] But at 100% accuracy, this sub-sequence will be treated or represented in a different way, despite the fact that it consists of two letters.\n(tw)o\\[n\\](Targ)e\\[Source\\](t) Isn’t it amazing? You can now get briefed comparison results by just controlling the sensitivity.\nDid you ever think of getting _coordinates _of document changes or differences? It could be confusing at first but let me elaborate this. In your output or resultant document, you get every detail of inserted, deleted or style changed items. The new thing is that you can get coordinate details where changes or differences actually occurred. Currently this feature is supported for only Word, PDF, Slide and Diagram formats.\nYou can get the API from download section. We also have an open-source GitHub example project. However, if you face any issue while evaluating the API, you can post it on forum.\n","permalink":"https://blog.groupdocs.com/comparison/control-documents-comparison-sensitivity-in-java/","summary":"Document comparison is one of the most common procedure that is practiced almost in all of the digital businesses. And the objective is same, highlight the inserted or deleted items. Detect the style changes and generate a summary. Let\u0026rsquo;s see how GroupDocs.Comparison for Java can help us with this scenario. This is a back-end API that can be integrated in any Java application irrespective of the frameworks. Explore API documentation to learn more about the supported features and file formats.","title":"Control documents comparison sensitivity in Java"},{"content":"The first and foremost question in your mind could be, is it about PDF documents only? And the answer is, No. In this blog post we will see how simple yet helpful it is to extract pages from different kinds of documents (e.g. Word, Excel, Presentation, PDF, HTML, RTF) and save them as a new file using GroupDocs.Merger for .NET. Learn more about the supported file formats. Hence, the resultant document will possess only extracted pages.\nIs there any software installation needed?\nGroupDocs.Merger for .NET is a back-end API that can be integrated in any existing or new .NET application (e.g. ASP.NET, Windows form, Console). It doesn\u0026rsquo;t matter if MS Office or any PDF reader is installed on your computer or not. API doesn\u0026rsquo;t rely on any third party tool or software.\nHow simple is it?\nThe following code sample demonstrates how to extract document pages by specifying exact page numbers:\nThe following code sample demonstrates how to extract document pages by specifying page numbers range:\nBelow is the source PDF with 13 pages. Suppose we want to extract two pages only (1, 3) and create new PDF.\nOutput PDF will look like this:\nYou can get API from the download section. If you face any issue, post it on forum.\n","permalink":"https://blog.groupdocs.com/merger/extracting-pages-from-a-document-and-saving-them-as-a-new-file-in-c/","summary":"The first and foremost question in your mind could be, is it about PDF documents only? And the answer is, No. In this blog post we will see how simple yet helpful it is to extract pages from different kinds of documents (e.g. Word, Excel, Presentation, PDF, HTML, RTF) and save them as a new file using GroupDocs.Merger for .NET. Learn more about the supported file formats. Hence, the resultant document will possess only extracted pages.","title":"Extracting pages from a document and saving them as a new file in C#"},{"content":"\rIt\u0026rsquo;s been quite long since we released the last version of GroupDocs.Watermark for .NET API. The reason behind this gap was to introduce a more simplified and optimized watermark manipulation API for the .NET platform. Today, I am excited to announce that the API v2 of GroupDocs.Watermark for .NET has been released as v19.10 and it is available for download.\nWhat\u0026rsquo;s new in the latest release? The major updates have been done at the architecture level of the API to simplify its usage. Furthermore, we have performed major product optimization in the codebase and introduced unified classes to deal with watermarking operations for all the supported document formats. Some key reasons for these updates are listed below:\nWatermarker class is introduced as a single entry point to manage watermarks in the document (instead of Document class from previous versions). Adding watermarks has been unified for all supported document formats. The product architecture has been redesigned from scratch in order to simplify the usage of different options to manage the watermarks. Document information and preview generation procedures have been simplified. How to migrate? The legacy API has been moved into Legacy namespace so you\u0026rsquo;ll have to make a project-wide replacement of namespaces from GroupDocs.Watermark to GroupDocs.Watermark.Legacy to resolve build issues after upgrading to v19.10. Furthermore, below is a code comparison of how to use the basic features of the API using the old and the latest version.\nAdding Watermark The following code samples give you a comparison of how to add watermark to the document using old and new API.\nOld API New API Searching Watermarks The following code samples show you the comparison of finding watermarks using search criteria.\nOld API New API Removing Watermarks The following code samples demonstrate the comparison of removing all possible watermarks.\nOld API New API Getting Document Info The following code samples show how to get document information from the local file.\nOld API New API For more details, please have a look at the migration notes. Visit the release notes of v19.10 to see all the changes in the public API. You can download or clone the examples project from GitHub to evaluate each feature of the API. In case you would have any question or querie, you can raise it via our forum.\n","permalink":"https://blog.groupdocs.com/watermark/net-api-to-add-search-remove-watermarks-from-documents-in-c/","summary":"It\u0026rsquo;s been quite long since we released the last version of GroupDocs.Watermark for .NET API. The reason behind this gap was to introduce a more simplified and optimized watermark manipulation API for the .NET platform. Today, I am excited to announce that the API v2 of GroupDocs.Watermark for .NET has been released as v19.10 and it is available for download.\nWhat\u0026rsquo;s new in the latest release? The major updates have been done at the architecture level of the API to simplify its usage.","title":"Introducing a More Optimized and Simplified GroupDocs.Watermark for .NET API"},{"content":"Reason to use a Document Conversion API The world is becoming a global village and businesses running all over the world interacting and collaborating with hundreds of institutions across the globe, the data gathered from different sources come in a number of different formats. Even the data arranged within an organization could be compiled in different formats depending upon the person or department gathering and maintaining it. You may also find yourself in a situation where the older files being used within the company may no longer be compatible with the company\u0026rsquo;s needs due to certain changes in company policies and software being used by it.\nFor handling such scenarios and to fuel information governance and digital transformation initiatives, organizations must extract more valuable information and business insights from those documents which have either become incompatible or had already been in some format not supported by their systems. However, before an enterprise can leverage the information they already have, they must transform their unconsolidated content into a universal, readily accessible format and in doing so, they also need to make sure that the valuable data present in actual files may not get lost while making those conversions.\nGroupDocs.Conversion for .NET and Java GroupDocs.Conversion released both for .NET and Java makes this conversion of documents extremely easy and the automatic conversion saves the time and effort to rewrite the document in the desired format. It provides the fastest conversion between a variety of formats keeping the safety and quality of the documents in check. There are numerous features added to the API, the most common of which include the option of converting the single page of the document in the desired format or process the whole document and apply watermark at the same time on the complete converted documents.\nSkip Empty Rows and Columns Here today, we will discuss another important feature of the API which is extremely helpful while converting documents from the Spreadsheet format. By using this feature, you can optionally hide the empty rows and columns while converting the spreadsheet documents. Following are the simple steps for using this feature:\nSet “SkipEmptyRowsAndColumns” property against the API Load your desired spreadsheet document Convert the document into your desired format Following example demonstrates how this feature can be used when converting to PDF using GroupDocs.Conversion for .NET:\nJava developers can use the following code:\nA converted document will look like the following screenshot:\n","permalink":"https://blog.groupdocs.com/conversion/convert-spreadsheet-documents-using-groupdocs.conversion-for-.net-and-java/","summary":"Reason to use a Document Conversion API The world is becoming a global village and businesses running all over the world interacting and collaborating with hundreds of institutions across the globe, the data gathered from different sources come in a number of different formats. Even the data arranged within an organization could be compiled in different formats depending upon the person or department gathering and maintaining it. You may also find yourself in a situation where the older files being used within the company may no longer be compatible with the company\u0026rsquo;s needs due to certain changes in company policies and software being used by it.","title":"Convert Spreadsheets using GroupDocs.Conversion for .NET and Java"},{"content":"Are you looking for a full-text search API that allows you to search over a lot of document formats? In that case, GroupDocs.Search for .NET will meet your requirements. API creates index and then perform instant search across thousands of documents.\nThose who are already working with the API, we have some new features and improvements. Moreover, some classes have been renamed to improve code readability. There are minor changes in the new version 19.10, so the migration will not be too difficult. API architecture is optimized for better performance.\nAfter upgrading to v19.10, you need to replace the namespace usage across the entire project from GroupDocs.Search to GroupDocs.Search.Legacy to resolve build issues.\nLets go though the code changes:\nOld code sample:\nNew code snippet:\nYou can observe the minor changes (e.g. SearchParameters is changed to\nSearchOptions).\nImprovements\nHighlight search results in short fragments Enhance document metadata indexing with new formats New Features\nIndex each letter as a separate word Implemented ability to remove paths from index How to highlight search results in short fragments?\nThis improvement allows highlighting the search results in separate short fragments of the text, and not in the whole document. Below example shows how to generate short HTML snippets with highlighted found terms:\nHow to enhance document metadata indexing with new formats?\nThis improvement adds support for new document formats. These are mostly documents, the main content of which is not textual, therefore only the metadata of these documents is indexed:\nMP3 – MPEG-2 Audio Layer III; WAV – Waveform Audio File Format; BMP – Bitmap Picture; GIF – Graphical Interchange Format File; JP2 – JPEG 2000 Core Image File; For complete list visit this article.\nHow to index each letter as a separate word?\nThis feature is designed to work with hieroglyphic languages and allows you to index each character in the text as a separate word, regardless of the presence of separators.\nAbility to remove paths from index\nWhen indexed paths are removed from an index, the index is updated and all removed documents and folders become inaccessible for search.\nWe\u0026rsquo;d recommend you to download the latest version and share your experience. In case of any issues, you can post on forum.\n","permalink":"https://blog.groupdocs.com/search/index-each-letter-as-a-separate-word-using-groupdocs.search-for-.net/","summary":"Are you looking for a full-text search API that allows you to search over a lot of document formats? In that case, GroupDocs.Search for .NET will meet your requirements. API creates index and then perform instant search across thousands of documents.\nThose who are already working with the API, we have some new features and improvements. Moreover, some classes have been renamed to improve code readability. There are minor changes in the new version 19.","title":"Index each letter as a separate word using GroupDocs.Search for .NET"},{"content":"Document conversion is one of the most frequent processes that endures across a lot of industries. Sometimes, it is the business need to put a watermark on the resultant document after conversion. For example, you want to convert a Word document to PDF or PowerPoint PPT/PPTX to PDF with a watermark (text or image) in all the PDF pages.\nGroupDocs.Conversion for .NET and Java gives you such an option. It possesses a class WatermarkOptions with rich properties such as:\nText/Font Color Width Height Background Transparency Rotation angle Convert Word to PDF and Add Watermark - C# Example Let\u0026rsquo;s have a look at the C# implementation of how to convert a word DOCX document to PDF and add a watermark to the resultant PDF document.\nConvert PPTX to PDF and Add Watermark - Java Example Below is the Java code example shows how to convert a PowerPoint PPTX presentation to PDF and add a watermark to the resultant PDF document.\nBelow is the screenshot, you can see the conversion of a PPTX to PDF along with watermark text.\nDownload API from here. If there\u0026rsquo;s an issue, you can post on the forum. Documentation is always there for your help. ","permalink":"https://blog.groupdocs.com/conversion/add-watermark-to-document-while-conversion-in-csharp-or-java/","summary":"Document conversion is one of the most frequent processes that endures across a lot of industries. Sometimes, it is the business need to put a watermark on the resultant document after conversion. For example, you want to convert a Word document to PDF or PowerPoint PPT/PPTX to PDF with a watermark (text or image) in all the PDF pages.\nGroupDocs.Conversion for .NET and Java gives you such an option. It possesses a class WatermarkOptions with rich properties such as:","title":"Add Watermark to Documents while Conversion in C# or Java"},{"content":"\rWe are back with another monthly release of our eSign API - GroupDocs.Signature for .NET. This release includes three new features, three improvements, and a bug fix. So in this article, I\u0026rsquo;ll give you a walk-through of the latest release.\nSupport of Z-Order for Text Signatures Z-order determines the order for the overlapping, two-dimensional objects in an x-y plane. Put it simply, if X-axis represents the width and Y-axis represents the height then Z-order will represent the depth of the object. An object with a higher Z-order value will appear in front of all the other overlapping objects. This option has now been added to our eSignature API for the text signatures. For now, this property is supported for the following document formats:\nPDF documents Word processing documents Spreadsheets We have added the ZOrder property in the TextSignOptions class and this property is responsible for ordering the overlapping text signatures. Let\u0026rsquo;s understand the usage of this property with the help of a code sample.\nImprovements The following is the list of improvements we have made in v19.9.\nImproved the feature of saving signed .djvu files Improved saving word processing documents to various formats Implemented the transparent background for stamps Bug Fix In the previous versions, the Signature property of DigitalSignOptions class was not affecting the signing process. An exception was thrown if CertificateStream or CertificateFilePath is not set. This issue has now been resolved and its fix is available in v19.9.\nYou can download the latest release from our downloads section or install it in your project using NuGet. For more details, consult the product documentation. Let us know your suggestions or concerns via our forum.\n","permalink":"https://blog.groupdocs.com/signature/introducing-z-order-for-text-signatures-in-groupdocs.signature-for-.net-19.9/","summary":"We are back with another monthly release of our eSign API - GroupDocs.Signature for .NET. This release includes three new features, three improvements, and a bug fix. So in this article, I\u0026rsquo;ll give you a walk-through of the latest release.\nSupport of Z-Order for Text Signatures Z-order determines the order for the overlapping, two-dimensional objects in an x-y plane. Put it simply, if X-axis represents the width and Y-axis represents the height then Z-order will represent the depth of the object.","title":"Introducing Z-Order for Text Signatures in GroupDocs.Signature for .NET 19.9"},{"content":"Up till now, there was a simple document to image conversion process. With the GroupDocs.Conversion for Java release version 19.10, we\u0026rsquo;ve added a number of interesting features for image conversion.\nSet color mode when converting to JPEG Option to set compression mode Adjust image brightness and contrast Set gamma Option to flip image Have a look at its implementation of the above features in Java\nConversion from CDR CDR is a vector graphics file. API now allows you to convert from CDR.\nImprovements Along with new features, there are some improvements and bug fixes as well. Following are the major improvements:\nConversion from Excel95/5.0 XLS files Set image quality when converting to WebP Remove HideComments from SaveOptions Bug Fixes Previously, there was an issue (Exception: Cannot open an image) in conversion of Cells to Image. We\u0026rsquo;ve fixed it.\nAPI conflict with Ch.qos.logback is also resolved.\nMoreover, you can now generate scalable/Adjustable HTML. There is a property in HtmlSaveOptions known as FixedLayout. Try to set it to false. This will generate simplified markup and layout.\nWe\u0026rsquo;d recommend you to download and integrate API version 19.10 and enhance your document conversion experience. If you face any issue, post it on the forum.\n","permalink":"https://blog.groupdocs.com/conversion/adjust-contrast-when-converting-a-document-to-image/","summary":"Up till now, there was a simple document to image conversion process. With the GroupDocs.Conversion for Java release version 19.10, we\u0026rsquo;ve added a number of interesting features for image conversion.\nSet color mode when converting to JPEG Option to set compression mode Adjust image brightness and contrast Set gamma Option to flip image Have a look at its implementation of the above features in Java\nConversion from CDR CDR is a vector graphics file.","title":"Adjust Contrast when Converting a Document to Image"},{"content":"GroupDocs.Merger for .NET allows you to merge or manipulate document structure across a wide range of file formats. Those who are new to this API, you can join several documents into one, split single document to multiple documents, reorder or replace document pages, change page orientation and manage document password.\nVersion 19.9 is a major release. We totally restructured the API and below are the reasons to migrate:\nMerger class introduced as a single entry point to manage the document processing of any supported file format API is improved to decrease memory usage Easy to instantiate proper options class and control over document structure manipulation processes Those who are already using the API, let us share the code difference. We will see how to join documents using old and new API.\nThat\u0026rsquo;s how we were joining documents in older version:\nBelow is the new way:\nThe legacy API have been moved into Legacy namespace so after update to this version it is required to make project-wide replacement of namespace usages from GroupDocs.Merger to GroupDocs.Merger.Legacy to resolve build issues.\nOne new file format .mht is also supported in this version.\nDownload or clone our updated GitHub example project. Go through the developer guide and if you face any issue, you can post on forum.\n","permalink":"https://blog.groupdocs.com/merger/introducing-more-simplified-and-improved-groupdocs.merger-for-.net/","summary":"GroupDocs.Merger for .NET allows you to merge or manipulate document structure across a wide range of file formats. Those who are new to this API, you can join several documents into one, split single document to multiple documents, reorder or replace document pages, change page orientation and manage document password.\nVersion 19.9 is a major release. We totally restructured the API and below are the reasons to migrate:\nMerger class introduced as a single entry point to manage the document processing of any supported file format API is improved to decrease memory usage Easy to instantiate proper options class and control over document structure manipulation processes Those who are already using the API, let us share the code difference.","title":"Introducing more simplified and improved GroupDocs.Merger for .NET"},{"content":"The all-new API v2 of GroupDocs.Parser for .NET has been released! It would be a piece of breaking news for those who are already using our document parsing API as well as who are looking for an easy to use solution for extracting text, images, and metadata from PDF, word processing documents, spreadsheets, presentations, emails, EPUB \u0026amp; ZIP file formats.\nWhat\u0026rsquo;s new in the API v2? We have done some major updates at the architecture level of the API to perform product optimization. This also includes the renaming of classes and methods as well as simplifying the whole process of document parsing. The following are some key updates we have done in the latest release:\nThe Parserclass is introduced as a single entry point to extract data from the documents.\nThe data extraction process has been unified for all the data types i.e. text, metadata, etc.\nThe product architecture has been redesigned from scratch in order to simplify passing options and classes to manipulate the data.\nDocument information and preview generation procedures have been simplified.\nThe overall document related classes have been unified into common classes.\nWhat is the difference in coding style? Because of the changes in the architecture of the API, the coding style has also been modified and simplified. Have a look at the difference in terms of coding style between the old and the new version of the API.\nOld coding style\nNew coding style\nIn case you are already using GroupDocs.Parser for .NET in your application and want to migrate to the latest release, have a look at the migration notes. Consult the release notes for a complete list of public API changes.\nGet started with the API v2 by cloning or downloading the source code examples from GitHub. Visit the documentation of the API for more details about every feature of the API. In case you would find something difficult for you, do let us know on our forum.\n","permalink":"https://blog.groupdocs.com/parser/introducing-api-v2-of-groupdocs.parser-for-.net/","summary":"The all-new API v2 of GroupDocs.Parser for .NET has been released! It would be a piece of breaking news for those who are already using our document parsing API as well as who are looking for an easy to use solution for extracting text, images, and metadata from PDF, word processing documents, spreadsheets, presentations, emails, EPUB \u0026amp; ZIP file formats.\nWhat\u0026rsquo;s new in the API v2? We have done some major updates at the architecture level of the API to perform product optimization.","title":"Introducing API v2 of GroupDocs.Parser for .NET"},{"content":"An ‘attachment’ is a file such as a document or a photo that is attached to an email. It’s easy to attach pictures, files, contacts, emails and many other items to your Outlook messages. If you selected a file on your local computer or group document library for the attachment purpose, a copy of the file is attached to the email.\nThe case: A software developer is making a document viewing application. Although, his application is capable to render the MS Outlook Emails, but he also wants to add a feature to render the email attachments.\nThe GroupDocs.Viewer for .NET API for Processing Attachments The GroupDocs.Viewer for .NET API provides the functionality to process attachments from document types that support them, e.g. Email documents, Outlook data files, Archives and PDF documents.\nYou\u0026rsquo;ll see in the below sections that how we can process the Microsoft Outlook Email attachments in various ways.\nRender document attachments To achieve this by using GroupDocs.Viewer for .NET you should:\nInstantiate _Viewer _object for the initial document that contains attachment; Call _SaveAttachment _method and save attachment somewhere (for example, to local disk or memory stream); Instantiate another one V_iewer _object and path saved attachment to it; Specify view options dependent on desired output format - HtmlViewOptions / PngViewOptions / JpgViewOptions / PdfViewOptions; Call View method and render an attachment. Following example demonstrates how to render document attachments.\nRetrieve and print document attachments GroupDocs.Viewer enables you to retrieve and print document attachments. The steps to get the list of all attachments are given below:\nInstantiate _Viewer _object for the initial document that contains attachment; Call Get_Attachments _method and obtain collection of document attachments ; Iterate through attachments collection and print attachment names. Following example demonstrates the implementation of the above steps.\nSave document attachments GroupDocs.Viewer enables you save document attachments to stream. Here are the steps for saving attachments:\nInstantiate _Viewer _object for the initial document that contains attachment; Call Get_Attachments _method and obtain collection of document attachments ; Iterate through attachments collection and save attachment calling Save_Attachment _method. Following example demonstrates how to retrieve and save attachments.\nThe API offers many other handful features for your viewing applications. For more details, please feel free to visit documentation. To explore more examples you can access our open source examples and in case you would have any query, please feel to contact us using our forum.\n","permalink":"https://blog.groupdocs.com/viewer/process-microsoft-outlook-email-attachments-in-a-.net-viewer-application/","summary":"An ‘attachment’ is a file such as a document or a photo that is attached to an email. It’s easy to attach pictures, files, contacts, emails and many other items to your Outlook messages. If you selected a file on your local computer or group document library for the attachment purpose, a copy of the file is attached to the email.\nThe case: A software developer is making a document viewing application.","title":"Process the Microsoft Outlook Email Attachments in a .NET Viewer Application"},{"content":"We are continuing the journey of revamping our products to bring a more simplified and easy to use interfaces for you. We have done it for many of our document manipulation APIs and recently, we have released all-new GroupDocs.Redaction for .NET API for you as v19.9. With this release, we have made it even easier for you to programmatically remove or mask classified information from text, metadata, and the annotations in MS Word, Excel, PowerPoint, and PDF documents as well as images.\nWhy upgrade to the new API? First of all, let\u0026rsquo;s have a look at why the new API is different from the previous one. The following are the key points about the changes we have introduced in the latest release.\nThe architecture of the API has been revamped to perform major product optimization. The classes and methods have been renamed to make it even simpler to understand and use. The Document class has been replaced with the Redactor class as a single entry point to manage the redaction process for all the supported document formats. The methods _RedactWith() _of the _Document _class have been replaced with similar _Apply() _methods in _Redactor _class. The method Document.Save(Stream, SaveOptions) has been replaced with Redactor.Save(Stream, RasterizationOptions). Renamed RedactionSummary to RedactorChangeLog, RedactionLogEntry to RedactorLogEntry, and _MetadataFilter _to MetadataFilters. The classes for options and exceptions have been put into separate namespaces. Obsolete members have been removed from public API. Added a number of new exception classes and base exception class for GroupDocs.Redaction exceptions. How to migrate? The migration to an API version with major updates is always hard since it requires considerable efforts to update the code. However, these efforts are valuable when you get something more improved and efficient in the return. So if you are already using GroupDocs.Redaction for .NET and want to migrate to the new API, let me give you a code comparison between the new and the older versions. This way, you will get an idea of how things would be changed after migration.\nOld coding style\nNew coding style (since v19.9)\nFor a complete list of all public API changes, please have a look at the release notes.\nAlright! Are you interested in trying out the new API? If yes, download or clone the complete source code examples from the GitHub repository. You can consult the documentation to get details about all the features of the API. In case you find any issue or something confusing, do let us know via our forum.\n","permalink":"https://blog.groupdocs.com/redaction/hide-or-remove-classified-content-from-documents-using-net-api/","summary":"We are continuing the journey of revamping our products to bring a more simplified and easy to use interfaces for you. We have done it for many of our document manipulation APIs and recently, we have released all-new GroupDocs.Redaction for .NET API for you as v19.9. With this release, we have made it even easier for you to programmatically remove or mask classified information from text, metadata, and the annotations in MS Word, Excel, PowerPoint, and PDF documents as well as images.","title":"Redact Classified Content from Documents using All-New GroupDocs.Redaction for .NET"},{"content":"Digital Signatures in documents look similar to the paper-based signatures, however, being certificate-based electronic signatures they contain the identity of the signer in encrypted form. The certificates are issued by trusted and authorized Certificate Authorities. These authorities identify the person the certificates are issued to. This is why the digitally signed documents can be verified at any time. In this article, I\u0026rsquo;ll show you how to programmatically verify the digital signature in PDF, Word, and Excel, documents by using GroupDocs.Signature for .NET API with C#.\nSteps to verify digitally signed PDF document For demonstration, I am using a PDF document for digital signature verification. However, the same code will work for MS Word and Excel document formats.\n1. Download GroupDocs.Signature for .NET or install it using NuGet.\n2. Add the following namespaces in your code.\n3. Load digitally signed PDF document using an instance of Signature class.\n4. Instantiate the DigitalVerifyOptions object and specify verification options.\n5. Call Verify method of _Signature _class\u0026rsquo; instance and pass _DigitalVerifyOptions _to it. 6. Check verification results from VerificationResult object.\nComplete code\nThus, you can determine whether the digital signature in the PDF document meets the specified criteria or not. Finally, you can mark the document as valid or invalid. Read more about GroupDocs.Signature for .NET API here.\n","permalink":"https://blog.groupdocs.com/signature/verify-digital-signature-in-documents-using-csharp/","summary":"Digital Signatures in documents look similar to the paper-based signatures, however, being certificate-based electronic signatures they contain the identity of the signer in encrypted form. The certificates are issued by trusted and authorized Certificate Authorities. These authorities identify the person the certificates are issued to. This is why the digitally signed documents can be verified at any time. In this article, I\u0026rsquo;ll show you how to programmatically verify the digital signature in PDF, Word, and Excel, documents by using GroupDocs.","title":"Verify Digital Signature in Documents using C#"},{"content":"We are introducing a new public API that is designed to be implemented easily. Those who are using previous version of the API (below 19.9), you don\u0026rsquo;t have to worry. The legacy API has been moved into legacy namespace. If you want to upgrade to v19.9, it is required to make project-wide replacement of namespace usages from GroupDocs.Conversion to GroupDocs.Conversion.Legacy in order to avoid any build issues.\nWhy to use new version?\nConverter class introduced as a single entry point to manage the document conversion process to any supported file format (instead of ConversionHander class from previous versions) The overall conversion speed improved dramatically by saving each page as soon as it was converted, not when all pages list were converted API architecture was redesigned to decrease memory usage (depending on document type) Document convert options are simplified for easy control over document conversion and saving processes Changes at code level\nConversion using older version:\nConversion using new version:\nBug Fixes\nIssue \u0026ldquo;Specified argument was out of range of valid values\u0026rdquo; is fixed while converting a Spreadsheet document to PDF.\nGet Started\nPlease download or clone our updated example project and explore developer guide.\n","permalink":"https://blog.groupdocs.com/conversion/introducing-simple-and-easy-to-use-.net-document-conversion-api/","summary":"We are introducing a new public API that is designed to be implemented easily. Those who are using previous version of the API (below 19.9), you don\u0026rsquo;t have to worry. The legacy API has been moved into legacy namespace. If you want to upgrade to v19.9, it is required to make project-wide replacement of namespace usages from GroupDocs.Conversion to GroupDocs.Conversion.Legacy in order to avoid any build issues.\nWhy to use new version?","title":"Introducing Simple and Easy to Use .NET Document Conversion API"},{"content":"A major advantage of GroupDocs.Comparison for .NET is its ability to tightly integrate with any .NET project. This integration gives an extra mark to your application or project. GroupDocs.Comparison for .NET 19.9 comes with a lot of breaking changes. The legacy API have been moved into Legacy namespace**.** So, when you update to this version it is required to make project-wide replacement of namespace usages from GroupDocs.Comparison. to GroupDocs.Comparison.Legacy to resolve build issues.\nBelow are the key reasons to use the new updated API since version 19.9:\nComparer class introduced as a single entry point to compare documents of any supported file format with various options and ability to accept/reject found differences in resultant document Overall document related classes are unified to common API architecture is redesigned from scratch in order to simplify passing options and classes to manipulate comparison Document information and preview generation procedures are simplified How to migrate?\nLets see briefly that how much things have been changed. Below is the code snippet that we used to write for documents comparison in older versions:\nAnd given below is the most recent/updated code:\nIs there any updated support material?\nYes, we have updated GitHub examples and documentation as well. Please download or clone latest example project and observe the difference yourself.\nIf you would face any issue while using or upgrading to the latest release, just post it on our forum and we will assist you.\n","permalink":"https://blog.groupdocs.com/comparison/a-more-simplified-and-easy-to-use-document-comparison-api/","summary":"A major advantage of GroupDocs.Comparison for .NET is its ability to tightly integrate with any .NET project. This integration gives an extra mark to your application or project. GroupDocs.Comparison for .NET 19.9 comes with a lot of breaking changes. The legacy API have been moved into Legacy namespace**.** So, when you update to this version it is required to make project-wide replacement of namespace usages from GroupDocs.Comparison. to GroupDocs.Comparison.Legacy to resolve build issues.","title":"A simplified and easy to use document comparison API"},{"content":"\rHello everyone! We have recently released version 19.9 of GroupDocs.Viewer for .NET with the support of new file formats as well as a number of bug fixes. So in this post, I am going to write about what is new in this release particularly for those who are interested in viewing Microsoft Project files (.mpp) using .NET API.\nMicrosoft Project is a famous project management software that is proved to be helpful for the managers as well as the other stakeholders in making, organizing, tracking and analyzing their project plans. The MS Project uses the MPP file format to store the data or information related to project management. Since MPP is the proprietary file format of Microsoft, you need to have MS Project installed to view .mpp files. However, if you want to view .mpp files in your web or desktop application without installing MS Project or if you are interested in creating your online MPP viewer then you can easily do it using our .NET document viewer API.\nGroupDocs.Viewer for .NET supports viewing MPP format and the big news is that we have now extended this support for .mpp files created in MS Project 2019. So now you can view .mpp files without worrying about their versions. Also, there is no pubic API change for this, so you don\u0026rsquo;t need to change anything in the code if you have already embedded this feature in your application. If you are new and want to get more details on it along with the code samples, please visit Rendering MS Project Documents.\nIn addition, we have also added the support of viewing following file formats in v19.9:\nOpenXPS (.oxps) OpenDocument Flat XML Spreadsheet (.fods) Not only this, but you can also avail the following bug fixes after upgrading to the latest release.\nIncorrect links to resources when rendering into HTML Failed to render password-protected ODP/OTP presentations Styles are embedded when rendering XLSX into HTML with external resources Incorrect page count for EPUB document Page order ignored when rendering MS Project document into PDF JpegQuality option of PdfFileOptions not works when rendering ODP presentation HTML representation of PPTX document takes too much time Misplaced characters when rendering Word document into HTML or image So if you are interested in getting the above-mentioned features and fixes, just download and integrate GroupDocs.Viewer for .NET 19.9 in your application. If you haven\u0026rsquo;t used the API before, have a look at the documentation of the API. In order to evaluate API features, download or clone the examples project from GitHub repository.\nAs always, do write to us on our forum in case you would have any questions or queries.\n","permalink":"https://blog.groupdocs.com/viewer/view-mpp-files-of-ms-project-2019-using-net-api/","summary":"Hello everyone! We have recently released version 19.9 of GroupDocs.Viewer for .NET with the support of new file formats as well as a number of bug fixes. So in this post, I am going to write about what is new in this release particularly for those who are interested in viewing Microsoft Project files (.mpp) using .NET API.\nMicrosoft Project is a famous project management software that is proved to be helpful for the managers as well as the other stakeholders in making, organizing, tracking and analyzing their project plans.","title":"View MPP Files Created in MS Project 2019 using GroupDocs.Viewer for .NET 19.9"},{"content":"We have added a lot of new options and features in this major release/update of GroupDocs.Editor for .NET 19.9. All public methods/classes have been moved to Legacy namespace and they are marked as obsolete. Now, when you update to this latest version, it is required to make project-wide replacement of namespace usages from GroupDocs.Editor. to GroupDocs.Editor.Legacy to resolve build issues. Access release notes here.\nWhy to migrate?\nEditor class introduced as a single entry point to manage the document editing process to any supported file format (instead of EditorHander class from previous versions) Architecture is redesigned to decrease memory usage Simplified document editing and saving options See difference in code\nThis was supported in old API\nWe have simplified and optimized code to this much in the new version\nWhat\u0026rsquo;s new?\nWe have added a new GetDocumentInfo method using this method you can get a document\u0026rsquo;s metadata information without editing it.\nWhat information exactly?\nFamily format and exact document format Encryption flag Number or pages/tabs Size How it works?\nThe new Editor class, which supersedes deprecated EditorHandler, contains this method. Once the document is loaded into the Editor class, this method can be called to obtain meta information about the loaded document without opening it for the editing purpose.\nText Save Options\nPreviously, there was no direct option to save edited document in a plain text format. We used WordProcessing save options for this purpose but that didn\u0026rsquo;t allow to configure parameters while saving into text format.\nGroupDocs.Editor for .NET version 19.9 contains a new TextSaveOptions class that is actually implemented to save edited document to the plain text.\nTextSaveOptions contains following settings:\nAbility to specify whether to add bi-directional marks before each BiDi run when exporting in plain text format Ability to specify whether the program should attempt to preserve layout of tables when saving in the plain text format Implementation\nThe Options namespace contains TextSaveOptions class.\nAs there are a lot of public API changes. Before getting started, we\u0026rsquo;d recommend you to go through API references and example project.\n","permalink":"https://blog.groupdocs.com/editor/get-document-metadata-without-editing-in-c/","summary":"We have added a lot of new options and features in this major release/update of GroupDocs.Editor for .NET 19.9. All public methods/classes have been moved to Legacy namespace and they are marked as obsolete. Now, when you update to this latest version, it is required to make project-wide replacement of namespace usages from GroupDocs.Editor. to GroupDocs.Editor.Legacy to resolve build issues. Access release notes here.\nWhy to migrate?\nEditor class introduced as a single entry point to manage the document editing process to any supported file format (instead of EditorHander class from previous versions) Architecture is redesigned to decrease memory usage Simplified document editing and saving options See difference in code","title":"Get Document Metadata without Editing in C#"},{"content":"Watermarking is a popular technique to indicate that the content or data inside a document is copyrighted. On the other hand, it is also used to place the company\u0026rsquo;s logo or some kind of label in the documents before they are shared within or outside the company. However, it is quite hard to apply the watermark to a bunch of documents one by one. It becomes harder if you have documents of various formats such as PDF, DOCX, PPTX, XLSX, EML, JPG, PNG, etc. So in order to make this process easier, we need some automation.\nIn this article, I will show you how you can apply a watermark to a batch of documents and images in one go using GroupDocs.Watermark API. So you don\u0026rsquo;t need to add watermark to each document manually. Also, you don\u0026rsquo;t need to worry about if you have or not the software or application that supports adding watermark to the document of a particular format.\nBefore we proceed, let me tell you the reasons why GroupDocs.Watermark is a suitable API for watermarking. This is because it supports:\na wide range of file formats, adding text/image watermark, adding watermark to images inside a document, adding watermark to all or selected pages of the document, customizing the size, position, and appearance of the watermark, and much more. How to Add Watermark to Images and Documents? Now, let\u0026rsquo;s have a look at how to add watermark to the documents as well as images of various formats at once. For this, we\u0026rsquo;ll follow the below steps:\nPlace the documents in a folder. Load each document from the folder using GroupDocs.Watermark. Create and initialize the watermark. Set watermark properties such as position, size, opacity, font, etc. Add watermark to the document. Save the document to the destination folder. This is how we would transform these steps into the code.\nC# Example - Add Watermark to Multiple Documents Example adds the watermark to all the documents present in the provided folder.\nJava Example - Add Watermark to Multiple Documents And that\u0026rsquo;s it! The following is the screenshot of a PDF document that we have before and after applying the watermark using the above-mentioned code.\nDownload the complete ready-to-run source code from GitHub. Contact us on our forum for any questions or queries.\nCheers!\n","permalink":"https://blog.groupdocs.com/watermark/add-watermark-to-a-batch-of-documents-and-images-in-.net-and-java/","summary":"Watermarking is a popular technique to indicate that the content or data inside a document is copyrighted. On the other hand, it is also used to place the company\u0026rsquo;s logo or some kind of label in the documents before they are shared within or outside the company. However, it is quite hard to apply the watermark to a bunch of documents one by one. It becomes harder if you have documents of various formats such as PDF, DOCX, PPTX, XLSX, EML, JPG, PNG, etc.","title":"Add Watermark to a Batch of Documents and Images in .NET and Java"},{"content":"Markdown is a well known and one of the popular markup languages these days. The appearance of the text in Markdown is controlled using the syntax instead of using rich text editors or applications such as MS Word. The best thing is, it is a lightweight language and can be written in the plain text editors such as Notepad. As far as its usage is concerned, Markdown is popular in writing wikis, readme files, and others. This is the reason why we added the support of Markdown (.md) files in our document automation API - GroupDocs.Assembly.\nThe following is a glimpse of the Markdown syntax:\nAnd this is how the text will be formatted:\nAlthough the syntax of Markdown is simple, still you could find it difficult to remember when writing the templates for longer reports. So how could you make this process easier for you? Let me tell you one possible workaround for this.\nCreate a Word template with required text formatting Populate the template with data Save the generated report as Markdown (.md) file Now, let\u0026rsquo;s come to point on how you can automate the above-mentioned steps. The solution is simple and uses a few lines of code but only if you are using GroupDocs.Assembly. Yes, you can now use the Word template to generate the report and then save the generated report as a Markdown file. So let me show you how this could be done.\nJust assume that you need to dynamically generate a report in Markdown format (.md). For this, instead of creating the Markdown template, you can create the Word template and format the text as you need. Once the template is ready, just populate the data and save the generated report as a Markdown file. For the demonstration, I have created ReadMe.docx template for you that will be used in the following code samples.\nC#\nJava\nThe resultant Markdown file that you will get from these code samples is ReadMe_Out.md.\nYou can see how easy it is to save the assembled report as a Markdown file by just changing the extension of the output file from \u0026ldquo;.docx\u0026rdquo; to \u0026quot;.md\u0026quot;. In addition to this feature, we have also added support for:\nSaving assembled Markdown document as Word Processing formats Saving assembled email as a Markdown document At the moment, the following Markdown features are supported:\nHeadings Blockquotes Horizontal rules Bold emphasis Italic emphasis But no need to worry because we shall keep extending the supported features in the upcoming releases of GroupDocs.Assembly.\nIn case you want to use these features in your application, just download the latest release (v19.8) of GroupDocs.Assembly for .NET or Java. For the ready-to-run source code examples, download or clone the examples project from GitHub repository.\nAs always, we welcome you on our forum in case you would have any suggestions or queries.\n","permalink":"https://blog.groupdocs.com/assembly/save-assembled-word-processing-document-as-a-markdown-file/","summary":"Markdown is a well known and one of the popular markup languages these days. The appearance of the text in Markdown is controlled using the syntax instead of using rich text editors or applications such as MS Word. The best thing is, it is a lightweight language and can be written in the plain text editors such as Notepad. As far as its usage is concerned, Markdown is popular in writing wikis, readme files, and others.","title":"Save Assembled Word Processing Document as a Markdown File"},{"content":"Before going in-depth to Metadata management, let\u0026rsquo;s discuss what the metadata is? The Metadata summarizes basic information about data. In other words, it\u0026rsquo;s an information which describes the data that contained in something like a web page, document, or file. Another way to think of metadata is as a short explanation or summary of what the data is.\nA simple example of metadata for a document might include a collection of information like the author, file size, date the document was created, and keywords to describe the document. Metadata for a music file might include the artist\u0026rsquo;s name, the album, and the year it was released.\nTypes of Metadata Metadata comes in several types and is used for a variety of broad purposes that can be roughly categorized as a business, technical, or operational.\nDescriptive: Metadata properties include title, subject, genre, author, and creation date, for example. Rights: Metadata might include copyright status, rights holder, or license terms. Technical: Metadata properties include file types, size, creation date and time, and type of compression. Technical metadata is often used for digital object management and interoperability. Preservation: Metadata is used in navigation. Example preservation metadata properties include an item\u0026rsquo;s place in a hierarchy or sequence. Markup languages: Include metadata used for navigation and interoperability. Properties might include heading, name, date, list, and paragraph. Metadata in files helps to find and working with various types of files. Writing meaningful metadata saves a lot of time in future work. Having the ability to filter through that metadata makes it much easier for someone to locate a specific document.\nMetadata API as a Metadata Management Tool {#IntroductiontoGroupDocs.MetadataforJava-WhatisGroupDocs.Metadata?} Keeping above in mind, The GroupDocs.Metadata API is developed to make life easier while working with metadata. It is a very powerful and easy to use API that provides all basic metadata operations i.e (view, add, modify, remove) for a number of file formats. API gets the file as an input and makes its metadata accessible to the user. Now, it\u0026rsquo;s up to the user to perform any of his operations on this metadata.\nLet\u0026rsquo;s discuss a business case regarding metadata management by using GroupDocs.Metadata API.\nFinding Photos Made on Specific Camera Digital Images may contain some useful information in the form of metadata. As soon as we capture a digital photograph, the camera generates a wide range of information about the image i-e camera\u0026rsquo;s information, author\u0026rsquo;s information, GPS information, and much more.\nWe can manually access the image details/metadata by going to images\u0026rsquo; properties to find:\nImages that were taken on a specific camera Images with a specific subject Images of a specific artist/author Images that were taken at a specific place/location But what if we are dealing with a huge number of images just, like, for example, Flicker does? It\u0026rsquo;s the mother of thousands of directories containing millions of images. Even a superhuman will require a considerable amount of time and effort to find the images matching some certain metadata property (as mentioned above). It is a serious problem, but only when we do not have GroupDocs.Metadata API.\nBelow is an easy example of API usage in the implementation of this use case.\nPhoto Parser in C# Let\u0026rsquo;s write a PhotoParser class in C#:\nPhoto Parser in Java Java guys will write as follows:\nSuppose, an image collection may contain JPEG images captured by a Sony Camera. Its metadata looks like following screenshot:\nIt\u0026rsquo;s time to call the PhotoParser methods to get the list of images which were captured by a Sony camera:\nJava guys will call the methods like:\nThe output will be appeared like the following screenshot:\nThe complete ready to run code sample is available on GitHub.\n","permalink":"https://blog.groupdocs.com/metadata/best-practices-in-metadata-management/","summary":"Before going in-depth to Metadata management, let\u0026rsquo;s discuss what the metadata is? The Metadata summarizes basic information about data. In other words, it\u0026rsquo;s an information which describes the data that contained in something like a web page, document, or file. Another way to think of metadata is as a short explanation or summary of what the data is.\nA simple example of metadata for a document might include a collection of information like the author, file size, date the document was created, and keywords to describe the document.","title":"Best Practices in Metadata Management"},{"content":"You might be looking for a software component or API using that an excel sheet could be converted to PDF/Word or any other supported format partially.\nWhat is the difference?\nMany of us are just concerned with the output. Process an excel spreadsheet and get the right PDF/output. A simple conversion (Complete spreadsheet to PDF) is ideal until the source file has limited number of rows.\nPartial Conversion - Usability If you have a spreadsheet with more than 10,000 rows and your data or concerned rows are somewhere between 5,000 to 8,000. Wouldn\u0026rsquo;t you prefer to get PDF of rows 5,000 to 8,000 only?\nThis is useful because:\nFast and to the point conversion Less resources consumption Easy to define conversion range Let\u0026rsquo;s have a look at the implementation:\nC#\nJava\n\u0026ldquo;G7:I10\u0026rdquo; is the cells range (convert from row G7 to I10). Below are the screenshots of source and output files.\nAPI allows you to set sheet/page number to convert using PageNumber property. For example you have an Excel file with 10 sheets. You can easily convert from G7 to I10 on page 6.\nDownload GroupDocs.Conversion API and try out this feature. Below are some helpful resources:\nDownload API for Java or .NET Documentation (Java, .NET) Sample Code ","permalink":"https://blog.groupdocs.com/conversion/convert-selected-or-partial-spreadsheet-rows/","summary":"You might be looking for a software component or API using that an excel sheet could be converted to PDF/Word or any other supported format partially.\nWhat is the difference?\nMany of us are just concerned with the output. Process an excel spreadsheet and get the right PDF/output. A simple conversion (Complete spreadsheet to PDF) is ideal until the source file has limited number of rows.\nPartial Conversion - Usability If you have a spreadsheet with more than 10,000 rows and your data or concerned rows are somewhere between 5,000 to 8,000.","title":"Convert Selected or Partial Spreadsheet Rows"},{"content":"Why change is considered as a hard but yet good thing to occur? Why the updates are important? This is because if there is no change there is no progress and staying the same over the time makes the things die. The updates in the software components are also similar when a new version of the same software replaces the old one. A software that remains the same and doesn\u0026rsquo;t introduce any improvements or new features becomes obsolete. This is the reason the updates are always welcomed. And today, I am going to tell you about some major updates we have provided for our electronic signature API - GroupDocs.Signature for .NET.\nAfter a having gap of approx. two months, we have now released an improved and more simplified version of API - v19.8. The primary objective behind this release was to make the usage of API\u0026rsquo;s features simpler and introduce a unified approach to handle all the supported document formats. The revamping of the architecture and the major optimizations have made the API more efficient in terms of resource consumption, especially memory utilization.\nLet\u0026rsquo;s dig it further and check out what are the key reasons to upgrade to the latest release.\nIn the previous versions of the API, we had a separate class to deal with each supported document format. Since it was difficult to work with multiple classes, we have now introduced a unified approach. The signature options, verification options, and search options are now related to signature types only and not the document formats. For example, PdfSignTextOptions and WordsSignTextOptions were used to specify different options for text signatures in PDF and Word Processing document respectively. Now, a single class, TextSignOptions will be used for both the document formats.\nThe single Signature class is introduced to sing the document with various signature types and perform verification and search operations for all the supported document formats.\nThe overall document related classes which were used to deal with different document formats have been unified to common classes.\nThe API\u0026rsquo;s architecture is redesigned from scratch in order to simplify the usage of options and classes to manipulate all the signature types.\nThe procedures of getting the document\u0026rsquo;s information and generating the previews for the documents are also simplified.\nLet me now show you how these updates have affected and optimized the code. The following is the code sample that signs the PDF document with a text signature using the previous version of the API.\nNow, have a look at how you would perform the same operation after upgrading to the latest release.\nSee, the code is more simplified as well as optimized in the new API. Not only this, but it also consumes fewer resources as compared to the previous versions.\nSo if you are already using GroupDocs.Signature for .NET then it is the right time to upgrade to the latest release. In case you are afraid of the breaking changes that you may face after upgrading to a version with major changes, we have made the things much easier for you. In the latest version, the legacy API has been moved into the Legacy namespace. Therefore, after you upgrade to version 19.8, it is required to make project-wide replacement of namespaces only. This means that the namespaces will be changed from GroupDocs.Signature. to GroupDocs.Signature.Legacy. to resolve build issues. And that’s it!\nJust have a look at our documentation to check out how easy we have made the document signing process. Download or clone the new source code samples from the GitHub repository to know about the working of the API.\nIf you would face any issue while using or upgrading to the latest release, just post it on our forum and we would love to assist you.\n","permalink":"https://blog.groupdocs.com/signature/introducing-a-more-optimized-and-simplified-electronic-signature-api/","summary":"Why change is considered as a hard but yet good thing to occur? Why the updates are important? This is because if there is no change there is no progress and staying the same over the time makes the things die. The updates in the software components are also similar when a new version of the same software replaces the old one. A software that remains the same and doesn\u0026rsquo;t introduce any improvements or new features becomes obsolete.","title":"Introducing a More Optimized and Simplified Electronic Signature API"},{"content":"\rHello everyone! Today, I am quite excited to announce that GroupDocs.Viewer for Java 19.8 has been released with 20+ new features, improvements, and bug fixes. Although every new feature in this version has its own importance, I have picked a few interesting but useful features for you. So in this post, I am going to give you an overview of how to work with the folders contained by Outlook Data Files (OST/PST) and use the message filters to render selective Outlook messages.\nIn the previous versions of the API, we already have the feature of rendering all the messages from the Outlook Data Files. But there could be the case when you need to render the messages from a specified folder. Also, what if you want to render the only messages you have received from a particular email address? These are the questions that I\u0026rsquo;ll answer today.\nFirst of all, let me give you a brief overview of the Outlook Data Files and the message folders.\nThe Outlook uses OST and PST files to store the local copy of all the information when you set up your email account. Have a look at how Microsoft defines both of these data files:\nOutlook Data File (.pst) - An Outlook Data File (.pst) contains your messages and other Outlook items and is saved on your computer.\nOffline Outlook Data File (.ost) - Most other account types, such as IMAP accounts, Office 365 accounts, Exchange accounts, and Outlook.com accounts use an Offline Outlook Data File (.ost) file to store a synchronized copy of your mailbox information on your local computer.\n(read more)\nMicrosoft\nNow let\u0026rsquo;s come to the Outlook folders. MS Outlook manages your messages in different folders such as Inbox for incoming messages, Sent items for the messages you send and so on. Along with the default message folders, you can also create new folders to organize the messages in the way you want. For example, you can create a separate folder to keep the messages from a particular organization or a person. Have a look at the following image which shows different folders in the Outlook:\nNow you would have got the idea of Outlook Data Files and the folder they contain. Let\u0026rsquo;s move on to the features that we have introduced to deal with the Outlook folders and the messages.\nRetrieving the list of Outlook folders Before rendering the messages from a specific folder, you must know the names of all the folders the data file contains. Once you have got the list, you can select a folder and render the messages from it. For this, the API provides OutlookDocumentInfoContainer.getFolders() method which returns a list of the folder names. This is how you can do it using the code:\nThere might be the case when you want to get the list of subfolders from a specific folder e.g. Inbox. In that case, you just need to specify the folder\u0026rsquo;s name using DocumentInfoOptions.getOutlookOptions().setFolderName() and the rest of the code will remain the same.\nRendering messages from a specified folder Now when you have got the list of the folders, you can render the messages from a particular folder. This is again as easy as pie. Just mention the folder\u0026rsquo;s name in the HtmlOptions or ImageOptions and call getPages() method. Have a look at the complete code:\nIn case you want to render the folder\u0026rsquo;s content as a PDF document, you will specify the folder\u0026rsquo;s name in PdfFileOptions and call the getPdfFile() method (as shown below).\nThis is what you would get in the rendering result:\nFiltering messages to be rendered Another important feature we have introduced is filtering the messages that you want to render. With this feature, you can select the messages by applying the following filters:\nText filter - To filter messages by subject and content of the message. Address Filter - To filter messages by sender\u0026rsquo;s and recipient\u0026rsquo;s email addresses. You can set these filters using setTextFilter() and setAddressFilter() methods of HtmlOptions, ImageOptions, and PdfFileOptions classes. Suppose, you want to render all the messages that contain the word \u0026lsquo;Susan\u0026rsquo; in the subject or the body. In that case, you will set the text filter to \u0026lsquo;Susan\u0026rsquo; in the following way:\nSimilarly, you can apply the address filter to get the messages based on the sender\u0026rsquo;s or the recipient\u0026rsquo;s email address.\nWell, you have seen how easy it is to view the folders as well as the messages from the Outlook Data Files using GroupDocs.Viewer for Java 19.8. This is it from my side. For a full list of new features, improvements, and fixes, please have a look at the release notes. Try out the API features yourself by downloading and running the examples project. For more details on each feature of the API, have a look at the documentation.\nAs always we look forward to connecting with you via the GroupDocs Forum.\n","permalink":"https://blog.groupdocs.com/viewer/view-messages-from-desired-folders-in-outlook-data-files-ostpst/","summary":"Hello everyone! Today, I am quite excited to announce that GroupDocs.Viewer for Java 19.8 has been released with 20+ new features, improvements, and bug fixes. Although every new feature in this version has its own importance, I have picked a few interesting but useful features for you. So in this post, I am going to give you an overview of how to work with the folders contained by Outlook Data Files (OST/PST) and use the message filters to render selective Outlook messages.","title":"View messages from desired folders in Outlook Data Files (OST/PST)"},{"content":"With the new release of GroupDocs.Merger for Java 19.8 you can take your document joining experience to the next level.\nWhat is special about this release?\nWe are pleased to announce that you can now do image joining. And following are the supported image formats:\nBMP PNG TIFF How easy is that?\nLet\u0026rsquo;s understand this with a use-case. We\u0026rsquo;ll join a BMP and TIFF file.\nNew Format Support\nAPI now fully supports HTML format.\nWe\u0026rsquo;d recommend you to download the latest release and integrate it in your application. In case you find any issue, feel free to post on forum.\n","permalink":"https://blog.groupdocs.com/merger/join-images-using-groupdocs.merger-for-java/","summary":"With the new release of GroupDocs.Merger for Java 19.8 you can take your document joining experience to the next level.\nWhat is special about this release?\nWe are pleased to announce that you can now do image joining. And following are the supported image formats:\nBMP PNG TIFF How easy is that?\nLet\u0026rsquo;s understand this with a use-case. We\u0026rsquo;ll join a BMP and TIFF file.\nNew Format Support\nAPI now fully supports HTML format.","title":"Join Images using GroupDocs.Merger for Java 19.8"},{"content":"GroupDocs.Viewer for .NET has been serving the developers in creating the document viewer applications for many years. With the efforts of our hard-working team and the support of our valuable customers, we are able to make the API stand among the top-ranked document viewer APIs. Since the Sky is the only limit, we always keep on enriching the API with more features, improving its performance, and making its usage easier for the developers. And today, I am excited to announce that we have introduced a new public API for GroupDocs.Viewer for .NET with major improvements.\nIn the latest version of the API (v19.8), we\u0026rsquo;ve improved the architecture of the API to simplify its usage and make it even easier to build applications. With the major product optimization, the API now consumes fewer resources as compared to the previous versions. Whereas, the document rendering speed has been improved significantly.\nLet me give you a few reasons why you should switch to the v19.8 of GroupDocs.Viewer for .NET.\nMemory usage - Significantly improved and optimized API\u0026rsquo;s memory usage (from 10% to 400% approx. depending on the document type ). Improved rendering speed - The overall rendering speed has been improvedremarkably. Code optimization - Optimized public API to make it even more intuitive and simple (with only a few lines of code you will be able to perform any action which required 20+ lines of code in the previous version). Single entry point - A single class to manage the document rendering process for any supported file format. Easy to use - API now gives more options to the developer in terms of usage and creativity. With the major updates, the public API of GroupDocs.Viewer for .NET has undergone significant changes. As a result, the usage of the classes and their properties and functions has also been changed. Let\u0026rsquo;s now check the difference between the coding styles of the new and old version of the API.\nThis is how we used to get the HTML representation of the document with embedded resources using the old version:\nNow, have a look at how we can perform the same operation using the new API.\nHave you noticed that the code has been shrunk significantly to fewer lines of code in the coding style of the new API? Also, you don\u0026rsquo;t have to create separate handlers for HTML and image representation. Instead, just create a Viewer class and control its behavior using the classes that extend ViewOptions i.e. HtmlViewOptions, PngViewOptions and so on.\nNow, as a developer, it is obvious that you would think about how would you deal with breaking changes in code after upgrading to the version which contains the major updates. So let me make it easier for you. In the latest version, the legacy API has been moved into the Legacy namespace. Therefore, after you upgrade to version 19.8, it is required to make project-wide replacement of namespaces only. This means that the namespaces will be changed from GroupDocs.Viewer. to GroupDocs.Viewer.Legacy. to resolve build issues. And that\u0026rsquo;s it!\nAlright! So now, its time to switch to the latest version. I would recommend you to first explore the documentation of the new API with the help of the source code examples. Once you try it yourself, you will get a better idea of how useful it\u0026rsquo;ll be for you to switch to the latest version. You can also consult the release notes as well as the migration notes.\nIn case you would find the migration process difficult for you, feel free to post on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/its-time-to-upgrade-to-groupdocs.viewer-for-.net-19.8/","summary":"GroupDocs.Viewer for .NET has been serving the developers in creating the document viewer applications for many years. With the efforts of our hard-working team and the support of our valuable customers, we are able to make the API stand among the top-ranked document viewer APIs. Since the Sky is the only limit, we always keep on enriching the API with more features, improving its performance, and making its usage easier for the developers.","title":"It's Time to Upgrade to GroupDocs.Viewer for .NET v19.8"},{"content":"GroupDocs.Annotation API\nGroupDocs.Annotation comes with an extensive set of tools that you can use to easily add common shapes to your documents as an annotation. The list of tools is not limited to area, point, text, polyline, etc. In this section, we will primarily discuss how the Ellipse annotation could be added in a PDF document by using GroupDocs.Annotation API.\nAdding Ellipse Annotation\nWhile discussing the family of annotation types, we cannot ignore ellipse annotation. It could be regarded as a multi-purposed annotation type. For example, it could be used to display extra information on your graphs or you can use it to circle important information. AnnotationInfo could be used to set color, page, opacity, creator name and many more. At minimum following two properties of AnnotationInfo have to be set for drawing an ellipse, which determine the size and type of the annotation:\nFixed value_AnnotationType.Ellipse_ is always used as Type for adding an Ellipse Annotation_._\nCode Example for a PDF Document\nFor adding ellipse to a PDF document, first we will need to get the document in form of Stream by using following line of code:\nThen the Ellipse annotation is added to the list of annotations:\nFinally, we will export the annotation and save the output file:\nThis way we have added an Ellipse annotation to our PDF document using GroupDocs.Annotation API.\nThe complete C# code will look like this:\nThe code in Java will look like this:\n[gist id=\u0026ldquo;705c29f24cf3c7a5efffe88768bde0a0\u0026rdquo; file=addingEllipseAnnotationInPDF.Java\u0026quot;] After adding Ellipse annotation the output document will looks like following screenshot:\n","permalink":"https://blog.groupdocs.com/annotation/adding-ellipse-annotation-in-pdf-documents/","summary":"GroupDocs.Annotation API\nGroupDocs.Annotation comes with an extensive set of tools that you can use to easily add common shapes to your documents as an annotation. The list of tools is not limited to area, point, text, polyline, etc. In this section, we will primarily discuss how the Ellipse annotation could be added in a PDF document by using GroupDocs.Annotation API.\nAdding Ellipse Annotation\nWhile discussing the family of annotation types, we cannot ignore ellipse annotation.","title":"Adding Ellipse Annotation in a PDF Document"},{"content":"Hello guys! It\u0026rsquo;s been a while since my last post about GroupDocs.Signature for Java. So, our Java community might have been waiting for something new regarding our e-signature API. Well, we have recently released version 19.7 of GroupDocs.Signature for Java and today, I shall give you an overview of something interesting that we have introduced in our latest release.\nIn the last couple of months, we introduced a quite valuable feature in the .NET variant related to the metadata signatures - signing documents with custom metadata. We have now introduced this feature in the Java API as well. So now, you can define and use the custom objects as metadata signatures using GroupDocs.Signature for Java.\nSigning document with custom metadata objects becomes useful when you want to embed the metadata signatures containing the information/data of your own choice. For example, you may want to embed the information to the document about who did sign the document, the date when the document was signed and so on. In that case, you can not use the built-in metadata properties of the documents. This is where you can use the custom objects in metadata signatures.\nFor this, the following classes are extended with new public method AddSignature.\nWordsMetadataSignature - for Word documents SlidesMetadataSignature - for Presentations CellsMetadataSignature - for Spreadsheets PdfMetadataSignature - for PDF documents This method creates new metadata signature with passed arguments (name and value), adds the signature to list of metadata signatures and returns the newly created object as a result.\nLet\u0026rsquo;s now check out how to add the custom object in the metadata signature. I am assuming that we have to sign the Word document, therefore, I\u0026rsquo;ll be using the classes that work with the Word documents.\nThe following is the custom class containing the data members that I want to embed as the metadata signature in the document.\nAnd this is how we would create the object of the custom class and then add that object to the metadata signature collection of the input document.\nDid you notice that I have done something extra in the code before signing the document? Yes, after adding the object to the signature collection, I have encrypted it to make it secure. So you can avoid the custom metadata signatures to be captured by the unauthorized persons by applying the encryption.\nThat is not the end yet! You can also search your custom objects within the metadata signature collection of the documents using SignatureHandler.search method. The following code snippet shows how to search the encrypted object that we have added before.\nFor adding and searching encrypted custom objects in other document formats, please visit the documentation.\nIn addition to the above-mentioned features, we have also added some improvements regarding .djvu file format as well as three bug fixes. For details, please have a look at the release notes.\nIf you are interested in using the newly arrived features in your e-signing application, just download and integrate the latest release. For working code samples, download or clone our examples project from GitHub repository.\nIn case you would have any questions or suggestions, just create a topic on our forum and we would love to have a conversation with you.\n","permalink":"https://blog.groupdocs.com/signature/sign-documents-with-encrypted-custom-objects/","summary":"Hello guys! It\u0026rsquo;s been a while since my last post about GroupDocs.Signature for Java. So, our Java community might have been waiting for something new regarding our e-signature API. Well, we have recently released version 19.7 of GroupDocs.Signature for Java and today, I shall give you an overview of something interesting that we have introduced in our latest release.\nIn the last couple of months, we introduced a quite valuable feature in the .","title":"Sign Documents with Encrypted Custom Objects"},{"content":"Usually, a searching software is able to achieve fast search responses because, instead of search the text directly, it searches an index. This would be the equivalent of retrieving pages in a book related to a keyword by searching the index at the back of a book, as opposed to searching the words in each page of the book.\nUsing GroupDocs.Search for Indexing and Searching Problem: Suppose you have 10 million documents of different file formats, e.g. MS Word, Spreadsheets, Presentations, etc. Due to limited memory size, you cannot store more than 5% of the entire data. Now the main issue is how to apply indexing and searching in this case.\nSolution: The GroupDocs.Search for .NET provides many ways to perform search operations on any size of document collections. It is capable in indexing various types of documents and perform searches on it. The API supports searching for:\nText occurrences Basic metadata fields File names Document types Moreover, it allows searching on the basis of different search query types. The advanced search (e.g fuzzy search, synonyms search, boolean search) is also supported.\nCreating Index Let\u0026rsquo;s try the GroupDocs.Search API for indexing the bulk of documents of different file formats(see the supported formats list). Although, the Index can be created in memory, but here, let\u0026rsquo;s create it on disk. You just need to follow these simple steps:\nCreate a directory for Indexing Create another directory and copy all the required documents into it. Come to the code and firstly initialize Index object by passing the path of the index directory Add documents using AddToIndex(\u0026ldquo;Documents_Folder_Path\u0026rdquo;) method of Index object. The C# code will look like this:\nJava guys can write the code like this:\nAfter creating Index you will see the files in the Index folder like following screenshot:\nSearching The Terms The GroupDocs.Search allows various kinds of queries for search operations with more advance features. Please see this article for the detail.\nLets come to the code.\nSuppose, the index has been already created as described in the above section. Let\u0026rsquo;s simply search a term. Follow the steps as written below:\nInstantiate _Index _by passing index folder path Search the term using Index.Search() method which will return SearchResults object. Show list of searched files The C# code will look like:\nJava developers can write the code like this:\nThe output will be appeared like the following screenshot:\nThe complete ready to run code sample is available on GitHub.\n","permalink":"https://blog.groupdocs.com/search/searching-in-a-large-number-of-documents/","summary":"Usually, a searching software is able to achieve fast search responses because, instead of search the text directly, it searches an index. This would be the equivalent of retrieving pages in a book related to a keyword by searching the index at the back of a book, as opposed to searching the words in each page of the book.\nUsing GroupDocs.Search for Indexing and Searching Problem: Suppose you have 10 million documents of different file formats, e.","title":"Searching in a Large Number of Documents"},{"content":"We are always keen to make our APIs rich in features and enhance usability. When we talk about annotation types. One cannot neglect ellipse annotation. Its a multi purposed annotation type. For instance you can use it to display extra information on your gauge or capture graph hits against a target line. Previously, Ellipse annotation was implemented in .NET version and it seemed very useful. We are pleased to announce that Ellipse annotation is now added in GroupDocs.Annotation for Java 19.7. Java users can implement this annotation as follows: This is how ellipse annotation will look like:\nYou can also set ellipse color, pen style (e.g. dash, dot, solid), pen width. AnnotationInfo class gives you access to such properties.\nYou might be wondering, what documents are actually supported for the ellipse annotation? Currently, this annotation is supported for the following file formats only:\nPDF Word Slide Image Cell Diagram Setting Watermarks Angle\nWe\u0026rsquo;ve added ability to set text watermark angle. The process is same as adding Watermark annotation, but you should additionally set Watermark rotation angle by setting AnnotationInfo.Angle property (in degrees).\nAside new features, we\u0026rsquo;ve also fixed some bugs:\nOnly first page is saved in output when Multi-Tiff file is annotated Import annotations for Images doesn\u0026rsquo;t close stream Annotation not apply if page number not defined in Words We\u0026rsquo;d recommend you to download and integrate latest release of the API and share your concerns on forum.\n","permalink":"https://blog.groupdocs.com/annotation/add-ellipse-annotation-in-multiple-documents/","summary":"We are always keen to make our APIs rich in features and enhance usability. When we talk about annotation types. One cannot neglect ellipse annotation. Its a multi purposed annotation type. For instance you can use it to display extra information on your gauge or capture graph hits against a target line. Previously, Ellipse annotation was implemented in .NET version and it seemed very useful. We are pleased to announce that Ellipse annotation is now added in GroupDocs.","title":"Add Ellipse Annotation in Multiple Documents"},{"content":"Nested or the multi-level numbered lists allow you to group the items based on the parent item. Put it simply, you can separately list the items under each group. This becomes very useful when you have to list the items having multiple sub-items. Let\u0026rsquo;s have a look at the following figure which makes it simpler to understand the scenario.\nIn this figure, you can observe that there are listed 3 groups and each group further has multiple items listed under it. So, in such cases nested numbered list is used.\nLets now check out how could you populate a numbered list within your Word documents using GroupDocs.Assembly. Assume that you have the Order and Service classes defined in your application in such a way that each order instance has multiple services. The following template will be used to output the orders along with the services they have using the API:\nThe Word document that will be generated in the result of the above template will contain the following listing:\nThe perfect output, isn\u0026rsquo;t it? No, not at all. You would have noticed that the numbering of the list is disturbed. Yes, the numbering sequence is continued and it hasn\u0026rsquo;t restarted for the second list. Well, this is the expected behavior when you generate the numbered list using this template.\nSo how would you deal with such a situation when you want to restart the list\u0026rsquo;s numbering? Well, believe me, it is as simple as a pie. Just place a restartNum tag before the inner foreach and you are done.\nThis is how the updated version of the template will look like. We have now placed restartNum tag to restart the list numbering for each order.\nAnd what we have got in the output is:\nPerfect!\nAt the moment, you can restart the list numbering within the Word Processing documents as well as email messages with HTML and RTF bodies.\nSo if you want to have this feature in your application, just download and integrate v19.7 of GroupDocs.Assembly for .NET or Java. For working code samples, download or clone the examples project from the GitHub repository. Cheers!\n","permalink":"https://blog.groupdocs.com/assembly/restart-the-list-numbering-dynamically-within-your-document/","summary":"Nested or the multi-level numbered lists allow you to group the items based on the parent item. Put it simply, you can separately list the items under each group. This becomes very useful when you have to list the items having multiple sub-items. Let\u0026rsquo;s have a look at the following figure which makes it simpler to understand the scenario.\nIn this figure, you can observe that there are listed 3 groups and each group further has multiple items listed under it.","title":"Restart the List Numbering Dynamically within Your Document"},{"content":"Integrate GroupDocs.Comparison for .NET 19.6 in your project and take control of documents comparison sensitivity. Detecting source and target documents style changes or inserted/deleted items and then highlighting them in the resultant file is a common yet major feature.\nBut we have something new, something enormous for you. You can now get detailed comparison of the documents. In ComparisonSettings class we added SensitivityOfComparison method using that you can set sensitivity of documents comparison. Let\u0026rsquo;s see its implementation and then details.\nThis option defines limit in percentage, when element is detected as deleted or inserted. There are three values/percentages.\nMinimal value\nMinimal value is 0, comparison process does not occur for any length of sequences of two compared objects.\nValue by default\nThe default percentage is 75, comparison occurs when the percentage of deleted or inserted elements in relation to all elements does not exceed 75%.\nMaximum value\nThat is 100%. Comparison occurs at any length of a common sub-sequence of two compared objects.\nNow let\u0026rsquo;s understand this with a use-case. Suppose we have two words:\noneSource twoTarget These two words have very small common sub-sequence. Therefore, when comparing them at 75% accuracy, it is not taken into account and we get a completely removed and inserted word as follows:\n(twoTarget)[oneSource] But at 100% accuracy, this sub-sequence will be treated or represented in a different way, despite the fact that it consists of two letters.\n(tw)o[n](Targ)e[Source](t) Isn\u0026rsquo;t it amazing? You can now get briefed comparison results by just controlling the sensitivity.\nLet\u0026rsquo;s see the major issues that are now resolved in this release:\nDuplicate Images in Result file in PDF PDF comparison has overlapping and mangled output Text got overlapped with other text or images Merged Documents and then comparing them fails You must give a try to GroupDocs.Comparison for .NET API and share your feedback and concerns on forum. Download latest version of the API here.\n","permalink":"https://blog.groupdocs.com/comparison/control-documents-comparison-sensitivity/","summary":"Integrate GroupDocs.Comparison for .NET 19.6 in your project and take control of documents comparison sensitivity. Detecting source and target documents style changes or inserted/deleted items and then highlighting them in the resultant file is a common yet major feature.\nBut we have something new, something enormous for you. You can now get detailed comparison of the documents. In ComparisonSettings class we added SensitivityOfComparison method using that you can set sensitivity of documents comparison.","title":"Control Documents Comparison Sensitivity"},{"content":"Getting image representation of document pages is one of the most successful feature that is already implemented in .NET version of the API. Keeping your interest in view, we\u0026rsquo;ve now implemented this feature for Java developers. GroupDocs.Comparison for Java 19.6 allows you to save document comparison results in image format as well.\nWhat does it take to implement such a feature?\nYou just have to pass the output folder path to convertToImages method and API will take care of conversion mechanism itself.\nLet\u0026rsquo;s have a look at the implementation:\nIs there a way to set document size when comparing image with different formats?\nWe added a class OriginalSize using that you can set document size when comparing image with different formats, this size will be used when document is converted to the picture. Given below are the methods:\ngetHeight() getWidth() setHeight(int value) setWidth(int value) There are also bug fixes and improvements introduced in this release. Let\u0026rsquo;s have a look at the prominent ones.\nBug Fixes﻿\nFont detection exception Word separation exception Html MarkDeletedInsertedContentDeep Bug Deleted items in comparison output is not as expected Incorrect difference info in PDF Improvements\nImprove HTML aligner TableFormatSetter for Slides is improved now Html Anchors comparing StyleSheet Comparer for Html We\u0026rsquo;d recommend you to download and integrate this release in your project and enhance your document comparison experience. Do share your feedback or concerns on forum.\n","permalink":"https://blog.groupdocs.com/comparison/get-image-representation-of-document-pages/","summary":"Getting image representation of document pages is one of the most successful feature that is already implemented in .NET version of the API. Keeping your interest in view, we\u0026rsquo;ve now implemented this feature for Java developers. GroupDocs.Comparison for Java 19.6 allows you to save document comparison results in image format as well.\nWhat does it take to implement such a feature?\nYou just have to pass the output folder path to convertToImages method and API will take care of conversion mechanism itself.","title":"Get Image Representation of Document Pages"},{"content":"As you know that API already supports metered licensing.\nCan we get count of credits consumed?\nYes, we have a good news for you. There is a new method GetConsumptionCredit() implemented in Metered class. This method returns count of credits that are consumed in case of Metered licensing is used.\nFollowing example demonstrates how to retrieve count of credits consumed.\nLet\u0026rsquo;s talk about the new file formats introduced. Most of you might be working with XLAM, an Excel Macro-Enabled Add-In file format. We have added support for this format in GroupDocs.Conversion for .NET 19.6 release. You can now do back and forth conversion to XLAM. This is not it. Conversion from following file extensions to any other supported file format is now possible:\nMPX JPC DWT JPEF-LS (JIS) We\u0026rsquo;ve also improved Diagram to Word conversion.\nMoreover, converting a PowerPoint document with black SmartArt text to PDF issue is resolved. Previously, SmartArt text in the resultant document was changed to white text.\nWith all such features and improvements, why wait to give it a try? Download latest release from here and share your feedback/concerns on our forum.\n","permalink":"https://blog.groupdocs.com/conversion/retrieve-count-of-credits-consumed-in-groupdocs.conversion-for-.net/","summary":"As you know that API already supports metered licensing.\nCan we get count of credits consumed?\nYes, we have a good news for you. There is a new method GetConsumptionCredit() implemented in Metered class. This method returns count of credits that are consumed in case of Metered licensing is used.\nFollowing example demonstrates how to retrieve count of credits consumed.\nLet\u0026rsquo;s talk about the new file formats introduced. Most of you might be working with XLAM, an Excel Macro-Enabled Add-In file format.","title":"Retrieve Count of Credits Consumed In GroupDocs.Conversion for .NET"},{"content":"If you worked with earlier versions of the API, you are probably aware that there was issue in footnote number conversion. A Word document with such footnotes was converted to PDF or any other supported file format successfully but the footnote number order was disturbed.\nThere was one more issue reported in the forum. It was about converting a PowerPoint document with black SmartArt text to PDF. And the SmartArt text in the resultant document was changed to white text.\nWhat else is fixed?\nIssue with conversion .docx (with table of content) to .html Conversion of .pdf to .png (or .jpeg) with watermark as background Inconsistent conversion from email file formats when converting to Cells Receiving Aspose.Pdf.InvalidValueFormatException when converting a PDF file In GroupDocs.Conversion for Java 19.6, we have fixed these issues.\nDo we have to take any extra step in order to get right output?\nNo, these were back-end level issues and they have been fixed. That means you just have to write your normal document conversion code.\nThere are few regular yet helpful improvements:\nSVG to Slides conversion is improved Set watermark as background when converting to Image format Lastly, we\u0026rsquo;ve added a new file format VCF. you can now do conversion from VCF to any other supported file format.\nPlease download latest release here. Your feedback is very important for us. If you run into issues or have questions while trying out this latest release, post your concerns here.\n","permalink":"https://blog.groupdocs.com/conversion/issue-with-footnote-number-is-resolved/","summary":"If you worked with earlier versions of the API, you are probably aware that there was issue in footnote number conversion. A Word document with such footnotes was converted to PDF or any other supported file format successfully but the footnote number order was disturbed.\nThere was one more issue reported in the forum. It was about converting a PowerPoint document with black SmartArt text to PDF. And the SmartArt text in the resultant document was changed to white text.","title":"Issue with Footnote Number is Resolved"},{"content":"\rYes, GroupDocs.Signature for .NET now supports embedding custom objects as metadata signature in the images. So you can now sign the images with your desired metadata properties. We have introduced this feature in version 19.6 by adding a new public method AddSignature to the ImageMetadataSignOptions class. Not only this, but you can also apply the data encryption to the custom objects. So let\u0026rsquo;s check out how easy it is to sign an image with custom metadata signature.\nBefore jumping to the code, let me first describe the steps that are required to embed the encrypted custom objects.\nConfigure the storage paths, create and populate the object of SignatureConfig Instantiate the SignatureHandler by passing SignatureConfig object Setup IDataEncryption object with new SymmetricEncryption() Setup the custom object with the desired data members Add the custom object to the metadata signature list using AddSignature method Apply the data encryption Sign the document That\u0026rsquo;s it and the image has been signed with your desired metadata. Let\u0026rsquo;s now have a look at the code sample for completely understanding the working of this feature.\nAlong with this feature, we have also added a notable improvement in the searching process. With this improvement, you will now be able to locate the document\u0026rsquo;s page number where the signature object was found. For this, the public abstract class _BaseSignature _has been extended with a new property PageNumber. This is how you can achieve it using the code.\nListed below are the other improvements and the bug fixes that we have packaged in version 19.6.\nImprovements Ability to verify files with .cmx (CorelDraw) format as image documents Ability to search .cmx (CorelDraw) files as image documents Ability to sign .cmx (CorelDraw) files as image documents Ability of saving Word documents with FlatOpc formats Support of .cdr (CorelDraw) file format for verification process Ability to search .cdr (CorelDraw) files as image documents Ability to sign .cdr (CorelDraw) files as image documents Bug Fixes Digital Signature\u0026rsquo;s IsValid property is not being set correctly for the Search routine Output file is missing if save options are not provided Illegal character issue when trying to encrypt serialized data The output file\u0026rsquo;s path is unexpected for different scenarios Alright! So this is it from my side and now, it\u0026rsquo;s your turn to download and check out the latest release. For more details, you can have a glance at the release notes. I would also recommend you consult the Developer\u0026rsquo;s Guide while evaluating the API\u0026rsquo;s features. Still, if you need any assistance, please feel free to write to us on our forum.\n","permalink":"https://blog.groupdocs.com/signature/embed-custom-objects-in-metadata-signature-for-images/","summary":"Yes, GroupDocs.Signature for .NET now supports embedding custom objects as metadata signature in the images. So you can now sign the images with your desired metadata properties. We have introduced this feature in version 19.6 by adding a new public method AddSignature to the ImageMetadataSignOptions class. Not only this, but you can also apply the data encryption to the custom objects. So let\u0026rsquo;s check out how easy it is to sign an image with custom metadata signature.","title":"Embed Custom Objects in Metadata Signature for Images"},{"content":"Did you ever wish to get image representation of a document? GroupDocs.Merger for Java 19.6 will make your wish come true. This feature is also helpful for front end application development.\nLet\u0026rsquo;s have a look at its implementation.\nIt will return page number and page stream. Using getPagePreview method you will get list of page image representations for a document of known format. So, source document file format should be specified.\nBut what will happen if you don\u0026rsquo;t specify file format or if it is undefined? The good thing is, it will be detected on the fly.\nIn this release, we introduced/added support for some new file formats:\nXLT XLTM XLTX TSV LaTex Let\u0026rsquo;s now take a overview of improvements introduced:\nODP presentations loading is optimized Ability to specify page number for every joining document. These pages will be included to the resultant document Along with features and improvements we also emphasize on your feedback. Therefore, we\u0026rsquo;d like to mention some major bug fixes introduced in this release.\nMovePage method was not working accurately for EPUB and EPS formats. This issue is now resolved.\nIssue in saving and loading of LaTex documents is resolved.\nYou can download latest version of the API here. Share your feedback or post your queries here.\n","permalink":"https://blog.groupdocs.com/merger/get-image-representation-of-a-document/","summary":"Did you ever wish to get image representation of a document? GroupDocs.Merger for Java 19.6 will make your wish come true. This feature is also helpful for front end application development.\nLet\u0026rsquo;s have a look at its implementation.\nIt will return page number and page stream. Using getPagePreview method you will get list of page image representations for a document of known format. So, source document file format should be specified.","title":"Get Image Representation of a Document"},{"content":"This may be a big news for those who annotate TIFF documents, most of the time. Previously, there was issue with this format. API was throwing exception \u0026ldquo;Cannot open image file\u0026rdquo;. But now you can:\nImport annotations from TIFF file Delete annotations from it Export annotations into it Moreover, in trial mode you were not able to get document info. This issue is now resolved in GroupDocs.Annotation for .NET 19.6.\nLets see new features introduced:\nMore Slide Formats\nAPI now supports following new Slide formats:\nPPTM POTX POTM PPSM Credit Based Billing\nWe integrated credit based billing system in GroupDocs.Annotation for .NET 19.6. Each document operation, along with consumed bytes, also consumes one credit. The amount of already used credits can be retrieved through method GetConsumptionCredit in the Metered class: API version 19.6 is now available for download. Integrate it in your existing or new applications.\n","permalink":"https://blog.groupdocs.com/annotation/export-annotations-to-tiff-files/","summary":"This may be a big news for those who annotate TIFF documents, most of the time. Previously, there was issue with this format. API was throwing exception \u0026ldquo;Cannot open image file\u0026rdquo;. But now you can:\nImport annotations from TIFF file Delete annotations from it Export annotations into it Moreover, in trial mode you were not able to get document info. This issue is now resolved in GroupDocs.Annotation for .NET 19.6.","title":"Export Annotations to TIFF Files"},{"content":"\rHello everyone! I am back with something new and exciting for the developers who use to deal with the automated data extraction from the documents. A few years back, we released GroupDocs.Parser API which aimed to extract the text from various document formats. We kept on adding the features to it and today, it has become a giant API that provides a wide range of features including formatted text extraction, highlighted and structured text extraction, metadata extraction, extraction of images and the list goes on.\nIn v19.5 of .NET and Java API, we have introduced another much-needed feature of extracting data from the documents. So today, I shall give you an overview of this feature and demonstrate its working using the code samples.\nSome document formats, such as PDF, also support adding the data fields into the documents. An example of this is the invoice that is used to record a predefined set of information such as invoice numbers, order number, date, price, etc. Such documents have a predefined format and therefore, we also call them template documents. There might be the case when you want to process all or some of the invoices and extract the desired data from them. In that case, an automated system must be required to do the job with a little effort.\nIf you are dealing with such a case then no need to worry at all because GroupDocs.Parser now provides this feature. So let\u0026rsquo;s check out how you could use this feature for extracting data from the template documents such as invoices. To demonstrate this feature, I shall take the following PDF invoice as the input document.\nFor data extraction, TemplateField and TemplateFieldPosition classes are introduced. The TemplateFieldPosition class defines the data field\u0026rsquo;s position on the page in the document. At the moment, we have introduced the following position types:\nFixed - The position is set by a rectangle. Regex - The position is found by a regular expression. Related - The position is set relative to the related field. To extract the data fields from the document, we first create a document template which contains the template fields. The template fields are those fields for which you want to extract the values from the document, such as Invoice Number, Order Number, etc. Once the document template is created, it is used to parse the input document using DocumentParser.Default.ParseByTemplate method. Have a look at the following code snippet in which we are extracting data from the data field that contains \u0026ldquo;Address\u0026rdquo; in its name.\nC#\nJava\nApart from extracting by field names, you can also extract the whole data tables. The procedure is the same, except the one thing that is creating TableAreaDetectorParameters and the TemplateTable objects. The TemplateTable object is created using TableAreaDetectorParameters objects that are used to detect the tables in the desired rectangular area. In the end, the TemplateTable is passed to the DocumentTemplate object. Let\u0026rsquo;s check out how this can be achieved using the code.\nC#\nJava\nNow, you have seen how you can extract the desired data from the document templates. If you want to avail this feature, just download the latest release and for more details, consult the Developer\u0026rsquo;s Guide of the API. In case you would find anything confusing, just feel free to post it on our forum and we would love to assist you.\n","permalink":"https://blog.groupdocs.com/parser/extract-data-fields-from-the-documents-using-groupdocs.parser-product-family/","summary":"Hello everyone! I am back with something new and exciting for the developers who use to deal with the automated data extraction from the documents. A few years back, we released GroupDocs.Parser API which aimed to extract the text from various document formats. We kept on adding the features to it and today, it has become a giant API that provides a wide range of features including formatted text extraction, highlighted and structured text extraction, metadata extraction, extraction of images and the list goes on.","title":"Extract Data Fields from the Documents using GroupDocs.Parser Product Family"},{"content":"\rDo you have to deal with a frequent exchange of the digital documents? Do your documents contain classified and sensitive information that needs to be protected? If they do, how do you process such documents to hide or remove some specific information before sending them outside your company? Well, these questions will definitely pop out the solution that you are currently using for protecting the sensitive content in your document.\nWhat if I tell you that you can automate the process of protecting the classified content in your documents? Wouldn\u0026rsquo;t it be great when you will be able to do it for a bunch of documents using a single click?\nYes, it is possible because \u0026ldquo;we have released our document redaction API for Java platform\u0026rdquo;.\nYou can now redact, hide or remove sensitive content \u0026amp; metadata from word processing documents, worksheets, presentations, PDF and raster image files in your Java applications using GroupDocs.Redaction for Java.‎ The API provides a single ‎format-independent interface supporting various redaction types such as text redaction, metadata ‎redaction, annotation redaction, and tabular document redaction.\nThe API provides a wide range of options and methods for the redaction of private information in the documents. The following are some salient features of the API along with their documentation URLs:\nSearch and redact exact matches of a search string\nSearch and redact using regular expressions\nUse textual (exemption codes) or graphical (colored rectangles) redactions\nSave the document in its original format or as a PDF with raster images of original pages\nWipeout metadata or redact metadata values\nRemove annotations or redact their text\nIntegration interface for implementing custom redactions and formats\nAbility to specify a set of redaction rules (policy) in the XML file\nFor a complete list of supported features, please have a look at features overview.\nThe next important thing that you may want to know is, which document formats are supported by the API. Well, we have added support for the most popular formats that are widely used for information exchange. Definitely, we shall keep extending this list in or future releases. At the moment, the supported formats include:\nPDF (.pdf) MS Word (.doc, .docx, .dot, .odt, .dotx, .docm, .dotm, .rtf) MS Excel (.xls, .xlsx, .xlt, .xltx, .xlsm, .xltm, .csv) MS PowerPoint (.ppt, .pptx, .pps, .ppsx, .potx, .pptm, .ppsm, .potm) Images (.jpg, .jpeg, .bmp, .png, .gif, .tiff, .tif) So why not check out how you can automate your document redaction process by downloading the API and evaluating its features. The following are some useful resources for you to quickly get started:\nDownload – Zipped JAR Maven Installation - GroupDocs Repository Documentation – Product Documentation API References - Complete API References Guide Download Examples – GitHub Repository You can evaluate the API features for free without any trial limitations using the temporary license. Just follow the instructions provided here and get your temporary license now.\nIn case you would have any questions or queries, just feel free to share with us on our forum. Cheers!\n","permalink":"https://blog.groupdocs.com/redaction/groupdocs-redaction-has-been-released-for-java-platform/","summary":"Do you have to deal with a frequent exchange of the digital documents? Do your documents contain classified and sensitive information that needs to be protected? If they do, how do you process such documents to hide or remove some specific information before sending them outside your company? Well, these questions will definitely pop out the solution that you are currently using for protecting the sensitive content in your document.","title":"Big News! GroupDocs.Redaction has been released for Java platform!"},{"content":"A watermark in presentation software and word processing is frequently used in a slightly different manner than digital watermarks used in other digital multimedia content. This watermark is often a faded image or text as a background of a slide or a page. It is meant to enhance but is not the focal point of the page/slide. Watermarks are sometimes used in the form of a logo, discreetly placed on a slide or page to brand the presentation or document.\nHow GroupDocs.Watermark Works? GroupDocs.Watermark is an API for adding watermarks to the documents of different formats. It provides the effective watermarking methods that allow you to add watermarks that are hard to be automatically removed by third-party tools. It also allows you to search and remove previously added watermarks of popular types (including watermarks added by third-party tools) in a document. The API provides straight forward and easy to use set of methods to add, search and remove watermarks in supported file formats. It supports following watermark types.\nText watermark Image watermark Watermarking in Microsoft Word Documents When adding watermark in Microsoft Word application, it places a shape with appropriate content in section headers. GroupDocs.Watermark API uses the same approach. When calling AddWatermark method of WordsDocument class, the shape is added to a document.\nYou can also set some additional options when adding shape watermark to a Word document using GroupDocs.Watermark.\nThe Following code sample demonstrates it.\nThe code snippet for java guys is given below:\nYou can see the faded red watermark in the center of the document page like the screenshot given below:\nLet\u0026rsquo;s pick some other cases to see how effectively you can do watermarking in a Word Processing document.\nAdding Watermark to a Particular Section of Word Document The Microsoft Word allows the user to divide and format the document into multiple sections. Defining sections in the document enables the user to set specific page layout and formatting for different parts of the document. An example of the sections is headers and footers. Headers and footers are to display text or any graphical object on all the pages.\nGroupDocs.Watermark API allows you to add watermark objects in the headers and footers of the page. Adding watermark to a section of a Word document using GroupDocs.Watermark consists of the following steps.\nLoad the document Create and initialize watermark object Set watermark properties Add watermark to the section of the document Save the document Following code sample adds watermark to the headers of a particular section.\nJava guys will write the code like below:\nLocking Watermark in a Word Document There might be the case when you need to lock the watermarks in a Word document to restrict the editing. To deal with such cases, the GroupDocs.Watermark provides 5 variants of locking Word document when adding watermark.\nAllowOnlyRevisions: user can only add revision marks to the document. AllowOnlyComments: user can only modify comments in the document. AllowOnlyFormFields: the document is split into one-page sections and locked section with watermark is added between each two adjacent document sections. ReadOnly: the entire document is read-only. ReadOnlyWithEditableContent: the document is read-only, but all the content except the watermark is marked as editable. LockType property has been added to WordsShapeSettings class to set any of the above-mentioned lock types. WordsLockType enum in GroupDocs.Watermark.Office.Words namespace is used to define the lock type.\nThe following code sample shows how to add and lock the watermark in all pages.\nJava guys can follow the code as given below:\nRemoving Watermark from a Particular Section of Word Document Removing watermark from a particular section of a Word document using GroupDocs.Watermark consists of following steps.\nLoad the document Create and initialize image/text search criteria Find possible watermarks Remove found watermarks Save the document Following code sample shows how to remove watermark from a particular section.\nThe following is code sample for Java users:\nThe complete ready to run code sample is available on GitHub.\n","permalink":"https://blog.groupdocs.com/watermark/watermarking-in-word-processing-documents/","summary":"A watermark in presentation software and word processing is frequently used in a slightly different manner than digital watermarks used in other digital multimedia content. This watermark is often a faded image or text as a background of a slide or a page. It is meant to enhance but is not the focal point of the page/slide. Watermarks are sometimes used in the form of a logo, discreetly placed on a slide or page to brand the presentation or document.","title":"Watermark Word Processing Documents"},{"content":"\rGuys! We have recently released version 19.5 of GroupDocs.Signature for .NET with some extended features, a few bug fixes, and improvements. So in this post, I am going to give you a brief overview of the new features that we have introduced in the latest release. Furthermore, I shall also list the issues that are fixed as well as the improvements that we have made in v19.5.\nFirst of all, let\u0026rsquo;s checkout what new the latest release has brought for you.\nIn the previous release, we added the feature of creating and using the custom objects as metadata signatures in the PDF documents. The feature is useful when you don\u0026rsquo;t want to use the built-in metadata properties for metadata signatures. So, keeping an eye on the importance of this feature, we have extended it for word processing, presentation and spreadsheet documents. Now, you can sign the afore-mentioned document types using the custom objects as metadata signatures.\nLets find out how you can achieve it using the code.\nFor signing documents with metadata signature using the value of a custom object, we have added AddSignature(string name, Object value) method to the following classes:\nWordsMetadataSignOptions SlidesMetadataSignOptions CellsMetadataSignOptions PDFMetadataSignOptions You can add a custom class object (containing multiple data members) as well as a single-valued metadata signature to the MetadataSignature collection. The following is the complete demonstration of this feature using the code snippet. Furthermore, it also shows how to apply data encryption to the object\u0026rsquo;s values.\nAnd this is how we created the class for the custom object.\nIn addition to the above-mentioned feature, we have made the following bug fixes and the improvements in the latest release.\nBug Fixes Fix exception for de-serialization of encrypted string values in Metadata Signatures SaveOptions.OutputFileName doesn\u0026rsquo;t affect on result name of signed document PdfQRCodeSignature.GetData() throws exception Improvements Support of .djvu file format for verification process Ability to search files with .djvu format as image documents Ability to sign files with .djvu format as image documents Implementation of a new method AddSignature for MetadataOptions So now, using the latest release, you can extend the ability to sign documents using custom objects for the word processing, presentation, and spreadsheet documents in your application. You can download the latest version of the API and evaluate the new features using the examples project. In case you would have any queries or questions, just create a new topic in our forum and we\u0026rsquo;ll love to assist you.\n","permalink":"https://blog.groupdocs.com/signature/use-custom-objects-as-metadata-signature-in-word-processing-presentation-and-spreadsheet-documents/","summary":"Guys! We have recently released version 19.5 of GroupDocs.Signature for .NET with some extended features, a few bug fixes, and improvements. So in this post, I am going to give you a brief overview of the new features that we have introduced in the latest release. Furthermore, I shall also list the issues that are fixed as well as the improvements that we have made in v19.5.\nFirst of all, let\u0026rsquo;s checkout what new the latest release has brought for you.","title":"Use Custom Objects as Metadata Signature in Word Processing, Presentation, and Spreadsheet Documents"},{"content":"\rMany people use stamps as part of their documents to mark them as approved or completed. For example, when a document is to be signed by the concerned person at a company, he puts his signature as well as stamps the document as a proof that the document is signed by the authorized person. In other words, the stamps are used to seal the document that is being exchanged among multiple persons/parties.\nVarious companies use digital signatures to sign their document using automated systems. This way, they can avoid the efforts of manually signing a bunch of documents as well as they don\u0026rsquo;t have to print the document for signatures and then scan the signed copy for distribution. If such companies have the requirement to sign as well as stamp their documents then how would they do it digitally? Well, here comes the GroupDocs.Signature that allows digital stamping of the documents.\nDigital stamping is one of the salient features of the GroupDocs.Signature API. We provide a wide range of options to control the placement and appearance of the digital stamps in the document. The following is a snapshot of the document which we have stamped using our API.\nIn the above snapshot, you can observe that the borderlines are flat. However, some of you may want to have rounded corners for the stamp. So keeping that in mind, we have provided the support of stamps with the round corners in GroupDocs.Signature for Java 19.5. For this, we have added a new public class SquareBorderLine that inherits BorderLine to implement square stamp with rounded corners. This is how you can achieve it using the code.\nThe following would be the output of the above written code.\nSo if you want to implement this feature in your e-signing application, just download that latest release and integrate it into your application. In case you would have any query or question, do write to us on our forum.\n","permalink":"https://blog.groupdocs.com/signature/groupdocs.signature-for-java-19.5-supports-rounded-corners-for-stamp-signature/","summary":"Many people use stamps as part of their documents to mark them as approved or completed. For example, when a document is to be signed by the concerned person at a company, he puts his signature as well as stamps the document as a proof that the document is signed by the authorized person. In other words, the stamps are used to seal the document that is being exchanged among multiple persons/parties.","title":"GroupDocs.Signature for Java 19.5 Supports Rounded Corners for Stamp Signature"},{"content":"Yes, this is right. Paginal mode is now implemented in GroupDocs.Editor for .NET 19.5. How this mode will effect WordProcessing documents? As you know that previously, there was only float mode. When WordProcessing documents were converted to the page-less HTML, page division was absent. But in this release WordProcessing options class contains new paged (also called paginal) mode. When paged is enabled, it produces HTML markup, optimized and adjusted for per-page edit and it creates ease to enable paged editing in any of WYSIWYG-editors.\nBy default this mode is disabled. In order to enable it you need to set a boolean flag to true in the WordProcessingToHtmlOptions options:\nNow, when document is edited in the WYSIWYG-editor and is passed back to the GroupDocs.Editor API for converting from HTML to the output format, you also have to set boolean flag to true (by default it is disabled) in the WordProcessingSaveOptions:\nAside this, various text effects are implemented in WordProcessing documents:\nShadow 3D Effect Outline Glow Engrave Emboss This feature doesn\u0026rsquo;t require any action, it is always enabled and can be observed, when the document with such text effects is processed.\nMetered Credits is introduced in this release as well. As API already supports Metered Licensing. But now a new credits concept is implemented. Each document operation, along with consumed bytes, also consumes one credit. The amount of already used credits can be retrieved through new static method GetConsumptionCredit in the Metered class:\nGrab the latest release here. Please communicate with us on forum if you face any issue.\n","permalink":"https://blog.groupdocs.com/editor/enable-pagination-in-wordprocessing-module/","summary":"Yes, this is right. Paginal mode is now implemented in GroupDocs.Editor for .NET 19.5. How this mode will effect WordProcessing documents? As you know that previously, there was only float mode. When WordProcessing documents were converted to the page-less HTML, page division was absent. But in this release WordProcessing options class contains new paged (also called paginal) mode. When paged is enabled, it produces HTML markup, optimized and adjusted for per-page edit and it creates ease to enable paged editing in any of WYSIWYG-editors.","title":"Enable Pagination in WordProcessing Module"},{"content":"Hello everyone! I am back with another release announcement of GroupDocs.Redaction for .NET 19.5. This release has brought a quite useful feature for the developers who are using GroupDocs.Redaction with our Metered Licence. For those who are unaware of the Metered Licence, let me give you a brief introduction. Afterward, I will talk about the new feature and its usage.\nMetered License is a type of license that allows you to pay for what you have used. You are charged only when you use any feature of the GroupDocs APIs in your application. It is useful if you want to be billed based on the usage of the API features. Your usage is reported to our servers and based on which we generate your monthly invoices.\nThe Metered License is supported for both .NET and Java APIs that we offer. Some major advantages that you can enjoy using Metered License are:\nYou pay only for what you have used. Same monthly charges are applied regardless of the number of developers you engage to use our APIs. Metered License is not specific for one product and you can use any product under this license type. You can create applications providing the APIs for other developers to use. Now you would have got a clear picture of the Metered License. So let\u0026rsquo;s move forward and check out what new we have for those who are already using the said type of the license.\nIn the latest release, we have added the feature of getting the credit consumption information against your Metered License. Which means that now you can be aware of how much credit you have consumed. Once you have got this information, you can use it for the further usage analysis.\nTo get the credits consumption information, we have added GetConsumptionCredit method to GroupDocs.Redaction.Metered class. This is how you can use this method.\nAlright! So now you must have got the idea of how the latest release might be helpful for you. You can download the latest release and evaluate the features of the API using the examples project. For more details, please consult the API\u0026rsquo;s documentation.\nIn case you would have any questions or queries, do let us know via our forum.\n","permalink":"https://blog.groupdocs.com/redaction/get-credit-consumption-information-for-your-metered-licence/","summary":"Hello everyone! I am back with another release announcement of GroupDocs.Redaction for .NET 19.5. This release has brought a quite useful feature for the developers who are using GroupDocs.Redaction with our Metered Licence. For those who are unaware of the Metered Licence, let me give you a brief introduction. Afterward, I will talk about the new feature and its usage.\nMetered License is a type of license that allows you to pay for what you have used.","title":"Get Credit Consumption Information for Your Metered Licence"},{"content":"Sometimes, we have a lot of different formatted documents. We create index then perform search and API shows hits from all the indexed documents. Ever thought to get search results from desired documents only?\nLet\u0026rsquo;s dig it further. Suppose, you have multiple TXT, XLSX and DOCX documents. What if you want to search a word or text only in TXT and DOCX files with specific word occurrence in file names? We\u0026rsquo;ve now improved ISearchDocumentFilter interface for such a purpose in GroupDocs.Search. This interface represents search document filter and it uses SearchDocumentFilter class for creation of a filter instances.\nLet\u0026rsquo;s now understand this with a use-case.\nC#\nJava\nWhat we did in this example? We initiated a request to search occurrence of a word hobbit in all the TXT and DOCX files with word task in their file names. In this snippet, you can see a method CreateConjuction. It creates logical conjunction (logical and) of the specified filters.\nSettings for Log Functionality\nThis improvement allows to set up log file name and maximum log file size. Below are the public API changes.\nFollowing class has been added to GroupDocs.Search namespace and com.groupdocs.search package:\nLogSettings Following properties are added to GroupDocs.Search.LogSettings and com.groupdocs.search.LogSettings class: C#\nstring FileName double MaxSize Java\nString getFileName() void setFileName(String value) double getMaxSize() void setMaxSize(double value) Below properties are added to GroupDocs.Search.Index and com.groupdocs.search.Index classes respectively:\nLogSettings LogSettings LogSettings getLogSettings() Let\u0026rsquo;s go through the implementation:\nC#\nJava\nAdd English Synonyms\nThis improvement adds English synonyms to default synonym dictionary.\nC#\nJava\nAbove are the major improvements introduced in version 19.5. Please go through all the other changes in release notes:\nJava .NET Avail these exciting improvements now in your project. This release is available for download. Please share your feedback or concerns here.\n","permalink":"https://blog.groupdocs.com/search/filter-documents-in-search-results/","summary":"Sometimes, we have a lot of different formatted documents. We create index then perform search and API shows hits from all the indexed documents. Ever thought to get search results from desired documents only?\nLet\u0026rsquo;s dig it further. Suppose, you have multiple TXT, XLSX and DOCX documents. What if you want to search a word or text only in TXT and DOCX files with specific word occurrence in file names? We\u0026rsquo;ve now improved ISearchDocumentFilter interface for such a purpose in GroupDocs.","title":"Generate Search Results from Filtered Documents"},{"content":"\rThe HTML format is widely used for creating the webpages or, in other words, the HTML files. These days, every operating system, whether it be of desktop or mobile, contains the built-in web browser that supports viewing the HTML files. Other than that, many free web browsers are also available in the market. This means that any information or the content that is available in the form of HTML pages can easily be viewed just having installed a web browser.\nJust imagine a scenario where you have some Word documents created in MS Word and you want to display them in your web application. So how would you view the content of the file? A suitable and easy solution is if you could get the HTML form of that Word document then it can be viewed within your application in the web browser.\nNow, you could imagine the usefulness of the HTML format. So, let\u0026rsquo;s now find out how did we make use of HTML format in making GroupDocs.Assembly more powerful and useful for you.\nSince version 19.5 of GroupDocs.Assembly, the assembled Word Processing documents, Spreadsheets, Presentations and Email files could be saved as HTML with resources. This means that the generated reports can now be saved as HTML files along with the resources such as images and, as I have mentioned before, you would be able to embed and view the content of the generated reports within your web application.\nLet\u0026rsquo;s take the example of generating the report from the Word template and see how we can save the report as an HTML file. For saving the generated report as HTML with resources, we have added a new property ResourceSaveFolder to the LoadSaveOptions class to specify the folder that will be used to store the resource files. If no folder is specified, by default, external resource files will be stored to a folder having the same name as that of the HTML file (without extension) plus the \u0026ldquo;_files\u0026rdquo; suffix. The following code snippets demonstrate this feature:\nC#\nJava\nAlong with this feature, we have also added the facility of loading HTML template documents referencing external resource files to be assembled and saved to non-HTML formats. For this, the containing folder of the template file is used as a base URI to resolve external resource files\u0026rsquo; relative URIs to absolute ones by default, as shown in the following code snippet:\nC#\nJava\nWell, this would definitely be a really attracting release for you guys. So let\u0026rsquo;s not wait and download the latest version to check how these features can make your report generation applications more powerful.\nFor any questions or suggestions, have a conversation with us on our forum.\n","permalink":"https://blog.groupdocs.com/assembly/save-assembled-word-processing-presentation-spreadsheet-and-email-documents-as-html-file-with-resources/","summary":"The HTML format is widely used for creating the webpages or, in other words, the HTML files. These days, every operating system, whether it be of desktop or mobile, contains the built-in web browser that supports viewing the HTML files. Other than that, many free web browsers are also available in the market. This means that any information or the content that is available in the form of HTML pages can easily be viewed just having installed a web browser.","title":"Save Assembled Word Processing, Presentation, Spreadsheet and Email Documents as HTML File with Resources"},{"content":"Another month, another release! We have recently released version 19.5 of GroupDocs.Metadata for .NET and Java and today I am going to give you an overview of what\u0026rsquo;s new that we have brought for you in the latest release.\nIn v19.5, we mainly focused on providing the support of some major as well as popular formats. So, this resulted in the addition of the following file formats:\nPPS - The PowerPoint Slideshow file format that is created using Microsoft PowerPoint and it is used for the slide show purpose. It is similar to the PPT format, however, unlike PPT, the presentation mode starts automatically when the PPS file is opened. PPSX - An updated version of the PPS format that was supported by Microsoft PowerPoint 97-2003 versions. PPSM - It represents a Macro-enabled Slide Show file format that is created with Microsoft PowerPoint 2007 or higher for running the slideshow. vCard - Or VCF (Virtual Card Format) is a digital format that is used to store the contact information. It is a popular and widely used file format for information exchange. The PPS, PPSX and PPSM file formats will be accessed in the same way that you have been using for other presentation formats using PptFormat class. For the vCard format, we have introduced VCardFormat class and this is how you can access the properties of a .vcf file.\nC#\nJava\nNot only this but we have also added the feature of checking the amount of credits that are spent using the metered license.\nC#\nJava\nWell, that\u0026rsquo;s it from my side and now, it\u0026rsquo;s your turn to evaluate these features by downloading and using the latest version of the APIs. In case of any confusion or query, please feel free to post on our forum.\n","permalink":"https://blog.groupdocs.com/metadata/access-metadata-properties-from-pps-ppsx-ppsm-and-vcard-formats/","summary":"Another month, another release! We have recently released version 19.5 of GroupDocs.Metadata for .NET and Java and today I am going to give you an overview of what\u0026rsquo;s new that we have brought for you in the latest release.\nIn v19.5, we mainly focused on providing the support of some major as well as popular formats. So, this resulted in the addition of the following file formats:\nPPS - The PowerPoint Slideshow file format that is created using Microsoft PowerPoint and it is used for the slide show purpose.","title":"Access Metadata Properties from PPS, PPSX, PPSM, and vCard Formats"},{"content":"EnableCaching feature stores image representation of a document in a directory at the local drive. In case of repetitive processing/opening of a document, it uses cached data. This thing helps to avoid the processing of the same document again and again. You might be waiting for this feature. The wait is over now. GroupDocs.Annotation for Java 19.5 permits you to enable cache mode and cache page previews. Let\u0026rsquo;s take a overview of its code.\nWe also added possibility to display distance annotation caption for following file formats:\nSlides Cells Diagrams Following older formats for Slides, Cells and Words are now supported:\n.ppt .xls .doc Along with new features, this release also covers some improvements and bug fixes. As an improvement we refactored PdfToPngSaver and AnnotationHandler classes.\nMoreover, we added additional parameters to ImageOptions for more flexible retrieval of pages.\nParameter for getting pages without annotation Retrieve the range of pages Retrieve only specific count of pages Given below are some of the major bug fixes.\nLine width not set in Slides Issue when opening protected with password documents Exception occurred while remove annotations from .xls file Download our open-source example project here and explore API documentation here.\n","permalink":"https://blog.groupdocs.com/annotation/cache-page-previews-in-groupdocs.annotation-for-java/","summary":"EnableCaching feature stores image representation of a document in a directory at the local drive. In case of repetitive processing/opening of a document, it uses cached data. This thing helps to avoid the processing of the same document again and again. You might be waiting for this feature. The wait is over now. GroupDocs.Annotation for Java 19.5 permits you to enable cache mode and cache page previews. Let\u0026rsquo;s take a overview of its code.","title":"Cache Page Previews in GroupDocs.Annotation for Java"},{"content":"Metadata signature is a convenient way to sign documents using metadata properties. In GroupDocs.Signature for .NET 18.9, we introduced the feature of signing the PDF documents using various metadata properties including:\nAuthor CreateDate MetadataDate CreatorTool ModifyDate Producer Entry Keywords Title Subject Description Creator You can set all or some of the above-mentioned properties while signing the documents. Since these are the built-in properties, you can only add/update their value.\nThere could be a situation when the built-in metadata properties may not fulfill your requirements and you may want to use your own set of properties to add metadata signatures. In this case, there should be some way to define and use custom objects as metadata signatures. Well, I am pleased to tell you that this is now possible using the latest version of GroupDocs.Signature for .NET.\nSince version 19.4, we have added the feature of signing PDF documents using custom metadata objects. You can define the custom classes that may contain the data members of your choice. You can then use the objects of these classes for the metadata signatures. The following is an example of the custom class.\nThe following code snippet shows how to use the custom class to add the metadata signature.\nWell, this is not enough and I have something more interesting for you. The values of these custom metadata properties appear as plain text and they can easily be accessed and understood by anyone.\nTo avoid any unauthorized usage of the metadata values, we have introduced a mechanism of encryption/decryption. For this, we have added DataEncryption property to PdfMetadataSignature class and this is how you can apply encryption to the custom metadata objects:\nThis is surely a valuable addition to the API features which can give you more control over the metadata signature. So why not download the latest version and integrate this feature in your e-signing application?\nIn case you would have any queries or suggestions, let\u0026rsquo;s have a conversation over our forum.\n","permalink":"https://blog.groupdocs.com/signature/define-and-use-custom-objects-for-pdf-metadata-signature/","summary":"Metadata signature is a convenient way to sign documents using metadata properties. In GroupDocs.Signature for .NET 18.9, we introduced the feature of signing the PDF documents using various metadata properties including:\nAuthor CreateDate MetadataDate CreatorTool ModifyDate Producer Entry Keywords Title Subject Description Creator You can set all or some of the above-mentioned properties while signing the documents. Since these are the built-in properties, you can only add/update their value.\nThere could be a situation when the built-in metadata properties may not fulfill your requirements and you may want to use your own set of properties to add metadata signatures.","title":"Define and Use Custom Objects for PDF Metadata Signature"},{"content":"WMF is a Windows MetaFile that can contain both vector and bitmap image information. We added support of WMF file format along-with few others in GroupDocs.Conversion for .NET 19.5. You can now convert any supported file format to WMF. Along-with WMF, convert supported documents to EMF.\nConvert to EMF\nConvert to WMF\nMoreover, you can now pay royalties for the use of the API. Yes, metered licensing is now enabled.\nNew file formats you can convert from:\nDIB XLT POT In this release, we also removed obsolete property JpegQuality from ImageSaveOptions.\nWe\u0026rsquo;d recommend you to download latest version of the API and share your feedback.\n","permalink":"https://blog.groupdocs.com/conversion/implement-conversion-to-wmf-format/","summary":"WMF is a Windows MetaFile that can contain both vector and bitmap image information. We added support of WMF file format along-with few others in GroupDocs.Conversion for .NET 19.5. You can now convert any supported file format to WMF. Along-with WMF, convert supported documents to EMF.\nConvert to EMF\nConvert to WMF\nMoreover, you can now pay royalties for the use of the API. Yes, metered licensing is now enabled.","title":"Implement Conversion to WMF Format"},{"content":"Footnote appears at bottom of the page and used to cite information. Previously, API was not comparing Footnotes correctly. But with the release of GroupDocs.Comparison for .NET 19.5, we fixed this issue. Please have a glance.\nBut this is not it we have a lot more to tell you. Along with bug fixes, some features and improvements are also introduced.\nLets talk about new features first. Did you ever think of getting coordinates of document changes or differences? It could be confusing at first but let me elaborate this. In your output or resultant document, you get every detail of inserted, deleted or style changed items. What else you can get now is the coordinate details where changes or differences actually occurred. Currently this feature is supported for only PDF, Slide and Diagram formats.\nTo use this feature you should specify CalculateComponentCoordinates property in ComparisonSettings.\nLet\u0026rsquo;s see a complete use-case.\nComing to the second feature, its about DocumentInfo. This class contains following properties:\nNumberOfPages (read only) - count of document pages PagesData (read only) - list of PageInfo classes PageInfo class contains following properties:\nWidth - the width of page Height - the height of page Following are the improvements:\nChange detection in tables for Word documents Error handling improvements for all the formats Major Bug Fixes\nCan\u0026rsquo;t get images for HTML files Incorrect difference info in PDF Font detection exception Word separation exception We\u0026rsquo;d recommend you to download latest release of the API and enhance your document comparison experience.\n","permalink":"https://blog.groupdocs.com/comparison/footnote-comparison-issue-is-resolved/","summary":"Footnote appears at bottom of the page and used to cite information. Previously, API was not comparing Footnotes correctly. But with the release of GroupDocs.Comparison for .NET 19.5, we fixed this issue. Please have a glance.\nBut this is not it we have a lot more to tell you. Along with bug fixes, some features and improvements are also introduced.\nLets talk about new features first. Did you ever think of getting coordinates of document changes or differences?","title":"Footnote Comparison Issue is  Resolved"},{"content":"The Portable Document Format (PDF) is a file format to present documents, including text formatting and images, in a manner independent of the application software, hardware, and operating systems. Based on the PostScript language, each PDF file encapsulates a complete description of a fixed-layout flat document, including the text, fonts, vector graphics, raster images and other information needed to display it.\nThis post demonstrates the usage of the GroupDocs.Viewer APIs (GroupDocs.Viewer for .NET and GroupDocs.Viewer for Java) to render the supported file formats as PDF documents.\nHow to Render Using GroupDocs.Viewer Both the viewer handlers (ViewerHtmlHandler,ViewerImageHandler) provide an overloaded method GetPdfFile() which accepts the document name as parameter and returns FileContainer. The File stream can be fetched from the Stream property of the FileContainer in order to save the resultant document on the disk.\nThe following code snippet shows the way to render a word document as PDF:\nJava lovers can write the code like following:\nAdd Print Action while Rendering as PDF A Print Action is an option to appear the print popup when open the PDF document in Adobe reader. The popup will appear like below screenshot:\nThe below given steps can be followed, in order to add print action in the resultant PDF document.\nCreate/initialize PdfFileOptions object Set Transformations property of PdfFileOptions to Transformation.AddPrintAction Call htmlHandler.GetPdfFile method The .NET code snippet will look like:\nThe Java code can be written as:\nThe complete ready to run code sample is available on GitHub.\nThe .NET guys can visit here The code sample for Java lovers is available here ","permalink":"https://blog.groupdocs.com/viewer/rendering-documents-as-pdf/","summary":"The Portable Document Format (PDF) is a file format to present documents, including text formatting and images, in a manner independent of the application software, hardware, and operating systems. Based on the PostScript language, each PDF file encapsulates a complete description of a fixed-layout flat document, including the text, fonts, vector graphics, raster images and other information needed to display it.\nThis post demonstrates the usage of the GroupDocs.Viewer APIs (GroupDocs.","title":"Rendering Documents as PDF"},{"content":"In this post, we share how we conducted our 2019 GroupDocs Pricing Review.\nLast month we shared the news about GroupDocs 2019 pricing change. Our aim behind that change was simple: to make sure we are delivering the best value Document Management API suite on the market.\nEach year we review our pricing and licensing model to make sure we\u0026rsquo;re continually giving developers the functionality and flexibility they need. Providing top quality APIs at fair prices along with permissive licensing models.\nHow we conducted the review\nFor this review we gathered a list Vendors in the \u0026ldquo;.NET Document Viewer\u0026rdquo; space, ensured they had approximately comparable functionality to GroupDocs.Viewer for .NET and Java and measured the value that developers can get from each API vendor on our list.\nMany vendors offer only a small subset of the vast feature-set offered inside GroupDocs.Total. So when performing our review we couldn\u0026rsquo;t measure a true \u0026ldquo;like-for-like\u0026rdquo; comparison. As such, for this review we focused on a single product and looked at 9 other vendors that offered a .NET document viewer.\nPricing Comparison\nPurely from a pricing perspective, comparing GroupDocs\u0026rsquo; Developer OEM license type at $2997 USD, we found that GroupDocs was the 3rd lowest priced solution on the market.\nVendor\nCost for Equivalent OEM style license ($ USD)\nVendor A\n-\n$35940\nVendor B\n-\n$7400\nVendor C\n-\n$5499\nVendor D\n-\n$5000\nVendor E\n-\n$4995\nVendor F\n-\n$4719\nVendor G\n-\n$2999\nGroupDocs\n-\n$2997\nVendor H *\n-\n$1995\nVendor I **\n-\n$1499\n* This vendors Viewer only supports viewing PDF files\n** This vendors Viewer is only supported on Silverlight and WPF\nAs well as being the most competitively priced API, our pricing starts at only $999, so the review doesn\u0026rsquo;t take our introductory, Developer Small Business license into account.\nWhat Does A GroupDocs License Get You?\nFrom a licensing perspective, our Developer OEM license offers:\nCategory leading functionality 12 month subscription included - On average, products get updates each month, delivering bug fixes and new features. Free Support - Dedicated support teams, also available during free trials. Paid Support options are available. Deployment to unlimited servers - No per server licensing. No extra cost for deployment to staging, build or backup servers. Simple to understand, per developer licensing Ability to upgrade single product purchases to GroupDocs.Total. Conclusion\nGroupDocs offers incredible value for money, market leading functionality, great licensing terms, free support and future proofing through free monthly updates.\nIf you\u0026rsquo;re looking into Document Manipulation API\u0026rsquo;s and you’re not evaluating GroupDocs, get in touch with our Sales Team or Support Team and we’ll be happy to discuss your needs.\n","permalink":"https://blog.groupdocs.com/total/groupdocs-pricing-review-2019/","summary":"In this post, we share how we conducted our 2019 GroupDocs Pricing Review.\nLast month we shared the news about GroupDocs 2019 pricing change. Our aim behind that change was simple: to make sure we are delivering the best value Document Management API suite on the market.\nEach year we review our pricing and licensing model to make sure we\u0026rsquo;re continually giving developers the functionality and flexibility they need. Providing top quality APIs at fair prices along with permissive licensing models.","title":"GroupDocs Pricing Review 2019"},{"content":"\rUsually, when we have to shop for groceries, we choose the supermarket where we can get almost every item that we need. This way we don\u0026rsquo;t have to visit multiple stores for different types of products. Similarly, being specific to the software products, the developers prefer the component that provides a wide range of features regarding their use case so that they don\u0026rsquo;t have to use multiple solutions.\nLet\u0026rsquo;s be more specific and talk about the online document viewers that are becoming more popular in modern days because of their ability to display the files within the applications without any need of dedicated software programs. Most of the time, the developers want to use an all-in-one document viewer component that can display a wide range of file formats. Thus, they can avoid using multiple components to provide support for multiple file formats.\nWhat if I tell you that it\u0026rsquo;s now possible to have a document viewer that supports 95+ file formats?\nYes, you read it absolutely correct. In the latest release of GroupDocs.Viewer for .NET, we have added the support of 4 new file formats that are listed below.\nDevice Independent Bitmap (.dib) Microsoft PowerPoint Template (.pot) Electronic Business Card (.vcard) Bzip2 Compressed File (.bz2) With this addition, the API now supports 95+ file formats and we have the eye on completing our century soon.\nSo, let\u0026rsquo;s not wait and use this powerful API for integrating an all-in-one document viewer component in your application. For more news and updates, stay tuned to our blog and keep posting to our forum.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs.viewer-for-.net-now-supports-95-file-formats/","summary":"Usually, when we have to shop for groceries, we choose the supermarket where we can get almost every item that we need. This way we don\u0026rsquo;t have to visit multiple stores for different types of products. Similarly, being specific to the software products, the developers prefer the component that provides a wide range of features regarding their use case so that they don\u0026rsquo;t have to use multiple solutions.\nLet\u0026rsquo;s be more specific and talk about the online document viewers that are becoming more popular in modern days because of their ability to display the files within the applications without any need of dedicated software programs.","title":"GroupDocs.Viewer for .NET now supports 95+ file formats!"},{"content":"You might be wondering if there would be more annotation types. The wait is over, we\u0026rsquo;ve introduced Link Annotation in GroupDocs.Annotation for .NET 19.4. With the passage of time we\u0026rsquo;ll introduce more annotations. Currently, Link Annotation is supported for PDF, Slides and Word documents only. Let\u0026rsquo;s see the minimal set of fields required for Link Annotation.\nThere is one improvement and few bug fixes introduced as well. Previously,\nGetPdfFile method was not processing password protected documents. Now, if you need to process password protected documents you should pass an extra parameter for GetPdfFile method.\nFollowing are the major bug fixes:\nAnnotations were not removing from Cell documents Password protected documents were not converted to PDF GetPdfFile method was returning broken file ImportAnnotations method was not closing source stream for Tiff files Download and implement various types of annotations programatically in documents. See documentation of link and various other annotation types in developer guide section.\n","permalink":"https://blog.groupdocs.com/annotation/implement-link-annotation-in-pdf-documents/","summary":"You might be wondering if there would be more annotation types. The wait is over, we\u0026rsquo;ve introduced Link Annotation in GroupDocs.Annotation for .NET 19.4. With the passage of time we\u0026rsquo;ll introduce more annotations. Currently, Link Annotation is supported for PDF, Slides and Word documents only. Let\u0026rsquo;s see the minimal set of fields required for Link Annotation.\nThere is one improvement and few bug fixes introduced as well. Previously,\nGetPdfFile method was not processing password protected documents.","title":"Implement Link Annotation in PDF Documents"},{"content":"Here we are with another release of GroupDocs.Conversion for .NET 19.4. We\u0026rsquo;ve implemented automatic naming when saving a converted document to file. Do you want to convert a CMX (Corel Metafile eXchange) file to PDF or any other supported file format? Then you must try out this release.\nWe also improved the process of getting page orientation for a specific page\nObsolete Methods CellsLoadOptions is marked as obsolete and is replaced by SpreadsheetLoadOptions CellsSaveOptions is replaced by SpreadsheetSaveOptions HtmlSaveOptions is replaced by MarkupSaveOptions See more details here.\nBug Fixes In this release, we fixed some major bugs. Let\u0026rsquo;s have a overview.\nYou might be facing issue in opening resultant/converted HTML file in Microsoft Edge? However, this issue is now fixed There was another issue with ODP output file. Arrows in the file star pointing in wrong direction. This bug is fixed Diagrams to image conversion issue is fixed Have a glance at API documentation here.\n","permalink":"https://blog.groupdocs.com/conversion/autocad-to-image-conversion-issue-is-fixed/","summary":"Here we are with another release of GroupDocs.Conversion for .NET 19.4. We\u0026rsquo;ve implemented automatic naming when saving a converted document to file. Do you want to convert a CMX (Corel Metafile eXchange) file to PDF or any other supported file format? Then you must try out this release.\nWe also improved the process of getting page orientation for a specific page\nObsolete Methods CellsLoadOptions is marked as obsolete and is replaced by SpreadsheetLoadOptions CellsSaveOptions is replaced by SpreadsheetSaveOptions HtmlSaveOptions is replaced by MarkupSaveOptions See more details here.","title":"AutoCAD to Image Conversion Issue is Fixed"},{"content":"Hello everyone! We are back with another exciting release announcement. In this post, I am going to give you an overview of what\u0026rsquo;s new as well as what\u0026rsquo;s improved and fixed in the latest release of GroupDocs.Viewer for .NET. In this release, we majorly focused on providing bug fixes and improvements. Along with this, we have introduced the support of CDR file format and the feature of rendering files contained in the ZIP archives. For details, you may also have look at the release notes.\nFirst, let\u0026rsquo;s have a walk through the new features that we introduced in the latest release.\nSupport of CDR File Format We have added the support of CDR file format that is a vector graphics file to store the images and it is used by CorelDRAW software.\nGetting and Rendering Files from ZIP Archives In the previous blog, we demonstrated how you can get the list of files, folders and the subfolders enclosed in a ZIP archive. Now, its time to go one step ahead and render the files contained in the ZIP archives. With the latest release, you can get the files located in the root as well as in a folder of the archive. The following code snippet shows how we can get and then render the files as attachments from an archive.\nIsn\u0026rsquo;t it easier than you expected before reading this blog? Let\u0026rsquo;s not stop here and move forward to what has been fixed and improved in the latest release.\nImportant Bug Fixes and Improvements In addition to the new features we have discussed above, we fixed a number of issues that were found in the previous releases as well as introduced a couple of improvements. The list includes:\nException: Value does not fall within the expected range Some characters are missing when rendering PDF as Html Invalid Printable HTML for MS Project documents with several pages Missing characters when rendering PDF document as HTML License is not applied in Unit Test project ArchiveDocumentInfoContainer.Folders doesn\u0026rsquo;t return the list of folders Values in the form fields are missing when rendering PDF into HTML First page of ODT documents is not rendering Metered related exception when License is initialized with other GroupDocs products Extended support for ViewerConfig.FontDirectories setting to vector image formats Improved rending attachments from password protected zip archives Now, it\u0026rsquo;s time to enhance and upgrade your application with the features offered by the latest release of GroupDocs.Viewer for .NET. You may also evaluate the API features by downloading or cloning the complete examples project from GitHub repository.\nAs always, we would love to hear your suggestions at our forum. Cheers!\n","permalink":"https://blog.groupdocs.com/viewer/render-files-contained-in-zip-archive-using-groupdocs.viewer-for-.net-19.4/","summary":"Hello everyone! We are back with another exciting release announcement. In this post, I am going to give you an overview of what\u0026rsquo;s new as well as what\u0026rsquo;s improved and fixed in the latest release of GroupDocs.Viewer for .NET. In this release, we majorly focused on providing bug fixes and improvements. Along with this, we have introduced the support of CDR file format and the feature of rendering files contained in the ZIP archives.","title":"Render Files Contained in ZIP Archive using GroupDocs.Viewer for .NET 19.4"},{"content":"At GroupDocs, we\u0026rsquo;re always on the lookout for new ways to deliver the best possible value to our customers.\nWe rarely increase our pricing and pride ourselves on our fair licensing policies, cutting edge Metered subscription models and flexible installment payment plans.\nToday we\u0026rsquo;re announcing two further changes that our customers can take advantage of from the 1st of May 2019:\nGroupDocs Pricing Update\nWe’ve updated GroupDocs pricing to deliver the best value Document Manipulation API suite on the market. Use GroupDocs APIs to build awesome experiences for your users.\nFrom the 1st of May 2019, All individual GroupDocs APIs will be priced from only $999 and GroupDocs.Total will start from just $2999.\nGet started today – download a trial from GroupDocs.com\nIntroducing Conholdate.Total\nIntroducing Conholdate.Total – Every GroupDocs \u0026amp; Aspose API in one ultimate API bundle.\nWe’re also extending this pricing update to our Conholdate.Total bundle.\nGet ALL GroupDocs \u0026amp; Aspose APIs in our Conholdate.Total suite for a single, incredible price.\nConholdate.Total starts at only $3999, so, for only $1000 over the price of a GroupDocs.Total or Aspose.Total Developer Small Business license you can get EVERY GroupDocs and Aspose API AND free upgrades for a year.\nGet started by visiting Conholdate.com\n","permalink":"https://blog.groupdocs.com/total/groupdocs-may-2019-pricing-update/","summary":"At GroupDocs, we\u0026rsquo;re always on the lookout for new ways to deliver the best possible value to our customers.\nWe rarely increase our pricing and pride ourselves on our fair licensing policies, cutting edge Metered subscription models and flexible installment payment plans.\nToday we\u0026rsquo;re announcing two further changes that our customers can take advantage of from the 1st of May 2019:\nGroupDocs Pricing Update\nWe’ve updated GroupDocs pricing to deliver the best value Document Manipulation API suite on the market.","title":"GroupDocs May 2019 Pricing Update"},{"content":"Image previews are now commonly used to present your file/document to the users. It is quite useful when you want the users to quickly have a look at your document without downloading or opening it. As an example, MS Windows has this ability to provide the preview of the files in the preview pane of File Explorer without opening the document in the dedicated software program.\nDid you ever desire to have the ability to generate image previews in your application? If yes then it is the time to embed this feature in your application with a few lines of code using GroupDocs.Metadata.\nSo, let\u0026rsquo;s have a look at how to generate image previews for the documents.\nWe have introduced PreviewHandler class in the GroupDocs.Metadata for .NET and Java to get the document pages in the form of images. Using PreviewHandler you can access and select the document page(s), either a single page or all pages, that you want to render as image. Below are the code snippets that generate the images of the pages in a Word document.\nC#\nJava\nAt the moment, we have launched this feature for the following documents:\nPDF documents Presentations Spreadsheets Word processing documents Vision diagrams OneNote documents Images Let\u0026rsquo;s not wait and try out this amazing feature by downloading the latest version of GroupDocs.Metadata for .NET and Java. You can explore and evaluate the API features by cloning/downloading the examples from the GitHub repository.\nIn case you would have any questions or suggestions, we would love to have a conversation with you on our forum.\n","permalink":"https://blog.groupdocs.com/metadata/generate-image-preview-of-the-documents/","summary":"Image previews are now commonly used to present your file/document to the users. It is quite useful when you want the users to quickly have a look at your document without downloading or opening it. As an example, MS Windows has this ability to provide the preview of the files in the preview pane of File Explorer without opening the document in the dedicated software program.\nDid you ever desire to have the ability to generate image previews in your application?","title":"Generate Image Preview of the Documents"},{"content":"Big News! We are going to launch GroupDocs.Redaction API for Java platform very soon. Similar to the .NET version, GroupDocs.Redaction for Java would be a backend API for removing sensitive and classified information from the popular document formats. As far as the supported features are concerned, this is going to be a replica of GroupDocs.Redaction for .NET. Through this API, we aim to provide you a single, format-independent interface containing a set of redaction methods to redact text, metadata, and annotations.\nLet\u0026rsquo;s have a look at the salient features that you are going to get in the first version of GroupDocs.Redaction for Java.\nExact Phrase Text Redaction\nCase-Sensitive Exact Phrase Text Redaction\nText Redaction with Colored Rectangle\nText Redaction using Regular Expression\nSupport of region redactions for image files\nMetadata Redaction\nSearching and Filtering Metadata for Redaction\nAnnotation Redaction\nRemoval of Sensitive Information from Annotation\nDocument Format Detection\nDetailed Redaction Logging\nSaving File in Original Format\nSaving File as a Rasterized PDF\nAbility to specify a set of redaction rules (policy) in an XML file\nYou are going to get the above-mentioned features for the following document formats:\nPDF (.pdf) MS Word (.doc, .docx, .dot, .odt, .dotx, .docm, .dotm, .rtf) MS Excel (.xls, .xlsx, .xlt, .xltx, .xlsm, .xltm, .csv) MS PowerPoint (.ppt, .pptx, .pps, .ppsx, .potx, .pptm, .ppsm, .potm) Images (.jpg, .jpeg, .bmp, .png, .gif, .tiff, .tif) Now, you might be interested in when you would get the first version of GroupDocs.Redaction for Java. Well, we won\u0026rsquo;t let you wait for enough because:\n“Sometimes waiting is the hardest thing.”\nDean Koontz\nAt the moment, we are finalizing the first release of GroupDocs.Redaction for Java and hoping that you will be able to grab it very soon. Please stay tuned to our blog for more news and updates.\n","permalink":"https://blog.groupdocs.com/redaction/upcoming-release-of-groupdocs.redaction-for-java/","summary":"Big News! We are going to launch GroupDocs.Redaction API for Java platform very soon. Similar to the .NET version, GroupDocs.Redaction for Java would be a backend API for removing sensitive and classified information from the popular document formats. As far as the supported features are concerned, this is going to be a replica of GroupDocs.Redaction for .NET. Through this API, we aim to provide you a single, format-independent interface containing a set of redaction methods to redact text, metadata, and annotations.","title":"Upcoming Release of GroupDocs.Redaction for Java"},{"content":"Its time to augment your document conversion experience. You will be pleased to hear the new features, improvements and bug fixes that we\u0026rsquo;r going to elaborate in this blog post. Did you ever think of converting and rotating a document at the same time? We make your wish come true with this month\u0026rsquo;s release of GroupDocs.Conversion for Java 19.4.\nYou can now set page rotation angle when converting to a PDF or Image format. And it only takes a single line of code.\nWe implemented following new properties:\nsetRotate(PdfSaveOptions.Rotation.On90) setRotateAngle(45) Rotation Feature when Converting to Image Format We enriched ImageSaveOptions class with a new property that takes rotation angle value as parameter.\nRotation when Converting to PDF PdfSaveOptions class covers a new property that takes PdfSaveOptions.Rotation enumeration.\nMore File Formats and Font Substitution Options Some new document formats are also introduced. Like you can do conversion from EPS, TSV, PCL. API also permits to set default font and font substitution option when converting from .one file.\nMeasure Conversion Time Can we measure or track time for a document conversion? You might be thinking of such a feature. Because its appealing. Therefore, we\u0026rsquo;ve introduced this in current release. Let\u0026rsquo;s have a look at its implementation.\nInclude Hidden Slides in Converted Document Yes, this is absolutely right. We\u0026rsquo;ve implemented a property setShowHiddenSlides using that you can decide either to convert or skip hidden slides when converting a Slide document.\nImprovements We always introduce improvements for better usability. This release covers following improvements.\nHideWordTrackedChanges option to WordsLoadOptions class HidePdfAnnotations option to PdfLoadOptions class HideComments option to CellsLoadOptions, SlidesLoadOptions and WordsLoadOptions class Bug Fixes We listen your feedback carefully and make sure to fix the disruptions that you face. Spreadsheets are one of the best way to represent data. Most of the time you add graphs in it. Previously, API was not converting spreadsheets with graphs properly. It was not showing complete data. However, this issue is now fixed.\nWidth and Height not Working Furthermore, there was no impact of width and height in the output that you set in ImageSaveOptions. This issue is also now resolved.\nWill we get PasswordProtectedException? Yes, we fixed obfuscation config for com.groupdocs.conversion.exceptions package. You will now get proper exception on processing a password protected document without applying password. Eventually, this exception could be then handled.\nTo learn more about API integration and usage check out the docs here. To see the implementation and functionalities, check out the GitHub repository.\n","permalink":"https://blog.groupdocs.com/conversion/implement-page-rotation-when-converting-to-pdf/","summary":"Its time to augment your document conversion experience. You will be pleased to hear the new features, improvements and bug fixes that we\u0026rsquo;r going to elaborate in this blog post. Did you ever think of converting and rotating a document at the same time? We make your wish come true with this month\u0026rsquo;s release of GroupDocs.Conversion for Java 19.4.\nYou can now set page rotation angle when converting to a PDF or Image format.","title":"Implement Page Rotation when Converting to PDF"},{"content":"We try our best to provide minimal yet appropriate solutions to our customers. Hence, in this month\u0026rsquo;s release of GroupDocs.Annotation for .NET 19.3 you will observe some new \u0026ldquo;easy-to-implement\u0026rdquo; features. Lets start with ellipse annotation. You might be looking for it, we\u0026rsquo;ve now added its support for different document formats.\nEllipse Annotation GroupDocs.Annotation for .NET 19.3 provides GetThumbnail method for PageImage class, that helps you in getting thumbnails of PDF document pages.\nGet Thumbnails You\u0026rsquo;ll be glad to hear that multipage TIFF file can be processed by API. Have a glance at release notes.\nBug Fixes Now coming to your issues, we\u0026rsquo;ll discuss some major fixes introduced in this release. There was issue in applying PenWidht and PenColor properties but now this is fixed.\nAnnotationImageHandler.GetDocumentInfo exception while evaluating API in trial mode is now resolved. API now closes stream when you import annotations for Images. Lastly, issue in setting comments to shapes in Slides is fixed.\nLearn more about API integration and usage check out the docs here.\n","permalink":"https://blog.groupdocs.com/annotation/add-ellipse-annotation-in-slides/","summary":"We try our best to provide minimal yet appropriate solutions to our customers. Hence, in this month\u0026rsquo;s release of GroupDocs.Annotation for .NET 19.3 you will observe some new \u0026ldquo;easy-to-implement\u0026rdquo; features. Lets start with ellipse annotation. You might be looking for it, we\u0026rsquo;ve now added its support for different document formats.\nEllipse Annotation GroupDocs.Annotation for .NET 19.3 provides GetThumbnail method for PageImage class, that helps you in getting thumbnails of PDF document pages.","title":"Add Ellipse Annotation in Slides"},{"content":"GroupDocs.Comparison for Java 19.3 rolls out with major bug fixes. When password protected files were compared, result was null. This might be a showstopper for you but not anymore.\nMoving ahead, comparing a PDF with itself was not working, result was null. We fixed this issue.\nMost importantly, MultiCompare was also returning null. Code below explains how it works.\nYou can compare a source file with multiple target files. Sounds appealing, isn\u0026rsquo;t it? Don\u0026rsquo;t wait, download the latest release and implement this feature.\nYou can download the API here. Explore documentation and our open source example projects.\n","permalink":"https://blog.groupdocs.com/comparison/password-protected-files-comparison-issue-is-resolved/","summary":"GroupDocs.Comparison for Java 19.3 rolls out with major bug fixes. When password protected files were compared, result was null. This might be a showstopper for you but not anymore.\nMoving ahead, comparing a PDF with itself was not working, result was null. We fixed this issue.\nMost importantly, MultiCompare was also returning null. Code below explains how it works.\nYou can compare a source file with multiple target files. Sounds appealing, isn\u0026rsquo;t it?","title":"Password Protected Files Comparison Issue is Resolved"},{"content":"With our latest release of GroupDocs.Convesion for .NET 19.3, some new properties are introduced in ImageSaveOptions class. When converting to a Image format you can now always set brightness and contrast. API permits you to do mirror-reversal across a horizontal/vertical axis using FlipMode property. Based on your feedback, we resolved some previously logged issues and improved document conversion experience. Such as, image quality is improved when converting to a WebP format. Furthermore, JpegQuality issue is now resolved for PDF to JPEG conversion.\nNew Properties in ImageSaveOptions FlipMode offers horizontal, vertical, horizontal and vertical at the same time or no Flip at all. Control gamma correction, brightness and contrast when converting to a image format.\nFix - ImageSaveOptions.JpegQuality Issue You can select desired image quality when converting to JPEG format. Quality scale must be between 0 and 100. Previously, despite of setting JpegQuality to any value (0-100), API was not reflecting any change in the output. This issue is now fixed.\nGroupDocs.Conversion for .NET 19.3 is now available to download. Let us know what you think by sending feedback!\n","permalink":"https://blog.groupdocs.com/conversion/set-flip-mode-when-converting-to-a-image-format/","summary":"With our latest release of GroupDocs.Convesion for .NET 19.3, some new properties are introduced in ImageSaveOptions class. When converting to a Image format you can now always set brightness and contrast. API permits you to do mirror-reversal across a horizontal/vertical axis using FlipMode property. Based on your feedback, we resolved some previously logged issues and improved document conversion experience. Such as, image quality is improved when converting to a WebP format.","title":"Set Flip Mode when Converting to a Image Format"},{"content":"PDF is a widely used document format that also supports interactive elements including annotations, forms, 3D objects, layers, etc. Along with these elements, PDF format also supports setting restrictions such as print restriction, modification restriction, restrictions on data extraction and so on. Such features give the user more control over the document and therefore, the PDF has become a popular document format.\nSince we support the rendering of PDF documents, therefore, we always keep looking to introduce features that may give you more information about the documents. Hence, we provided the detection of print restriction in the PDF documents in GroupDocs.Viewer for Java 19.3.\nWell, we have made it quite easy for you to detect print restrictions in a PDF document. The following code snippet shows how to get this information using getDocumentInfo() method:\nNot only this, but we have also extended the list of our supported document formats with the addition of the following formats in v19.3:\nTSV (Tab-separated values) PCL (Printer command language) Well, these could be the interesting additions in the API for you. If yes, let\u0026rsquo;s not wait and download the latest version of GroupDocs.Viewer for Java. To evaluate the API features, you may clone and explore the examples project from GitHub repository. In case you want to share your reviews, concerns or feedback, we welcome you on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/detect-print-restriction-in-pdf-documents-using-groupdocs.viewer-for-java-19.3/","summary":"PDF is a widely used document format that also supports interactive elements including annotations, forms, 3D objects, layers, etc. Along with these elements, PDF format also supports setting restrictions such as print restriction, modification restriction, restrictions on data extraction and so on. Such features give the user more control over the document and therefore, the PDF has become a popular document format.\nSince we support the rendering of PDF documents, therefore, we always keep looking to introduce features that may give you more information about the documents.","title":"Detect Print Restriction in PDF Documents using GroupDocs.Viewer for Java 19.3"},{"content":"\rWe are happy to announce the release of version 19.3 of GroupDocs.Viewer for .NET. In this release, we have added several new features that target the PDF documents, archives and the source code files of Visual Basic and C#. Along with 2 bug fixes, we have made a couple of improvements for rendering of ZIP archives and vCard documents. For detailed information about the latest release, please have a look at the release notes.\nWhat\u0026rsquo;s New in this Release? Setting Passwords and Permissions for PDF Documents PDF format allows setting the Owner password and the User password to restrict access to the document. The Owner password is used to change the permissions of the document whereas the User password is required when opening a PDF document. Along with the passwords, PDF format supports setting permissions such as allow or deny printing, modification and data extraction. In this release, we have added the support of setting the Owner password, User password, and the file permissions while rendering the document into PDF.\nThe following is a simple way to create and use the PDF file\u0026rsquo;s security options using GroupDocs.Viewer for .NET:\nWorking with Folders within the Archives In the previous version, we introduced the support of rendering archive documents. The rendering of archive documents shows a list of the items (files and folders) located in the root of the archive. In the latest release, we have made it possible to get the list of the folders within the archive and render the content from those folders. The following sections demonstrate how to work with the folders located in an archive document.\nGetting List of Folders within an Archive The following code snippet shows how to get the list of folders within an archive:\nGetting List of Folders in a Specific Folder There might be the case when you have sub-folders within a folder located in the root of the archive. In that case, to get the list of sub-folders you can simply specify the folder name in ArchiveOptions.FolderName property of HtmlOptions/ImageOptions class.\nRendering Specified Folder within Archive To render the content of a folder, simply specify the folder name in\nArchiveOptions.FolderName property and call GetPages function as shown in the following code snippet.\nSupport of Visual Basic (.vb) and C# (.cs) Files Using the latest release, you will be able to view the source code files of Visual Basic and C#. The rendering of these source code files is available in both, the HTML-based and image-based rendering.\nHaven\u0026rsquo;t Used GroupDocs.Viewer Before? In case you haven\u0026rsquo;t yet tried our API but are interested in using it, the following resources will be helpful for you to get started.\nDownload – Download GroupDocs.Viewer for .NET\nDocumentation – Product Documentation\nAPI References - Details of publicly available classes, methods, properties, constants \u0026amp; interfaces of the API\nExamples / Plugins – Source Code Examples on GitHub\nSample Front End Apps – Open Source Document Viewer Applications\nVideo Tutorials – YouTube Videos\nTechnical Support Forum – Technical Support Forum for GroupDocs.Viewer for .NET\nStay Tuned for Updates! If you don\u0026rsquo;t want to miss out any news or announcements on GroupDocs products, stay tuned to our blog and keep visiting frequently.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs.viewer-for-.net-19.3-is-released/","summary":"We are happy to announce the release of version 19.3 of GroupDocs.Viewer for .NET. In this release, we have added several new features that target the PDF documents, archives and the source code files of Visual Basic and C#. Along with 2 bug fixes, we have made a couple of improvements for rendering of ZIP archives and vCard documents. For detailed information about the latest release, please have a look at the release notes.","title":"GroupDocs.Viewer for .NET 19.3 is Released!"},{"content":"A configuration file defines the initial or commonly used parameters, options, settings or preferences applied to operating systems, infrastructure devices or applications in an IT context.\nWhen the Need Arises If you have large size data (may consist of multiple files of different file formats) or corporate sensitive data which need to be redacted without specifying the rules in your code.\nWhat is the Solution The GroupDocs.Redaction API provides the way to define a removal policy by writing the list of pre-configured redaction rules in an XML file. Hence, you do not need to specify the rules in your code. You can have as many policies, as you need to redact your documents.\nThe example of redaction policy XML file is as follows:\nHow to Apply Redaction Policy The example below shows:\nhow to apply the redaction policy to all files by giving inbound folder Save the output files to one of outbound folders The successfully updated files and failed one will save to their respected folders The current date and time is used as a part of output file name The successfully updated files and failed one will save to their respected folders The complete ready to run code sample is available on GitHub.\n","permalink":"https://blog.groupdocs.com/redaction/configurable-redaction-using-an-xml-file/","summary":"A configuration file defines the initial or commonly used parameters, options, settings or preferences applied to operating systems, infrastructure devices or applications in an IT context.\nWhen the Need Arises If you have large size data (may consist of multiple files of different file formats) or corporate sensitive data which need to be redacted without specifying the rules in your code.\nWhat is the Solution The GroupDocs.Redaction API provides the way to define a removal policy by writing the list of pre-configured redaction rules in an XML file.","title":"Configurable Redaction using an XML File"},{"content":"Yes, you heard it right. We\u0026rsquo;ve implemented ability to save document comparison results in image format as well. In this blog post we\u0026rsquo;ll review the new feature and bug fixes introduced in monthly release of GroupDocs.Comparison for .NET 19.3.1.\nLet\u0026rsquo;s talk about image representation of the document pages. The moment you save comparison results in your directory, you have a control to save results in image format as well using ICompareResult.SaveImages Method. Quite simple, isn\u0026rsquo;t it?\nThe good thing is that you just have to pass the output folder path and API will take care of conversion mechanism itself.\nIs there a way to get number of converted images? Can images be saved in separate directory?\nThe answer is yes, you can retrieve a list of converted pages and also save them in some separate directory. Let\u0026rsquo;s see full implementation of this feature.\nBug Fixes In addition to the new features, we also emphasis to improve/resolve consistency, usability and issues. We will highlight the major bug fixes below.\nSuperScript and SubScript You may be familiar with these characters. They are slightly below or above the normal line and are usually smaller than the rest of the text.\nThere was issue in SuperScript and SubScript elements in Word document. API was not processing such characters. But this issue is now resolved.\nStyleSettings is not working for HTML Let us first give you an overview of StyleSettings. Using this you can set following properties:\nBeginSeparatorString Bold EndSeparatorString Fontcolor HighlightColor Italic StrikeThrough Underline Previously, there was no impact of such properties in the output HTML.\nCan we now strikeout or change color of deleted component?\nOf course, we are pleased to inform you that you can now successfully set such properties during HTML comparison and see their impact in the resultant file.\nEndNote Comparison When we want to add reference information about a quoted material, we use Endnote. Previously, API was not considering Endnotes and there was no Endnote comparison at all. However, its fixed now. In the image below, we have source, target and resultant files. And if you see resultant file, it clearly shows a Endnote comparison.\nFurther Reading Get started with GroupDocs.Comparison for .NET Developer Guide.\nGo through the release notes in order to get more insights. Articulate your concerns or feedback on Forum.\nWe\u0026rsquo;d now recommend you to integrate latest release of the API in your project and enhance your document comparison experience.\n","permalink":"https://blog.groupdocs.com/comparison/save-document-comparison-results-in-image-format/","summary":"Yes, you heard it right. We\u0026rsquo;ve implemented ability to save document comparison results in image format as well. In this blog post we\u0026rsquo;ll review the new feature and bug fixes introduced in monthly release of GroupDocs.Comparison for .NET 19.3.1.\nLet\u0026rsquo;s talk about image representation of the document pages. The moment you save comparison results in your directory, you have a control to save results in image format as well using ICompareResult.","title":"Save Document Comparison Results in Image Format"},{"content":"In the latest version of GroupDocs.Assembly for Java we have introduced an exciting feature of Inline Syntax Error Messages. Are you thinking about what does make this feature so exciting? Well, I am going to answer it in this post.\nFirst, let\u0026rsquo;s have a brief overview of how does GroupDocs.Assembly generate the reports. GroupDocs.Assembly uses pre-defined document templates that contain the LINQ statements. These templates are evaluated, processed and then populated by API\u0026rsquo;s engine during the run-time. An exception is thrown in case something is wrong with the syntax of the LINQ statements. The exception contains the reason and the tag/expression where the error has happened.\nThis is not a big deal to find and locate the incorrect syntax in a small template with a few LINQ statements. But, how would you find the exact place of error when you are dealing with a complex template containing a number of tags and expressions?\nHere comes the usefulness of Inline Syntax Error Messages. With this feature, the API embeds the error message within the generated report at the same place where the error has occurred, as shown in the following screenshot:\nNow you may wonder how to achieve this. Well, it\u0026rsquo;s just as easy as a pie and you only need to set the options using DocumentAssembler.setOptions(\nDocumentAssemblyOptions.InlineErrorMessages) as shown in the following code snippet:.\nFor working examples, you may consult our documentation article on how to use inline error messages.\nAlright! Now you would have got the real picture of how this new feature may help you in your report generation process. So, let\u0026rsquo;s try out the API features by downloading the latest version as well as cloning and exploring the examples project from GitHub repository.\nDo you have any questions or queries? We welcome you to have a conversation with us on our forum.\n","permalink":"https://blog.groupdocs.com/assembly/embed-inline-syntax-error-messages-in-generated-reports-using-groupdocs.assembly-for-java-19.3/","summary":"In the latest version of GroupDocs.Assembly for Java we have introduced an exciting feature of Inline Syntax Error Messages. Are you thinking about what does make this feature so exciting? Well, I am going to answer it in this post.\nFirst, let\u0026rsquo;s have a brief overview of how does GroupDocs.Assembly generate the reports. GroupDocs.Assembly uses pre-defined document templates that contain the LINQ statements. These templates are evaluated, processed and then populated by API\u0026rsquo;s engine during the run-time.","title":"Embed Inline Syntax Error Messages in Generated Reports using GroupDocs.Assembly for Java 19.3"},{"content":"\rGroupDocs.Merger now supports diagram formats such as VSDFX, VSDM, VSSX, VSSM and VTX . It allows you to swap, rotate or trim pages in diagrams. Apart for that, you can also set or remove password protection of diagrams. This API comes in both Java and .NET platforms and could be integrated in any your .NET or Java application without any dependency.\nFeatures for Diagrams Format Swap Pages: This feature allows you to exchange the position of two pages in the document. Following are the lines of code which can be used to swap pages in the diagram:\nAbove lines of code are used to swap pages of following VSDX file:\nFinally, after performing swap operation on VSDX, the output looks as follows:\nMove Page: This feature allows you to change position of the pages within the document. Following are the lines of code which can be used to change order of the pages in the diagram:\nRemove Page: Using this feature you can remove single or collection of pages from the document. Following example demonstrates how to remove pages in the diagram:\nSplit Document: You can split document into several resulting documents using this feature. Following is the example to split diagram:\nTrim Document: This feature allows you to cut the specific pages of the document. Following are the lines of code which can be used to trim the diagram:\nChange Pages Orientation: This feature allows you to change pages orientation. Following code sample shows how to change orientation of the pages in the diagram:\n","permalink":"https://blog.groupdocs.com/merger/support-for-diagrams-in-groupdocs.merger/","summary":"GroupDocs.Merger now supports diagram formats such as VSDFX, VSDM, VSSX, VSSM and VTX . It allows you to swap, rotate or trim pages in diagrams. Apart for that, you can also set or remove password protection of diagrams. This API comes in both Java and .NET platforms and could be integrated in any your .NET or Java application without any dependency.\nFeatures for Diagrams Format Swap Pages: This feature allows you to exchange the position of two pages in the document.","title":"Support for Diagrams in GroupDocs.Merger"},{"content":"The Compressed files (e.g .ZIP or TAR) use file compression in order to save the disk space. Also, the compressed archive formats can be used to compress multiple files into a single archive. This post demonstrates the usage of the GroupDocs.Viewer API to render the list of files or folders from an archive file.\nRendering the List of a Folder from the Archive The GetPages method of both ViewerImageHandler and ViewerHtmlHandler renders the items from the root of archives. The following code snippet shows that how simple is to render the list of items from the root of an archive: The output of the above code snippet looks as follows: Rendering Specified Folder into Image, HTML or PDF To render a specified folder from an archive into image, html or PDF, all ImageOptions, HtmlOptions and PdfOptions classes have the ArchiveOptions.FolderName property which is used like:\nArchiveOptions.FolderName = \u0026#34;FirstLevelFolder\u0026#34;; When you need to render the list of items or folders contained in a certain folder inside the archive, set the value using \u0026lsquo;/\u0026rsquo; path delimiter character like:\nArchiveOptions.FolderName = \u0026#34;FirstLevelFolder/SecondLevelFolder\u0026#34;; The following example shows the rendering of a list of items from a folder \u0026ldquo;SecondLevelFolder\u0026rdquo; which is contained inside the \u0026ldquo;FirstLevelFolder\u0026rdquo; of the archive: If the rendering into PDF file is required, you can write the code as follows: The complete ready to run code sample is available on GitHub.\n","permalink":"https://blog.groupdocs.com/viewer/rendering-archive-documents/","summary":"The Compressed files (e.g .ZIP or TAR) use file compression in order to save the disk space. Also, the compressed archive formats can be used to compress multiple files into a single archive. This post demonstrates the usage of the GroupDocs.Viewer API to render the list of files or folders from an archive file.\nRendering the List of a Folder from the Archive The GetPages method of both ViewerImageHandler and ViewerHtmlHandler renders the items from the root of archives.","title":"Rendering Archive Documents"},{"content":"We are back with the latest release of GroupDocs.Assembly for .NET. In this post, I am going to give you an overview of the latest release including the demonstration and usage of an exciting feature. Let\u0026rsquo;s not wait and walk through what\u0026rsquo;s new in the latest release. You may also have a glance at the release notes of the latest release.\nGroupDocs.Assembly allows you to generate automated reports by populating the pre-defined document templates. The document templates contain the LINQ statements that are evaluated by GroupDocs.Assembly engine during the run-time. By default, the API throws an exception whenever some incorrect syntax is found in the template. The exception contains the reason and the tag/expression where the error has happened.\nBut, how would you find the exact place of error when you are dealing with a complex template containing a number of tags and expressions?\nNo need to worry at all. You can save your time and minimize the efforts in finding the place of error in the template using Inline Syntax Error Messages. Using the inline messages embeds the syntax error within the generated report at the same place where the error has occurred, as shown in the following screenshot:\nNow you may wonder how to achieve this. Well, it\u0026rsquo;s just a piece of cake and you only need to set DocumentAssembler.Options property to DocumentAssemblyOptions.InlineErrorMessages as shown in the following code snippet:.\nFor working examples, you may consult our documentation article on how to use inline error messages.\nEnhancements in v19.3 Along with the aforementioned feature, we have added a couple of enhancements in the latest release. These enhancements allow you to use null values for image tag and doc tag expressions.\nNow, you would have got the idea of how the integration of the latest version may enhance your applications. You may quickly try out the API features by downloading the latest version as well as cloning and exploring the examples project from GitHub repository. In case you would have any questions or queries, just reach us on our forum and we would love to have a conversation with you.\n","permalink":"https://blog.groupdocs.com/assembly/support-of-inline-syntax-error-messages/","summary":"We are back with the latest release of GroupDocs.Assembly for .NET. In this post, I am going to give you an overview of the latest release including the demonstration and usage of an exciting feature. Let\u0026rsquo;s not wait and walk through what\u0026rsquo;s new in the latest release. You may also have a glance at the release notes of the latest release.\nGroupDocs.Assembly allows you to generate automated reports by populating the pre-defined document templates.","title":"Support of Inline Syntax Error Messages"},{"content":"Page rotation mechanism is one of the fundamental techniques when it comes to document manipulation and modification. As you know this feature is already supported by the API but for the limited file formats. Hence, in this month\u0026rsquo;s release of GroupDocs.Merger for Java 19.2, we implemented this feature for Diagram formats. By defining page number(s) and rotation angle you can achieve the purpose. Let\u0026rsquo;s see how simple it is.\nWe also added SwapPages support for Note format.\nBug Fixes Document Save method throws exception: System.ObjectDisposedException PostScript document is loading with error Page rotation is not saving for EPUB format You can try GroupDocs.Merger for Java today without any third-party dependency. Download API here. If you have any questions or comments about this blog post, please use forum.\n","permalink":"https://blog.groupdocs.com/merger/rotatepages-support-in-diagram-formats/","summary":"Page rotation mechanism is one of the fundamental techniques when it comes to document manipulation and modification. As you know this feature is already supported by the API but for the limited file formats. Hence, in this month\u0026rsquo;s release of GroupDocs.Merger for Java 19.2, we implemented this feature for Diagram formats. By defining page number(s) and rotation angle you can achieve the purpose. Let\u0026rsquo;s see how simple it is.\nWe also added SwapPages support for Note format.","title":"RotatePages Support in Diagram Formats"},{"content":"Document Manipulation and Modification is now programatically implemented in a lot of file formats. Keeping that in view, we are introducing some new file formats with the release of GroupDocs.Merger for .NET 19.2.\nFollowing new file formats are now supported by the API:\nXLT XLTX XLTM In excel these file formats are basically saved as a template files.\nBeside new features, we also introduced a improvement and few bug fixes.\nODP presentations loading is optimized.\nPreviously, MovePage method was not working correctly for EPUB and XPS formats. But this issue is long gone now. You can move any page in XPS or EPUB document to some other position and get resultant document with new page order.\nSee how MovePage and other document manipulation operations are processed here. Download latest release of the API and share your feedback.\n","permalink":"https://blog.groupdocs.com/merger/xltx-file-format-support-in-groupdocs.merger-for-.net/","summary":"Document Manipulation and Modification is now programatically implemented in a lot of file formats. Keeping that in view, we are introducing some new file formats with the release of GroupDocs.Merger for .NET 19.2.\nFollowing new file formats are now supported by the API:\nXLT XLTX XLTM In excel these file formats are basically saved as a template files.\nBeside new features, we also introduced a improvement and few bug fixes.","title":"XLTX File Format Support in GroupDocs.Merger for .NET"},{"content":"\rWe are back with a major release of GroupDocs.Viewer for Java as version 19.1. The latest release has come with some exciting new features as well as a bunch of improvements and important bug fixes. Please have a look at the release notes to know about the new features and the changes introduced in GroupDocs.Viewer for Java 19.1. Furthermore, if you are planning to upgrade the API from any previous version, we strongly recommend you to check the Public API Changes section of release notes.\nFeatures Introduced The following are the most notable features introduced in GroupDocs.Viewer for Java 19.1.\nWorking with Email Attachments Working with Outlook Data Files Rendering Presentations with Notes Rendering a Part of MS Project Document Rendering MS Project Document by Time Intervals Forced Password Validation for Password Protected Documents Clear Cache Files for Specific Document Bug Fixes and Improvements There are 181 bug fixes and improvements that are included in the latest release of GroupDocs.Viewer for Java. The most notable are:\nIncorrect rendering of PPTX document as HTML Content of the cell is hidden when rendering Excel to HTML OpenDocument spreadsheet documents incorrect rendering NullPointerException for LaTeX document Incorrect exception type Font \u0026lsquo;Segoe UI\u0026rsquo; does not support style \u0026lsquo;Regular\u0026rsquo; Guid for file should contain extension Exception occurred while opening a file with password Omitting trailing slash in ViewerConfig.setStoragePath() cause failing create cache folder Improved compression for rendering into HTML with EnableMinification setting Improved rendering MS OneNote documents into HTML by providing pure HTML and SVG Improved setting PageSize and TimeScale for MS Project documents by default Improved exporting and embedding HTML resources when rendering presentation documents Improved rendering Microsoft Visio document as HTML Improved rendering into HTML for rotated documents Improved rendering metafile images into HTML Improve rendering comments from Presentation documents Improve styles generation when rendering into HTML with embedded resources For a complete list of bug fixes and improvements, please visit the release notes.\nAdditional Resources The following resources will help you to download, learn, try and get technical support on GroupDocs.Viewer for Java.\nProduct Home – API Home Page Download - Zipped JARs Documentation – Product Documentation Examples – Source Code Examples Sample Front End App - Open Source Document Viewer Applications Product Support Forum – Technical Support Forum for GroupDocs.Viewer Product Family FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/render-email-attachments-and-outlook-data-files-using-groupdocs.viewer-for-java-19.1/","summary":"We are back with a major release of GroupDocs.Viewer for Java as version 19.1. The latest release has come with some exciting new features as well as a bunch of improvements and important bug fixes. Please have a look at the release notes to know about the new features and the changes introduced in GroupDocs.Viewer for Java 19.1. Furthermore, if you are planning to upgrade the API from any previous version, we strongly recommend you to check the Public API Changes section of release notes.","title":"Render Email Attachments and Outlook Data Files using GroupDocs.Viewer for Java 19.1"},{"content":"\rWe are pleased to announce the monthly release of GroupDocs.Search for Java 19.2. Improvements such as indexing of a ZIP archive inside other ZIP and escape of special characters in search queries are introduced. Please check GroupDocs.Search for Java 19.2 release notes for further reference. We would recommend you to download and integrate latest version of the API.\nBreaking Change Removed obsolete methods Import and Export from dictionary classes Improvements Following improvements are introduced in this release:\nImplement escaping special characters in search queries String indexFolder = \u0026#34;c:\\\\MyIndex\u0026#34;; String documentFolder = \u0026#34;c:\\\\MyDocuments\u0026#34;; // Creating index Index index = new Index(indexFolder); // Marking character \u0026#39;\u0026amp;\u0026#39; as a valid letter, not a separator index.getDictionaries().getAlphabet().setRange(new char[] { \u0026#39;\u0026amp;\u0026#39; }, CharacterType.Letter); // Adding documents to index index.addToIndex(documentFolder); // Searching for word \u0026#39;R\u0026amp;B\u0026#39; SearchResults results0 = index.search(\u0026#34;R\\\\\u0026amp;B\u0026#34;); // Searching for word \u0026#39;R\u0026amp;B\u0026#39; SearchResults results1 = index.search(\u0026#34;R\\\\u0026B\u0026#34;); Indexing ZIP archives inside other ZIP archives String indexFolder = \u0026#34;c:\\\\MyIndex\u0026#34;; String documentFolder = \u0026#34;c:\\\\MyDocuments\u0026#34;; // Creating index Index index = new Index(indexFolder); // Adding documents to index // ZIP archives and ZIP archives inside those archives will be automatically added to index index.addToIndex(documentFolder); // Searching SearchResults results = index.search(\u0026#34;zip\u0026#34;); Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Search:\nInstallation - Install GroupDocs.Search from Maven Documentation - API Documentation Examples - Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/search/zip-archive-indexing-is-improved-in-groupdocs.search-for-java-19.2/","summary":"We are pleased to announce the monthly release of GroupDocs.Search for Java 19.2. Improvements such as indexing of a ZIP archive inside other ZIP and escape of special characters in search queries are introduced. Please check GroupDocs.Search for Java 19.2 release notes for further reference. We would recommend you to download and integrate latest version of the API.\nBreaking Change Removed obsolete methods Import and Export from dictionary classes Improvements Following improvements are introduced in this release:","title":"ZIP Archive Indexing is Improved in GroupDocs.Search for Java 19.2"},{"content":"\rNew month, new release! We have released version 19.1 of GroupDocs.Signature for .NET that brings a couple of new features as well as two bug fixes and two improvements. The latest version provides metadata signature features for image files. Furthermore, the API now supports rounded corners for rectangle stamp signature types. For more details on what\u0026rsquo;s new in the latest release, please have a look at release notes.\nFeatures Introduced Metadata Signature Features for ImagesIn the latest version, we have introduced a new feature of singing images with metadata signatures that are based on Exchangeable Image File Format (EXIF) specification. For this, we have added a new public class ImageMetadataSignatureOptions that provides different options to add metadata signatures in images. For a working example, please visit this documentation article. Rounded Corners for Stamp SignaturesA new public class SquareBorderLine that inherits BorderLine is added to implement square stamp signature with rounded corners. This class contains data about the radius of the square signature\u0026rsquo;s corners. For a working example, please visit this documentation article. Improvements We have done the following improvements in version 19.1.\nImprove Image Metadata type conversion Optimize Document options type detection for handler processes (Sign/Verify/Search) Bug Fixes The following bugs are fixed in the latest version.\nFix Stamp generation processing for wide areas QR/Bar code with wide border cannot be read Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for .NET:\nNuGet - Nuget Installation Documentation - Product Documentation API References – GroupDocs.Signature for .NET API References Examples - Source Code Examples, Showcases, and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Product Family Video Tutorials - YouTube Video Tutorials Feedback As always, we will be happy to know about your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/sign-images-with-metadata-signature-using-groupdocs.signature-for-.net-19.1/","summary":"New month, new release! We have released version 19.1 of GroupDocs.Signature for .NET that brings a couple of new features as well as two bug fixes and two improvements. The latest version provides metadata signature features for image files. Furthermore, the API now supports rounded corners for rectangle stamp signature types. For more details on what\u0026rsquo;s new in the latest release, please have a look at release notes.\nFeatures Introduced Metadata Signature Features for ImagesIn the latest version, we have introduced a new feature of singing images with metadata signatures that are based on Exchangeable Image File Format (EXIF) specification.","title":"Sign Images with Metadata Signature using GroupDocs.Signature for .NET 19.1"},{"content":"\rWe are pleased to announce a major release of GroupDocs.Signature for Java containing 13 new features, 5 improvements, and 2 bug fixes. In this release, we have introduced Metadata Signature for word-processing, presentation and spreadsheet documents. Furthermore, a new signature type, Form-Field Signature, is implemented for signing PDF documents. Please have a look at the release notes for more details on the new features and changes introduced in version 19.1.\nFeatures Introduced Metadata Signature FeaturesThe latest version provides the support of Metadata Signature for word-processing, presentation and spreadsheet documents. Furthermore, you can also search Metadata Signatures within the aforementioned document types. For working examples, please visit the following documentation articles: Signing Spreadsheet Document with Metadata Signature Signing Presentation Document with Metadata Signature Signing Word-Processing Document with Metadata Signature Searching Metadata Signature in Spreadsheet Document Searching Metadata Signature in Presentation Document Searching Metadata Signature in Word-Processing Document Form-Field Signature Features for PDF DocumentsMany documents support special elements as form-fields that allow the user to input data into standard form elements such as text input, extended multi-line text, checkboxes, radio buttons, digital certificate holders etc. These form-fields can also be used for adding signatures. For this, we have introduced Form-Field Signature type representing an input control that is added to the document page. You can add as well as search Form-Field Signatures in PDF documents. For working examples, please have a look at the following documentation articles: Signing PDF Document with Form-Field Signature Searching Form-Field Signature in PDF Document Extended Digital Verification for Word DocumentsIn the latest version, we have extended the feature of digital verification for Word documents by adding new string properties **SubjectName **and IssuerName in WordsVerifyDigitalOptions class. These fields could be used as additional criteria to verify Digital Signatures of Words documents. For a working example, please visit this documentation article. Improvements The following improvements are made in the latest release:\nImplement global exception handler to catch all unhandled exceptions Improve exceptions handling with proper details and exception type Implement search results conversion to typed list of signatures Implement support of password protected Open-Documents-Spreadsheet ODS file formats Extend Form-Field signature name automatically with number prefix for multiple-pages options Bug Fixes The following issues are fixed in version 19.1:\nException is fired when searching PDF documents for form-fields that were set up without name Skip output folder when SaveOptions.OutputFileName is set as absolute path Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature for Java:\nAPI Home Page Download – Zipped JARs Installation - Install using Maven Documentation – API Documentation Examples – GitHub Source Code Examples Product Support Forum – Technical Support Forum for GroupDocs.Signature Product Family Feedback As always, we will be happy to know your thoughts. Just create a new topic on our forum and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/introducing-form-field-signatures-for-pdf-documents-in-groupdocs.signature-for-java-19.1/","summary":"We are pleased to announce a major release of GroupDocs.Signature for Java containing 13 new features, 5 improvements, and 2 bug fixes. In this release, we have introduced Metadata Signature for word-processing, presentation and spreadsheet documents. Furthermore, a new signature type, Form-Field Signature, is implemented for signing PDF documents. Please have a look at the release notes for more details on the new features and changes introduced in version 19.","title":"Introducing Form-Field Signatures for PDF Documents in GroupDocs.Signature for Java 19.1"},{"content":"\rWe are pleased to announce the monthly release of GroupDocs.Search for .NET 19.2. Improvements such as indexing of a ZIP archive inside other ZIP and escape of special characters in search queries are introduced. Please check GroupDocs.Search for .NET 19.2 release notes for further reference. We would recommend you to download and integrate latest version of the API.\nBreaking Change Removed obsolete methods Import and Export from dictionary classes Improvements Following improvements are introduced in this release:\nImplement escaping special characters in search queries string indexFolder = @\u0026#34;c:\\MyIndex\u0026#34;; string documentFolder = @\u0026#34;c:\\MyDocuments\u0026#34;; // Creating index Index index = new Index(indexFolder); // Marking character \u0026#39;\u0026amp;\u0026#39; as a valid letter, not a separator index.Dictionaries.Alphabet.SetRange(new char[] { \u0026#39;\u0026amp;\u0026#39; }, CharacterType.Letter); // Adding documents to index index.AddToIndex(documentFolder); // Searching for word \u0026#39;R\u0026amp;B\u0026#39; SearchResults results0 = index.Search(@\u0026#34;R\\\u0026amp;B\u0026#34;); // Searching for word \u0026#39;R\u0026amp;B\u0026#39; SearchResults results1 = index.Search(@\u0026#34;R\\u0026B\u0026#34;); Indexing ZIP archives inside other ZIP archives string indexFolder = @\u0026#34;c:\\MyIndex\u0026#34;; string documentFolder = @\u0026#34;c:\\MyDocuments\u0026#34;; // Creating index Index index = new Index(indexFolder); // Adding documents to index // ZIP archives and ZIP archives inside those archives will be automatically added to index index.AddToIndex(documentFolder); // Searching SearchResults results = index.Search(\u0026#34;zip\u0026#34;); Available Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search:\nInstallation - Install GroupDocs.Search using NuGet Documentation - Product docs Examples/Plugins/Showcases - Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to the GroupDocs.Search for .NET API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/escape-special-characters-in-search-queries-using-groupdocs.search-for-.net-19.2/","summary":"We are pleased to announce the monthly release of GroupDocs.Search for .NET 19.2. Improvements such as indexing of a ZIP archive inside other ZIP and escape of special characters in search queries are introduced. Please check GroupDocs.Search for .NET 19.2 release notes for further reference. We would recommend you to download and integrate latest version of the API.\nBreaking Change Removed obsolete methods Import and Export from dictionary classes Improvements Following improvements are introduced in this release:","title":"Escape Special Characters in Search Queries using GroupDocs.Search for .NET 19.2"},{"content":"\rFinally, the wait is over! We have released the first version of GroupDocs.Redaction for .NET. As we have mentioned in the pre-release blog post, GroupDocs.Redaction for .NET is an API to redact, hide or remove sensitive content \u0026amp; metadata from word processing documents, worksheets, presentations, and PDF files within your .NET applications. The API provides a single format-independent interface supporting various redaction types such as text redaction, metadata redaction, annotation redaction, and tabular document redaction.\nWhy GroupDocs.Redaction for .NET is Developed? Some documents contain confidential and sensitive content that needs to be protected. In many instances, it is required to remove the classified information from these documents before they are shared among different users. In such cases, it is impossible to process a bunch of documents manually. Here comes GroupDocs.Redaction for .NET to automate and simplify the process of information redaction within the documents.\nSupported Features The following are the salient features exposed by the first version of GroupDocs.Redaction for .NET.\nExact Phrase Text Redaction Case-Sensitive Exact Phrase Text Redaction Text Redaction with Colored Rectangle Text Redaction using Regular Expression Metadata Redaction Searching and Filtering Metadata for Redaction Annotation Redaction Removal of Sensitive Information from Annotation Detailed Redaction Logging Saving Document in Original Format or as a Rasterized PDF For a complete list of supported features, please have a look at features overview.\nSupported Document Formats At the moment, GroupDocs.Redaction for .NET supports the following document formats:\nPDF (.pdf) MS Word (.doc, .docx, .dot, .odt, .dotx, .docm, .dotm, .rtf) MS Excel (.xls, .xlsx, .xlt, .xltx, .xlsm, .xltm, .csv) MS PowerPoint (.ppt, .pptx, .pps, .ppsx, .potx, .pptm, .ppsm, .potm) Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Redaction for .NET:\nDownload – MSI Package and Zipped DLLs NuGet – NuGet Installation Documentation – Product Documentation Examples– Source Code Examples Product Support Forum – Technical Support Forum for GroupDocs.Redaction Product Family Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/redaction/introducing-groupdocs.redaction-for-.net-an-api-to-redact-classified-content-in-documents/","summary":"Finally, the wait is over! We have released the first version of GroupDocs.Redaction for .NET. As we have mentioned in the pre-release blog post, GroupDocs.Redaction for .NET is an API to redact, hide or remove sensitive content \u0026amp; metadata from word processing documents, worksheets, presentations, and PDF files within your .NET applications. The API provides a single format-independent interface supporting various redaction types such as text redaction, metadata redaction, annotation redaction, and tabular document redaction.","title":"Introducing GroupDocs.Redaction for .NET - An API to Redact Classified Content in Documents"},{"content":"\rWe are delighted to announce the release of GroupDocs.Assembly for .NET 19.1. The latest version allows you to merge the table cells having equal textual contents within your reports dynamically. Furthermore, we have introduced the feature of adding optional comments within the syntax tags that can provide a human-readable explanation. For more details on the latest version, please have a glance at the release notes.\nFeatures Introduced Merging Table Cells Dynamically Using the latest version, you can tell the API to merge the table cells that have equal textual contents. The following tag is used for this purpose:\n\u0026lt;\u0026lt;cellMerge -horz\u0026gt;\u0026gt; In the above expression, the horz switch is optional. If this switch is present, the cell merging will be performed in the horizontal direction. Otherwise, if the switch is missing, cells will be merged in the vertical direction (the default). At the moment, this feature is supported for the following document types:\nSpreadsheet Documents Presentation Documents Word Processing Documents Emails with HTML and RTF Bodies For more details on this feature, please visit this documentation article.\nSupport of Textual Comments within Syntax Tags This feature is introduced to add the textual comments within the syntax tags in the templates. These comments are only for providing human-readable explanation and ignored by the reporting engine. The following sample shows how to use the comments:\n\u0026lt;\u0026lt;tag\\_name \\[expression\\] –switch1 –switch2 .. // optional\\_comment\u0026gt;\u0026gt; Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly for .NET.\nInstallation - Install GroupDocs.Assembly for .NET using NuGet Download - MSI Package and Zipped DLLs Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Showcase Applications Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly Product Family Feedback As always, if you have some questions, queries or suggestions about GroupDocs.Assembly for .NET API, just share with us by creating a forum thread.\n","permalink":"https://blog.groupdocs.com/assembly/dynamic-merging-of-table-cells-in-groupdocs.assembly-for-.net-19.1/","summary":"We are delighted to announce the release of GroupDocs.Assembly for .NET 19.1. The latest version allows you to merge the table cells having equal textual contents within your reports dynamically. Furthermore, we have introduced the feature of adding optional comments within the syntax tags that can provide a human-readable explanation. For more details on the latest version, please have a glance at the release notes.\nFeatures Introduced Merging Table Cells Dynamically Using the latest version, you can tell the API to merge the table cells that have equal textual contents.","title":"Support for Dynamic Merging of Table Cells in GroupDocs.Assembly for .NET 19.1"},{"content":"\rWe are pleased to announce the release of version 19.1 of GroupDocs.Assembly for Java. The latest version allows you to merge the table cells having equal textual contents within your reports dynamically. Furthermore, we have introduced the feature of adding optional comments within the syntax tags that can provide a human-readable explanation. For more details on the latest version, please have a look at the release notes.\nFeatures Introduced Merging Table Cells Dynamically Using the latest version, you can tell the API to merge the table cells that have equal textual content. The following tag is used for this purpose:\n\u0026lt;\u0026lt;cellMerge -horz\u0026gt;\u0026gt; In the above expression, the horz switch is optional. If this switch is present, the cell merging will be performed in the horizontal direction. Otherwise, if the switch is missing, cells will be merged in the vertical direction (the default). At the moment, this feature is supported for the following document types:\nSpreadsheet Documents Presentation Documents Word Processing Documents Emails with HTML and RTF Bodies For more details on this feature, please visit this documentation article.\nSupport of Textual Comments within Syntax Tags This feature is introduced to add the textual comments within the syntax tags in the templates. These comments are only for providing human-readable explanation and ignored by the reporting engine. The following sample shows how to use the comments:\n\u0026lt;\u0026lt;tag\\_name \\[expression\\] –switch1 –switch2 .. // optional\\_comment\u0026gt;\u0026gt; Available Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Assembly for Java:\nInstallation - Install GroupDocs.Assembly for Java from Maven Download - Zipped JAR Documentation – Product Documentation Examples – Source Code Examples Product Support Forum – Technical Support Forum for GroupDocs.Assembly Product Family Feedback We always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Assembly for Java at our forum.\n","permalink":"https://blog.groupdocs.com/assembly/merge-table-cells-dynamically-using-groupdocs.assembly-java-19.1/","summary":"We are pleased to announce the release of version 19.1 of GroupDocs.Assembly for Java. The latest version allows you to merge the table cells having equal textual contents within your reports dynamically. Furthermore, we have introduced the feature of adding optional comments within the syntax tags that can provide a human-readable explanation. For more details on the latest version, please have a look at the release notes.\nFeatures Introduced Merging Table Cells Dynamically Using the latest version, you can tell the API to merge the table cells that have equal textual content.","title":"Merge Table Cells Dynamically using GroupDocs.Assembly for Java 19.1"},{"content":"\rGroupDocs.Conversion for .NET 19.1 comes with a new feature, few bug fixes and some improvements. SVG to Slides conversion is now improved. Furthermore, PDF to PNG/JPEG with watermark as background issue is resolved. Please check GroupDocs.Conversion for .NET 19.1 release notes for further reference.\nFeatures Implement conversion from Vcf Improvements Improvement when converting Svg to Slides Add support for setting watermark as background when converting to image Save converted document to file should return the file name and size Bug Fixes Spreadsheets sometimes show incorrect graph data Issue with conversion .docx (with table of content) to .html Conversion .pdf to .png (or .jpeg) with watermark as background issue Inconsistent conversion from email file formats when converting to Cells Receiving Aspose.Pdf.InvalidValueFormatException when converting a PDF file API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nNuGet - Nuget install Documentation - Product Wiki Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/conversion-from-vcf-is-introduced-in-groupdocs.conversion-for-.net-19.1/","summary":"GroupDocs.Conversion for .NET 19.1 comes with a new feature, few bug fixes and some improvements. SVG to Slides conversion is now improved. Furthermore, PDF to PNG/JPEG with watermark as background issue is resolved. Please check GroupDocs.Conversion for .NET 19.1 release notes for further reference.\nFeatures Implement conversion from Vcf Improvements Improvement when converting Svg to Slides Add support for setting watermark as background when converting to image Save converted document to file should return the file name and size Bug Fixes Spreadsheets sometimes show incorrect graph data Issue with conversion .","title":"Conversion from VCF is Introduced in GroupDocs.Conversion for .NET 19.1"},{"content":"\rWe are pleased to announce the monthly release of GroupDocs.Merger for .NET 19.1. This latest version of the API comes with some new features and bug fixes. RotatePages method now supports Diagram formats. Please see release notes for further details.\nFeatures Diagram formats are available for method: RotatePages Note formats are available for method: SwapPages Bug Fixes Document Save method throws exception: System.ObjectDisposedException PostScript document is loading with error Page rotation is not saving for EPUB format Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Merger:\nNuGet - NuGet Install Documentation - API Documentation API Reference - GroupDocs.Merger for .NET API Reference Examples- Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Merger queries FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/merger/page-rotation-issue-for-epub-format-is-fixed-in-groupdocs.merger-for-.net-19.1/","summary":"We are pleased to announce the monthly release of GroupDocs.Merger for .NET 19.1. This latest version of the API comes with some new features and bug fixes. RotatePages method now supports Diagram formats. Please see release notes for further details.\nFeatures Diagram formats are available for method: RotatePages Note formats are available for method: SwapPages Bug Fixes Document Save method throws exception: System.ObjectDisposedException PostScript document is loading with error Page rotation is not saving for EPUB format Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.","title":"Page Rotation Issue for EPUB Format is Fixed in GroupDocs.Merger for .NET 19.1"},{"content":"\rShare this issue:\nMonthly Newsletter February 2019\nFast, Accurate and Secure e-Signature APIs for .NET \u0026amp; Java Applications\nDigitally sign important business documents at individual and enterprise level\nGroupDocs.Signature offers .NET and Java APIs to e-sign documents, configure and manipulate various types of digital signatures and certificates. Programmers can easily add advanced signature types including; text, image, barcode, QR code, stamp and metadata to a variety of business file formats like Word, Excel, PowerPoint, PDF, Text and images.\nProduct News\nAdd features of indexing and searching blended characters in .NET applications GroupDocs.Search is a document and text search API for .NET and Java applications to perform simple, boolean, RegEx, fuzzy and advanced search operations along with indexing in all popular document formats. The latest version enabled developers to index and search blended characters using a new class of characters – blended. Another feature to perform wild card search is also supported in this release.\n.NET API to search for metadata signatures in images GroupDocs.Signature for .NET allows digitally sign documents in .NET applications. The new feature to add and search for metadata signatures in Images is now supported. Developers can now easily manage various e-signature types such as text, image, QR code, barcode, stamp and metadata within their .NET applications. Read more details here.\nFrom the Library\n.NET code example: Rendering filtered messages from MS Outlook data files GroupDocs.Viewer for .NET API allows viewing and rendering 90+ document formats in any type of .NET application. The newly released version supports rendering the email messages as well as filtering the messages that are contained within Outlook data files (OST / PST) as attachments. Read more details here.\nJava code example: Conversion from IGS, PLT and CGM formats now supported GroupDocs.Conversion for Java supports documents conversion feature in Java applications for a wide range of document formats. The latest version introduces the conversion support from IGS, PLT and CGM file formats. GroupDocs.Conversion API can automatically add extension of the converted file if it is not set up already. Read more details here.\nCode example: Extracting metadata from .mkv files in .NET and Java GroupDocs.Metadata offers .NET and Java APIs to manipulate metadata of various document formats. The latest version supports extracting metadata from Matroska Multimedia Container (.MKV) files in all types of .NET and Java applications. Programmers can also work with password-protected OneNote documents using LoadOptions class.\nJava code example: Changing page orientation in documents GroupDocs.Merger for Java API adds the ability in java applications to merge, split or delete pages, slides and diagrams. A new method changeOrientation is introduced in the latest version that allows changing page orientation (portrait, landscape) for pages in the document. Read more details here.\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite.\nGroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite.\nGroupDocs.Editor for .NET 18.12 – Improved compatibility of lists and paragraphs with HTML-Editors and stability in multi-threaded environment.\nCheck out for more releases during last month\n","permalink":"https://blog.groupdocs.com/total/digitally-sign-documents-.net-java-applications-groupdocs.com-newsletter-february-2019/","summary":"Share this issue:\nMonthly Newsletter February 2019\nFast, Accurate and Secure e-Signature APIs for .NET \u0026amp; Java Applications\nDigitally sign important business documents at individual and enterprise level\nGroupDocs.Signature offers .NET and Java APIs to e-sign documents, configure and manipulate various types of digital signatures and certificates. Programmers can easily add advanced signature types including; text, image, barcode, QR code, stamp and metadata to a variety of business file formats like Word, Excel, PowerPoint, PDF, Text and images.","title":"e-Sign Documents in .NET \u0026 Java Applications – groupdocs.com newsletter February 2019"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Annotation for .NET 19.1. API now allows you to cache page previews and implement possibility to display distance annotation caption for Slide, Cell and Diagram formats. Apart from that, line width issue in Slides is fixed. Please follow the release notes here for further details. We\u0026rsquo;d recommend you to download the new version of the API to enhance your document annotation experience.\nFeatures Add possibility to cache page previews Implement possibility to display distance annotation caption for Slides, Cells and Diagrams Add support of older format for Slides (.ppt), Cells (.xls) and Words (.doc) Improvements Refactor logic for getting pages for Slides documents Refactor PdfToPng saver Bug Fixes Line width not set in Slides Application is consuming 100% resources usage while loading document Issue when opening password protected documents AnnotationImageHandler.GetPages exception in trial mode (for documents with more than 2 pages) When removing annotations, stream is not closing Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation:\nNuget Package - Download Documentation - Product Docs Examples - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/possibility-to-cache-page-previews-using-groupdocs.annotation-for-.net-19.1/","summary":"We are pleased to announce another monthly release of GroupDocs.Annotation for .NET 19.1. API now allows you to cache page previews and implement possibility to display distance annotation caption for Slide, Cell and Diagram formats. Apart from that, line width issue in Slides is fixed. Please follow the release notes here for further details. We\u0026rsquo;d recommend you to download the new version of the API to enhance your document annotation experience.","title":"Possibility to Cache Page Previews using GroupDocs.Annotation for .NET 19.1"},{"content":"\rGroupDocs.Comparison for .NET 19.1 comes with a few bug fixes and a few improvements. Paragraph absorber in the resultant document and charts comparing in Cells are now improved. Please follow the release notes here for further details. We would recommend you to try the latest version of the API and share your feedback.\nImprovementsFollowing improvements are introduced: Improve paragraph absorber in result document Charts comparing in Cells Bug FixFollowing issues are resolved for Slides: Incorrect Sheet Name in result file in Cells Comparing large sized PDF files Issue when setting ParaghraphLines Setting Hyperlinks in big size PDF file Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nNuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/issue-in-comparison-of-large-sized-pdf-files-is-fixed-in-groupdocs.comparison-for-.net-19.1/","summary":"GroupDocs.Comparison for .NET 19.1 comes with a few bug fixes and a few improvements. Paragraph absorber in the resultant document and charts comparing in Cells are now improved. Please follow the release notes here for further details. We would recommend you to try the latest version of the API and share your feedback.\nImprovementsFollowing improvements are introduced: Improve paragraph absorber in result document Charts comparing in Cells Bug FixFollowing issues are resolved for Slides: Incorrect Sheet Name in result file in Cells Comparing large sized PDF files Issue when setting ParaghraphLines Setting Hyperlinks in big size PDF file Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Issue in Comparison of Large Sized PDF Files is fixed in GroupDocs.Comparison for .NET 19.1"},{"content":"\rWe are excited to announce that GroupDocs.Redaction for .NET is going to be released soon. It will be a back-end API for removing sensitive and classified information from the documents of popular file formats. The API aims to provide a single, format-independent interface containing a set of redaction methods to redact text, metadata and annotations. GroupDocs.Redaction for .NET will soon be available for download.\nFeatures Offered by GroupDocs.Redaction for .NET The initial release of the API will provide the following features:\nExact Phrase Text Redaction Case-Sensitive Exact Phrase Text Redaction Text Redaction with Colored Rectangle Text Redaction using Regular Expression Metadata Redaction Searching and Filtering Metadata for Redaction Annotation Redaction Removal of Sensitive Information from Annotation Document Format Detection Detailed Redaction Logging Saving File in Original Format Saving File as a Rasterized PDF Supported Document Formats Initially, GroupDocs.Redaction for .NET will support the following document formats:\nPDF (.pdf) MS Word (.doc, .docx, .dot, .odt, .dotx, .docm, .dotm, .rtf) MS Excel (.xls, .xlsx, .xlt, .xltx, .xlsm, .xltm, .csv) MS PowerPoint (.ppt, .pptx, .pps, .ppsx, .potx, .pptm, .ppsm, .potm) First Version Availability We are finalizing the first release of GroupDocs.Redaction for .NET and hoping that you will be able to grab it very soon. Please stay tuned for further updates.\n","permalink":"https://blog.groupdocs.com/redaction/upcoming-release-of-groupdocs.redaction-for-.net/","summary":"We are excited to announce that GroupDocs.Redaction for .NET is going to be released soon. It will be a back-end API for removing sensitive and classified information from the documents of popular file formats. The API aims to provide a single, format-independent interface containing a set of redaction methods to redact text, metadata and annotations. GroupDocs.Redaction for .NET will soon be available for download.\nFeatures Offered by GroupDocs.Redaction for .","title":"Upcoming Release of GroupDocs.Redaction for .NET"},{"content":"\rWe are glad to announce the monthly release of GroupDocs.Metadata for Java 19.1. In this version, we have introduced two new features and added seven enhancements. Using the latest version, you can extract metadata from Matroska Multimedia Container (.MKV) files. Furthermore, the latest version allows you to extract metadata from password-protected OneNote documents. Please have a look at the release notes for more details.\nFeatures Introduced Support for the Matroska Multimedia Container FilesThe latest release is capable of extracting metadata from the Matroska Multimedia Container (.MKV) files. The API provides the following features when working with .MKV files: Extracting MKV Format Metadata Extracting Matroska Segment Info Extracting Matroska Tag Metadata Extracting Matroska Track Metadata Support for Password-Protected OneNote DocumentsGroupDocs.Metadata for Java has the ability to work with password-protected documents. In the latest version, we have extended this ability by adding support for password-protected OneNote documents. The LoadOptions class is used to set the password for the protected documents. For a working example, please visit the following documentation article: Working with password-protected OneNote documents Enhancements The following enhancements are made in version 19.1:\nRemoved the obsolete code related to the TIFF/EXIF functionality Removed obsolete members of the DublinCorePackage class Implemented Closeable interface for the following classes to reduce the memory consumption: VisioFormat OneNoteFormat DwgFormat DxfFormat EmlFormat OutlookMessage MovFormat For working examples on how to reduce memory consumption, please visit this documentation article.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Metadata for Java: Installation - Install GroupDocs.Metadata for Java from Maven Documentation – Product documentation Examples – Source code examples Video Tutorials - YouTube videos Product Support Forum – Technical support forum for GroupDocs.Metadata for Java FeedbackWe always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Metadata for Java at our forum. ","permalink":"https://blog.groupdocs.com/metadata/support-of-password-protected-onenote-documents-in-groupdocs.metadata-for-java-19.1/","summary":"We are glad to announce the monthly release of GroupDocs.Metadata for Java 19.1. In this version, we have introduced two new features and added seven enhancements. Using the latest version, you can extract metadata from Matroska Multimedia Container (.MKV) files. Furthermore, the latest version allows you to extract metadata from password-protected OneNote documents. Please have a look at the release notes for more details.\nFeatures Introduced Support for the Matroska Multimedia Container FilesThe latest release is capable of extracting metadata from the Matroska Multimedia Container (.","title":"Support of Password-Protected OneNote Documents in GroupDocs.Metadata for Java 19.1"},{"content":"\rToday, we are pleased to announce the release of GroupDocs.Metadata for .NET 19.1. In this version, we have introduced two new features and added seven enhancements. Using the latest version, you can extract metadata from Matroska Multimedia Container (.MKV) files. Furthermore, the latest version allows you to extract metadata from password-protected OneNote documents. Please have a look at the release notes for more details.\nFeatures Introduced Support for the Matroska Multimedia Container FilesGroupDocs.Metadata for .NET 19.1 is capable of extracting metadata from Matroska Multimedia Container (.MKV) files. The API provides the following features when working with .MKV files: Extracting MKV Format Metadata Extracting Matroska Segment Info Extracting Matroska Tag Metadata Extracting Matroska Track Metadata Support for Password-Protected OneNote DocumentsGroupDocs.Metadata for .NET has the ability to work with password-protected documents. In the latest version, we have extended this ability by adding support for password-protected OneNote documents. The LoadOptions class is used to set the password for the protected documents. For a working example, please visit the following documentation article: Working with password-protected OneNote documents Enhancements The following enhancements are made in version 19.1:\nRemoved the obsolete code related to the TIFF/EXIF functionality Removed obsolete members of the DublinCorePackage class Implemented IDisposable interface for the following classes to reduce the memory consumption: VisioFormat OneNoteFormat DwgFormat DxfFormat EmlFormat OutlookMessage MovFormat For working examples on how to reduce memory consumption, please visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET.\nInstallation - Install GroupDocs.Metadata for .NET using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Showcases Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs.Metadata for .NET Feedback As always, if you have any questions, queries or suggestions about GroupDocs.Metadata for .NET, just share with us on our forum.\n","permalink":"https://blog.groupdocs.com/metadata/extract-metadata-from-.mkv-files-using-groupdocs.metadata-for-.net-19.1/","summary":"Today, we are pleased to announce the release of GroupDocs.Metadata for .NET 19.1. In this version, we have introduced two new features and added seven enhancements. Using the latest version, you can extract metadata from Matroska Multimedia Container (.MKV) files. Furthermore, the latest version allows you to extract metadata from password-protected OneNote documents. Please have a look at the release notes for more details.\nFeatures Introduced Support for the Matroska Multimedia Container FilesGroupDocs.","title":"Extract Metadata from .MKV Files using GroupDocs.Metadata for .NET 19.1"},{"content":"\rWe are delighted to announce that we have rolled out version 19.1 of GroupDocs.Viewer for .NET. The latest version brings five new features, three bug fixes, and three improvements. You can now obtain the email messages as well as filter the messages contained in Outlook Data Files (OST/PST). Furthermore, we have extended our list of supported file formats by adding the support of VCF file format. Please have a look at the release notes for more details on new features, fixes, and improvements.\nFeatures Introduced Rendering Filtered Messages from Outlook Data FilesThere might be the case when you want to render only the selected messages from Outlook Data Files (OST/PST). To deal with such case, we have introduced a new feature which allows you to filter the messages that you want to render from Outlook Data Files. At the moment, the following filters are available: Filter by subject and content using OutlookOptions.TextFilter Filter by the sender\u0026rsquo;s and recipient\u0026rsquo;s email addresses using OutlookOptions.AddressFilter For a working example, please visit the following documentation article:\nRendering Filtered Messages in Outlook Data Files Rendering Email Messages Contained in Outlook Data FilesGroupDocs.Viewer for .NET now supports getting and rendering email messages that are contained in Outlook Data Files as attachments. These email messages are listed as **_Attachments _**in **_DocumentInfoContainer _**object that is returned by **_GetDocumentInfo _**method of the corresponding ViewerHandler. For working examples, please visit the following documentation article: Obtaining and Rendering Email Messages Contained in Outlook Data Files Obtaining Layer\u0026rsquo;s Visibility Status in CAD DocumentsThe CAD document allows setting the visibility of the layers it contains. The layers are invisible when they frozen or switched off, otherwise, they are visible. The latest release of GroupDocs.Viewer for .NET allows getting the visibility status of the layers within a CAD document. This feature can be useful to decide which layer to render relying on a layer\u0026rsquo;s visibility status. For a working example, please visit the following documentation article: Obtaining Layer\u0026rsquo;s Visibility Status in CAD Documents Support for VCF File FormatSince version 19.1, GroupDocs.Viewer for .NET allows you to render VCF file format. Please visit this article for a complete list of the supported file formats. Improvements We have included the following improvements in version 19.1.\nAdded support for rendering password protected ODS documents Simplified caching interface Added descriptive exception message when non-existing default font name is set Bug Fixes The following issues are fixed in the latest release of GroupDocs.Viewer for .NET.\nHeader is missing when rendering Word document Exception when getting document info of .msg file using MemoryStream Images are not visible in Chrome browser when rendering OneNote documents Related Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer for .NET.\nInstallation - Install GroupDocs.Viewer for .NET using NuGet Documentation - Product Documentation Video Tutorials - YouTube Videos Examples / Plugins - GitHub Source Code Examples Sample Front End Apps - Open Source Document Viewer Applications Technical Support Forum - Technical Support Forum for GroupDocs.Viewer for .NET Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/render-filtered-messages-from-outlook-data-files-using-groupdocs.viewer-for-.net-19.1/","summary":"We are delighted to announce that we have rolled out version 19.1 of GroupDocs.Viewer for .NET. The latest version brings five new features, three bug fixes, and three improvements. You can now obtain the email messages as well as filter the messages contained in Outlook Data Files (OST/PST). Furthermore, we have extended our list of supported file formats by adding the support of VCF file format. Please have a look at the release notes for more details on new features, fixes, and improvements.","title":"Render Filtered Messages from Outlook Data Files using GroupDocs.Viewer for .NET 19.1"},{"content":"\rGroupDocs.Conversion for Java 18.12 comes with some new features, improvements and bug fixes. Conversion from IGS, PLT and CGM formats is introduced. Now, API can automatically add extension of the converted file if not set. Image, PDF and Word conversion is also improved. Furthermore, Excel to SVG and XPS to PDF conversion issues are now resolved. Please take a look over the release notes to get an idea about the changes introduced. We\u0026rsquo;d recommend you to integrate latest release of the API in your project and share your feedback.\nFeatures PdfFormattingOptions when converting to PDF Implement specific options for converting TXT documents Conversion from IGS, PLT and CGM Password protection when converting to ODS Supports conversion of password protected ODS document Improvements Automatically add extension of the converted file if not set Remove obsolete constructors and properties Image to PDF conversion improvement Improve per page savings when converting to Words, Images, Slides, Cells, PDF, XPS, HTML Security improvements update PDF to Cells improvement Words, Slides, PDF, HTML, Cells and Image conversion options Implement option for removing embedded files in PDF Bug Fixes Exception when cache is enabled XLS to HTML output is too small Excel to SVG conversion issue XPS to PDF conversion issue The image inside presentation isn\u0026rsquo;t the same in ODP output Missing border in ODS Excel output XLSX file eats almost 2 GB RAM while converting and the process never completes MS word document font substitution issue Trendlines in graphs on word documents not displaying Numbered items in .txt file converted to .pdf, output is not as expected An exception raises while rendering to the image output Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion: API Home - GroupDocs.Conversion for Java Download - GroupDocs.Conversion for Java Download Documentation - Product Documentation Examples/Plugins/Showcases - GitHub source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion ","permalink":"https://blog.groupdocs.com/conversion/pdfformattingoptions-is-introduced-in-groupdocs.conversion-for-java-18.12/","summary":"GroupDocs.Conversion for Java 18.12 comes with some new features, improvements and bug fixes. Conversion from IGS, PLT and CGM formats is introduced. Now, API can automatically add extension of the converted file if not set. Image, PDF and Word conversion is also improved. Furthermore, Excel to SVG and XPS to PDF conversion issues are now resolved. Please take a look over the release notes to get an idea about the changes introduced.","title":"PdfFormattingOptions is Introduced in GroupDocs.Conversion for Java 18.12"},{"content":"\rShare this issue:\nMonthly NewsletterJanuary 2019 25% off GroupDocs.Total OR 24 bottles of Award-Winning Pirathon Total Shiraz Wine\nGroupDocs.Total brings together all GroupDocs APIs in one product suite and is great value for money. This holiday season GroupDocs is making it even better value by giving you 25% off GroupDocs.Total. Simply enter the coupon code HOLOFF2018 when placing your order. Alternatively, treat yourself with 24 Bottles of Award-Winning Pirathon Total Wine (worth over $1500). Comprising of the 2016 vintages of Bluemark, Pirathon Silver, Pirathon Black and Pirathon Gold, Pirathon Total is the ultimate holiday gift. Enter the coupon code PIRATH2018 to take advantage of this offer.\nThis offer is only available on new GroupDocs.Total purchases and cannot be used in conjunction with other offers, renewals or upgrades. Only available directly from GroupDocs.com, not through third parties or resellers. Ts \u0026amp; Cs Apply, offer subject to change with no notice.\nProduct News\nExport Documents with specific Annotation types and Pages Range GroupDocs.Annotation for .NET empowers your applications to add and manipulate annotations through document comments and tags to enhance collaboration. It now allows you exporting annotations with some additional options, like the ability to export specific annotation type, range of pages and making it possible to retrieve pages with or without annotations. Read more details here.\nDynamically Assemble External Documents in .NET and Java Applications GroupDocs.Assembly offers .NET and Java APIs for creating customizable templates and documents automation. The latest version now allows you to assemble external documents dynamically for processing MS Word and email file formats. An evaluation mark was attached with the nested document previously, that now has been fixed.\nPassword Protect PDF, Word Excel and PowerPoint Documents in .NET and Java GroupDocs.Metadata adds support to identify, edit, remove, search, replace and compare Metadata of various document formats within .NET and Java applications. Using the latest version, you can now work with the password-protected PDF, Word, Excel, and PowerPoint documents. Just initialize LoadOptions and pass the password for the protected file as a parameter. Now choose DocFormat and pass LoadOptions as a parameter to work password protected document.\nFrom the Library\n.NET Code Example: Working with Folders Contained in Outlook OST/PST Formats GroupDocs.Viewer for .NET APIs allow to display and view documents of over 90+ business documents and images file formats without relying-on any external viewers. The recent version makes it possible to deal with folders and the sub-folders in Outlook data file documents (OST/PST). You can retrieve the list of the folders while rendering the document into HTML, image and PDF file. Read more details here.\n.NET Code Example: Measuring Document Conversion Time GroupDocs.Conversion for .NET enhances business performance by allowing you to convert between 50+ business and image file formats. This version now adds support for converting from EPS, TSV and PCL formats as well as rotating the pages while converting to PDF file. You can also measure conversion time and return it as a property of ConvertedDocument class. Read more details here.\n.NET Code Example: Adding and Searching Form Field Signatures in a PDF document GroupDocs.Signature for .NET API allows digitally sign files and manage eSignature of text, image, QR-Code, barcode, stamp and metadata types. The Form-Field signatures are the input control which are placed in a document page. The API supports adding and searching Form-Field signatures like Text, Checkbox or Digital within PDF document. Read more details here.\nJava Code Example: Adding and Searching Metadata Signatures in a PDF document GroupDocs.Signature for Java enables applications to configure and manipulate various types of digital signatures and certificates. Metadata signature is an additional document property that contains special attributes or tags to keep non-visual information inside the document. The ability to add and search Metadata signatures in a PDF document is supported now in the latest version. Read more details here.\nCode Example: Extracting Text and Metadata from Text and Presentation Templates in .NET and Java GroupDocs.Parser supports extracting text and metadata from a variety of document formats in raw and formatted forms from within .NET and Java applications. Using the latest version allows you to extract text and metadata from text and presentation template formats including: dotx (Template), dotm (Macro-enabled template), ott (OpenDocument Text Template), potx (Template), potm (Macro-enabled template), ppsm (Macro-enabled slideshow) and pptm (Macro-enabled presentation)./p\u0026gt;\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite. GroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite. GroupDocs.Comparison for .NET 18.11 – AutoShape issue in PowerPoint slides is now fixed. The style detection for slides is also improved. Check out for more releases during last month\n","permalink":"https://blog.groupdocs.com/total/groupdocs-holiday-offer-25-off-groupdocs.total-24-bottles-award-winning-pirathon-total-wine/","summary":"Share this issue:\nMonthly NewsletterJanuary 2019 25% off GroupDocs.Total OR 24 bottles of Award-Winning Pirathon Total Shiraz Wine\nGroupDocs.Total brings together all GroupDocs APIs in one product suite and is great value for money. This holiday season GroupDocs is making it even better value by giving you 25% off GroupDocs.Total. Simply enter the coupon code HOLOFF2018 when placing your order. Alternatively, treat yourself with 24 Bottles of Award-Winning Pirathon Total Wine (worth over $1500).","title":"GroupDocs Holiday Offer – 25% off GroupDocs.Total or 24 Bottles of Award Winning Pirathon Total Wine"},{"content":"\rWe at GroupDocs, are pleased to announce another monthly release of GroupDocs.Signature for .NET. This latest release 18.12 of the API comes up with a feature to add and search for Metadata Signatures in Images. Apart from that, a few fixes and improvements are also introduced in this version, therefore, we recommend you to download the new version of the API to evaluate the exciting new features and enhance your document e-signing experience.\nFeatures Search Metadata Signature in ImagesYou can search for Metadata Signatures within the Images. Following example demonstrates how to search Metadata Signatures in Images: // setup search options ImagesSearchMetadataOptions searchOptions = new ImagesSearchMetadataOptions(); // search document SearchResult result = handler.Search(fileName, searchOptions); Improvements Extend Form-Field signature name automatically with number prefix for multiple-pages options Handling exceptions with proper details and exception type Bug Fixes Skip Output folder when SaveOptions.OutputFileName is set as absolute path Exception is fired when searching in PDF documents for Form-Fields that were setup without name Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for .NET:\nNuGet - Nuget install Documentation - Product Docs API References – Signature API References Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/groupdocs.signature-for-.net-18.12/","summary":"We at GroupDocs, are pleased to announce another monthly release of GroupDocs.Signature for .NET. This latest release 18.12 of the API comes up with a feature to add and search for Metadata Signatures in Images. Apart from that, a few fixes and improvements are also introduced in this version, therefore, we recommend you to download the new version of the API to evaluate the exciting new features and enhance your document e-signing experience.","title":"Search for Metadata Signatures in Images using GroupDocs.Signature for .NET 18.12"},{"content":"\rWe are excitedly announcing another monthly release of GroupDocs.Editor for .NET. This latest release 18.12 comes up with some improvements, like compatibility of lists and paragraphs with HTML-Editors and stability in multi-threaded environment. Furthermore, few bug fixes are also introduced in this release, we therefore recommend our users to download latest API and get benefits from improved API features.\nImprovements Compatibility of lists and paragraphs with HTML-Editors Increase accuracy of space and gap distances between document elements Stability in multi-threaded environment Bug Fixes Exception with SDT during backward conversion Improper processing of bookmarks Incorrect processing of unusual shapes in ShapeProcessor Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Editor: NuGet - Download Documentation - API Documentation API References - Annotation API References Examples- Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Editor Video Tutorials - YouTube Video Tutorials FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/editor/groupdocs.editor-for-.net-18.12/","summary":"We are excitedly announcing another monthly release of GroupDocs.Editor for .NET. This latest release 18.12 comes up with some improvements, like compatibility of lists and paragraphs with HTML-Editors and stability in multi-threaded environment. Furthermore, few bug fixes are also introduced in this release, we therefore recommend our users to download latest API and get benefits from improved API features.\nImprovements Compatibility of lists and paragraphs with HTML-Editors Increase accuracy of space and gap distances between document elements Stability in multi-threaded environment Bug Fixes Exception with SDT during backward conversion Improper processing of bookmarks Incorrect processing of unusual shapes in ShapeProcessor Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Stability of Multi-Threaded Environment is Improved in GroupDocs.Editor for .NET 18.12"},{"content":"\rWe are pleased to announce the monthly release of GroupDocs.Search for Java 18.12. Using the latest version, you can now index and search blended characters and perform a wildcard search. We would recommend you to install and use the latest version of the API.\nFeatures Following are the new features introduced in the latest version:\nBlended Characters Search GroupDocs.Search for Java API 18.12 introduces a new class of characters - blended. When indexing, blended characters are interpreted simultaneously as valid letters and as separators. For example, if the hyphen is marked as a blended character then indexing of term \u0026lsquo;silver-gray\u0026rsquo; will result in saving of 3 terms in the index: \u0026lsquo;silver\u0026rsquo;, \u0026lsquo;gray\u0026rsquo;, and \u0026lsquo;silver-gray\u0026rsquo;. The following code snippet shows how to work with blended characters:\nString indexFolder = \u0026#34;c:\\\\MyIndex\u0026#34;; String documentFolder = \u0026#34;c:\\\\MyDocuments\u0026#34;; // Creating index Index index = new Index(indexFolder); // Marking hyphen as blended character index.getDictionaries().getAlphabet().setRange(new char[] { \u0026#39;-\u0026#39; }, CharacterType.Blended); // Adding documents to index index.addToIndex(documentFolder); // Searching for word \u0026#39;silver-gray\u0026#39; SearchResults results = index.search(\u0026#34;silver-gray\u0026#34;); For more details on this feature, please visit this documentation article.\nWildcard Search The latest version allows performing search of words containing wildcards. There are two possible forms of wildcards to use in wildcard search:\n? - question mark representing one arbitrary character ?(N~M) - the range of arbitrary characters in an amount from N to M, where N and M must be in the range from 0 to 255 The following code snippet shows how to perform wildcard search:\nString indexFolder = \u0026#34;c:\\\\MyIndex\u0026#34;; String documentFolder = \u0026#34;c:\\\\MyDocuments\u0026#34;; // Creating index Index index = new Index(indexFolder); // Adding documents to index index.addToIndex(documentFolder); // Searching for words \u0026#39;affect\u0026#39; or \u0026#39;effect\u0026#39; in a one document with // \u0026#39;principal\u0026#39;, \u0026#39;principle\u0026#39;, \u0026#39;principles\u0026#39;, or \u0026#39;principally\u0026#39; SearchResults results1 = index.search(\u0026#34;?ffect \u0026amp; princip?(2~4)\u0026#34;); // Searching with a single query for phrases \u0026#39;assure equal opportunities\u0026#39;, // \u0026#39;ensure equal opportunities\u0026#39;, and \u0026#39;sure equal opportunities\u0026#39; SearchResults results2 = index.search(\u0026#34;\\\u0026#34;?(0~2)sure equal opportunities\\\u0026#34;\u0026#34;); For more details on this feature, please visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Search:\nInstallation - Install GroupDocs.Search from Maven Documentation - API Documentation Examples - Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/search/perform-wildcard-search-in-groupdocs.search-for-java-18.12/","summary":"We are pleased to announce the monthly release of GroupDocs.Search for Java 18.12. Using the latest version, you can now index and search blended characters and perform a wildcard search. We would recommend you to install and use the latest version of the API.\nFeatures Following are the new features introduced in the latest version:\nBlended Characters Search GroupDocs.Search for Java API 18.12 introduces a new class of characters - blended.","title":"Perform Wildcard Search in GroupDocs.Search for Java 18.12"},{"content":"\rWe are delighted to announce the monthly release of GroupDocs.Search for .NET 18.12. Using the latest version, you can now index and search blended characters and perform a wildcard search. We would recommend you to install and use the latest version of the API.\nFeatures Following are the new features introduced in the latest version:\nBlended Characters Search GroupDocs.Search for .NET API 18.12 introduces a new class of characters - blended. When indexing, blended characters are interpreted simultaneously as valid letters and as separators. For example, if the hyphen is marked as a blended character then indexing of term \u0026lsquo;silver-gray\u0026rsquo; will result in saving of 3 terms in the index: \u0026lsquo;silver\u0026rsquo;, \u0026lsquo;gray\u0026rsquo;, and \u0026lsquo;silver-gray\u0026rsquo;. The following code snippet shows how to work with blended characters:\nstring indexFolder = @\u0026#34;c:\\MyIndex\u0026#34;; string documentFolder = @\u0026#34;c:\\MyDocuments\u0026#34;; // Creating index Index index = new Index(indexFolder); // Marking hyphen as blended character index.Dictionaries.Alphabet.SetRange(new char[] { \u0026#39;-\u0026#39; }, CharacterType.Blended); // Adding documents to index index.AddToIndex(documentFolder); // Searching for word \u0026#39;silver-gray\u0026#39; SearchResults results = index.Search(\u0026#34;silver-gray\u0026#34;); For more details on this feature, please visit this documentation article.\nWildcard Search The latest version allows performing search of words containing wildcards. There are two possible forms of wildcards to use in wildcard search:\n? - question mark representing one arbitrary character ?(N~M) - the range of arbitrary characters in an amount from N to M, where N and M must be in the range from 0 to 255 This following code snippet shows how to perform wildcard search:\nstring indexFolder = @\u0026#34;c:\\MyIndex\u0026#34;; string documentFolder = @\u0026#34;c:\\MyDocuments\u0026#34;; // Creating index Index index = new Index(indexFolder); // Adding documents to index index.AddToIndex(documentFolder); // Searching for words \u0026#39;affect\u0026#39; or \u0026#39;effect\u0026#39; in a one document with // \u0026#39;principal\u0026#39;, \u0026#39;principle\u0026#39;, \u0026#39;principles\u0026#39;, or \u0026#39;principally\u0026#39; SearchResults results1 = index.Search(\u0026#34;?ffect \u0026amp; princip?(2~4)\u0026#34;); // Searching with a single query for phrases \u0026#39;assure equal opportunities\u0026#39;, // \u0026#39;ensure equal opportunities\u0026#39;, and \u0026#39;sure equal opportunities\u0026#39; SearchResults results2 = index.Search(\u0026#34;\\\u0026#34;?(0~2)sure equal opportunities\\\u0026#34;\u0026#34;); For more details on this feature, please visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search:\nInstallation - Install GroupDocs.Search using NuGet Documentation - Product docs Examples/Plugins/Showcases - Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to the GroupDocs.Search for .NET API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/work-with-blended-characters-using-groupdocs.search-for-.net-18.12/","summary":"We are delighted to announce the monthly release of GroupDocs.Search for .NET 18.12. Using the latest version, you can now index and search blended characters and perform a wildcard search. We would recommend you to install and use the latest version of the API.\nFeatures Following are the new features introduced in the latest version:\nBlended Characters Search GroupDocs.Search for .NET API 18.12 introduces a new class of characters - blended.","title":"Work with Blended Characters using GroupDocs.Search for .NET 18.12"},{"content":"\rWe are pleased to announce GroupDocs.Merger for Java 18.12 with many new features. This latest release provides the ability to change page orientation along with a feature to rotate pages in the document. Furthermore, you can also get a list of all the formats supported by the API. Please check GroupDocs.Merger for Java 18.12 release notes for further reference.\nFeatures Change Page OrientationNew method changeOrientation let you change page orientation (portrait, landscape) for pages in the document. DocumentResult result = new DocumentHandler().changeOrientation(documentExample, OrientationMode.Landscape, new int[]{1,6}); Get Supported FormatsMethod getSupportedFormats() is added to get all formats supported by the API. Map documentFormatsContainer = new DocumentHandler().getSupportedFormats(); Rotate PagesrotatePages method allows you to rotate pages in document. DocumentResult result = new DocumentHandler().rotatePages(documentExample, RotateMode.Rotate270); Supports Diagram and Note FormatsDiagram and Note formats are supported by following methods: Join MovePage RemovePage Split document SwapPages Trim Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Merger: API Home - GroupDocs.Merger for Java Download - GroupDocs.Merger for Java Download Documentation - Product Documentation Examples - GitHub source code examples Product Support Forum - Technical Support Forum for GroupDocs.Merger ","permalink":"https://blog.groupdocs.com/merger/groupdocs.merger-for-java-18.12/","summary":"We are pleased to announce GroupDocs.Merger for Java 18.12 with many new features. This latest release provides the ability to change page orientation along with a feature to rotate pages in the document. Furthermore, you can also get a list of all the formats supported by the API. Please check GroupDocs.Merger for Java 18.12 release notes for further reference.\nFeatures Change Page OrientationNew method changeOrientation let you change page orientation (portrait, landscape) for pages in the document.","title":"Change Page Orientation using GroupDocs.Merger for Java 18.12"},{"content":"\rWe are excitedly announcing the monthly release of GroupDocs.Assembly for Java 18.12. Using the latest version, you can now assemble external documents dynamically for Word Processing and Email file formats. Previously, an evaluation mark was added to a nested document being inserted dynamically, which is now fixed. We recommend you to install the latest version of the API for better user experience.\nFeatures Introduced You can insert contents of outer documents to your reports dynamically using doc tags. A doc tag denotes a placeholder within a template for a document to be inserted during runtime. The syntax of a doc tag is defined as follows:\n\u0026lt;\u0026lt;doc [\u0026#34;document_expression\u0026#34;]\u0026gt;\u0026gt; An expression declared within a doc tag is used by the engine to load a document to be inserted during runtime. The expression must return a value of one of the following types:\nA byte array containing document data An InputStream instance able to read document data A string containing a document URI While building a report, an expression declared within a doc tag is evaluated and its result is used to load a document whose content replaces the doc tag then. By default, a document being inserted is not checked against template syntax and is not populated with data as well. However, you can enable this by using a build switch as follows:\n\u0026lt;\u0026lt;doc [\u0026#34;document_expression\u0026#34;] -build\u0026gt;\u0026gt; When a build switch is used, the engine treats a document being inserted as a template that can access the following data available at the scope of a corresponding doc tag:\nData sources Variables A contextual object Known external types For more details on this feature, please visit this documentation article.\nFixes The following bug is fixed in the latest version of the API.\nAn evaluation mark is added to a nested document being inserted dynamically Available Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Assembly for Java:\nInstallation - Install GroupDocs.Assembly from Maven Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Assembly product family Feedback We always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Assembly for Java at our forum.\n","permalink":"https://blog.groupdocs.com/assembly/assemble-external-document-dynamically-using-groupdocs.assembly-java-18.12/","summary":"We are excitedly announcing the monthly release of GroupDocs.Assembly for Java 18.12. Using the latest version, you can now assemble external documents dynamically for Word Processing and Email file formats. Previously, an evaluation mark was added to a nested document being inserted dynamically, which is now fixed. We recommend you to install the latest version of the API for better user experience.\nFeatures Introduced You can insert contents of outer documents to your reports dynamically using doc tags.","title":"Assemble External Document Dynamically using GroupDocs.Assembly for Java 18.12"},{"content":"\rWe are delighted to announce a new feature in the monthly release of GroupDocs.Assembly for .NET 18.12. Using the latest version, you can now assemble external documents dynamically for Word Processing and Email file formats. Previously, an evaluation mark was added to a nested document being inserted dynamically, which is now fixed. We recommend you to install and use the latest version of the API.\nFeatures Introduced You can insert contents of outer documents to your reports dynamically using doc tags. A doc tag denotes a placeholder within a template for a document to be inserted during runtime. The syntax of a doc tag is defined as follows:\n\u0026lt;\u0026lt;doc [\u0026#34;document_expression\u0026#34;]\u0026gt;\u0026gt; An expression declared within a doc tag is used by the engine to load a document to be inserted during runtime. The expression must return a value of one of the following types:\nA byte array containing document data A Stream instance able to read document data A string containing a document URI While building a report, an expression declared within a doc tag is evaluated and its result is used to load a document which content replaces the doc tag then. By default, a document being inserted is not checked against template syntax and is not populated with data as well. However, you can enable this by using a build switch as follows:\n\u0026lt;\u0026lt;doc [\u0026#34;document_expression\u0026#34;] -build\u0026gt;\u0026gt; When a build switch is used, the engine treats a document being inserted as a template that can access the following data available at the scope of a corresponding doc tag:\nData sources Variables A contextual object Known external types For more details on this feature, please visit this documentation article.\nFixes The following bug is fixed in the latest version of the API.\nAn evaluation mark is added to a nested document being inserted dynamically Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly for .NET.\nInstallation - Install GroupDocs.Assembly using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Showcase Applications Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly Product Family Feedback As always, if you have some questions, queries or suggestions about GroupDocs.Assembly for .NET API, just share with us by creating a forum thread.\n","permalink":"https://blog.groupdocs.com/assembly/support-for-dynamic-insertion-of-external-documents-in-groupdocs.assembly-for-.net-18.12/","summary":"We are delighted to announce a new feature in the monthly release of GroupDocs.Assembly for .NET 18.12. Using the latest version, you can now assemble external documents dynamically for Word Processing and Email file formats. Previously, an evaluation mark was added to a nested document being inserted dynamically, which is now fixed. We recommend you to install and use the latest version of the API.\nFeatures Introduced You can insert contents of outer documents to your reports dynamically using doc tags.","title":"Support for Dynamic Insertion of External Documents in GroupDocs.Assembly for .NET 18.12"},{"content":"\rWe are pleased to announce the monthly release of GroupDocs.Metadata for .NET 18.12. Using the latest version, you can now work with the password-protected PDF, Word, Excel, and PowerPoint documents. Furthermore, obsolete methods of MP3 and MPP formats are removed and memory consumption for working with Word and PowerPoint formats is now reduced. We recommend you to install and use the latest version of the API.\nFeatures IntroducedThe following features are introduced in version 18.12. Support for password-protected documents For details about the features supported by the API, please visit Features Overview.\nEnhancementsFollowing are the enhancements introduced in version 18.12. Reduced memory consumption for Word format\u0026rsquo;s loading and saving Reduced memory consumption for PowerPoint format\u0026rsquo;s loading and saving Removed obsolete members of the Mp3Format class Removed obsolete method MppFormat.GetProperties Support to update more metadata keys in DOC/DOCX file formats FixesThe following bug is fixed in the latest version: Removing Author property from DOC/DOCX removes Content Type, Scale, Version and Language properties Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Installation - Install GroupDocs.Metadata using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/work-with-password-protected-documents-using-groupdocs.metadata-for-.net-18.12/","summary":"We are pleased to announce the monthly release of GroupDocs.Metadata for .NET 18.12. Using the latest version, you can now work with the password-protected PDF, Word, Excel, and PowerPoint documents. Furthermore, obsolete methods of MP3 and MPP formats are removed and memory consumption for working with Word and PowerPoint formats is now reduced. We recommend you to install and use the latest version of the API.\nFeatures IntroducedThe following features are introduced in version 18.","title":"Work with Password-Protected Documents using GroupDocs.Metadata for .NET 18.12"},{"content":"\rWe are glad to announce the monthly releaseof GroupDocs.Metadata for Java 18.12. Using the latest version, you can now work with the password-protected PDF, Word, Excel, and PowerPoint documents. Furthermore, obsolete methods of MP3 and MPP formats are removed and memory consumption for working with Word and PowerPoint formats is now reduced. We recommend you to install and use the latest version of the API.\nFeatures IntroducedThe following features are introduced in version 18.12. Support for password-protected documents For details about the features supported by the API, please visit Features Overview.\nEnhancementsFollowing are the enhancements introduced in version 18.12. Reduced memory consumption for Word format\u0026rsquo;s loading and saving Reduced memory consumption for PowerPoint format\u0026rsquo;s loading and saving Removed obsolete members of the Mp3Format class Removed obsolete method MppFormat.GetProperties Support to update more metadata keys in DOC/DOCX file formats FixesThe following bug is fixed in the latest version: Removing Author property from DOC/DOCX removes Content Type, Scale, Version and Language properties Available Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Metadata for Java: Installation - Install GroupDocs.Metadata from Maven Documentation – API docs Examples – Source code examples Video Tutorials - YouTube API Videos Product Support Forum – Technical support forum for GroupDocs.Metadata product family FeedbackWe always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Metadata for Java at our forum. ","permalink":"https://blog.groupdocs.com/metadata/get-password-protected-documents-metadata-using-groupdocs.metadata-java-18.12/","summary":"We are glad to announce the monthly releaseof GroupDocs.Metadata for Java 18.12. Using the latest version, you can now work with the password-protected PDF, Word, Excel, and PowerPoint documents. Furthermore, obsolete methods of MP3 and MPP formats are removed and memory consumption for working with Word and PowerPoint formats is now reduced. We recommend you to install and use the latest version of the API.\nFeatures IntroducedThe following features are introduced in version 18.","title":"Get Password-Protected Document's Metadata using GroupDocs.Metadata for Java 18.12"},{"content":"\rIt is our pleasure to announce the release of version 18.12 of GroupDocs.Parser for .NET. The latest version allows you to extract the tables from PDF documents. Furthermore, we have added the support of extracting text and metadata from text and presentation templates. For more details, please have a look at the release notes of version 18.12.\nFeatures Introduced Extracting Tables from PDF DocumentsThis feature is very useful when you want to extract only the tables form a PDF document. For extracting tables, TableAreaParser class is used. The instance of TableAreaParser class is available via property with the same name in PdfTextExtractor class. You can create the table bounds manually or let the API detect the layout in automatic mode using TableAreaDetector class. For working example of this feature, please refer to this documentation article. Extracting Text and Metadata from Text and Presentation TemplatesGroupDocs.Parser now supports extracting text and metadata from the following text and presentation template formats: dotx (Template) dotm (Macro-enabled template) ott (OpenDocument Text Template) potx (Template) potm (Macro-enabled template) ppsm (Macro-enabled slideshow) pptm (Macro-enabled presentation) The following code samples show how to extract text and metadata from templates.\n// Extracting Text void ExtractText(string fileName) { // Extract a text from the file var text = Extractor.Default.ExtractText(fileName); // Print an extracted text Console.WriteLine(text); } // Extracting Metadata void ExtractMetadata(string fileName) { // Extract metadata from the file var metadata = Extractor.Default.ExtractMetadata(fileName); // Print extracted metadata foreach (var m in metadata) { // Print a metadata key Console.Write(m.Key); Console.Write(\u0026#34;: \u0026#34;); // Print a metadata value Console.WriteLine(m.Value); } } Enhancements Detecting Type of Password-protected Office Open XML DocumentsThis feature allows detecting media type of the password-protected Office Open XML documents. To detect media type of encrypted Office Open XML document, Detect(Stream, LoadOptions) method is used. You can also use IPasswordProvider interface for batch document processing. For working examples of this feature, please refer to this documentation article. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Parser:\nInstallation - Install GroupDocs.Parser using NuGet Documentation - Product Docs Examples - GitHub Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Parser Have Queries? If you have got any queries or concerns about the API, please feel free to get in touch with us over the forum. We’ll be glad to address your concerns.\n","permalink":"https://blog.groupdocs.com/parser/extract-tables-from-pdf-documents-using-groupdocs.parser-for-.net-18.12/","summary":"It is our pleasure to announce the release of version 18.12 of GroupDocs.Parser for .NET. The latest version allows you to extract the tables from PDF documents. Furthermore, we have added the support of extracting text and metadata from text and presentation templates. For more details, please have a look at the release notes of version 18.12.\nFeatures Introduced Extracting Tables from PDF DocumentsThis feature is very useful when you want to extract only the tables form a PDF document.","title":"Extract Tables from PDF Documents using GroupDocs.Parser for .NET 18.12"},{"content":"\rWe are pleased to announce the monthly release of GroupDocs.Viewer for .NET 18.12. This release includes three new features, two bug fixes, and four improvements. By upgrading to the latest version, you\u0026rsquo;ll be able to get the list of folders and render messages from a specific folder contained in Outlook Data Files (OST/PST). Furthermore, it also allows you to ignore empty columns when rendering Excel documents. Below is the list of new features, fixes, and the improvements added in version 18.12.\nFeatures Introduced Working with Folders Contained in OST/PST FormatsGroupDocs.Viewer now also allows you to deal with the folders and the sub-folders in Outlook Data File documents (OST/PST). You can retrieve the list of the folders contained by a document and render the messages from a specific folder or the sub-folder such as Inbox, Sent Items, Deleted, Inbox\\Sub_Folder_1 etc. This feature is available for rendering the document into HTML, image, and PDF. For working examples, please visit the following documentation articles: Retrieving the List of Outlook Folders Rendering Messages from Specified Folder Ignoring Empty Columns in Excel DocumentsSometimes Excel worksheet contains the empty columns along with the columns populated with data. In this case, if the number of empty columns is considerably huge, the rendering time increases and hence, it affects the performance. For such cases, we have introduced a new feature that ignores the empty columns using CellsOptions.IgnoreEmptyColumns property. For a working example, please visit this documentation article. Improvements We have included the following improvements in version 18.12:\nIgnore empty string when it is passed as path to directory with fonts Improve rendering into HTML for Outlook Data Files with subfolders and empty folders Set exception localization feature as obsolete Prevent rendering frozen and invisible CAD layers by default Bug Fixes Following issues are fixed in version 18.12 of GroupDocs.Viewer for .NET.\nPDF contains blank page when rendering XPS to PDF Issue with the image source when rendering Excel to HTML with embedded resources Related Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer.\nInstallation - Install GroupDocs.Viewer using NuGet Documentation - Product Docs Video Tutorials - YouTube Videos Examples / Plugins - GitHub Source Code Examples Sample Front End Apps - Open Source Document Viewer Applications Technical Support Forum - Technical Support Forum for GroupDocs.Viewer Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/working-with-folders-contained-in-ostpst-formats-groupdocs.viewer-for-.net-18.12/","summary":"We are pleased to announce the monthly release of GroupDocs.Viewer for .NET 18.12. This release includes three new features, two bug fixes, and four improvements. By upgrading to the latest version, you\u0026rsquo;ll be able to get the list of folders and render messages from a specific folder contained in Outlook Data Files (OST/PST). Furthermore, it also allows you to ignore empty columns when rendering Excel documents. Below is the list of new features, fixes, and the improvements added in version 18.","title":"Working with Folders Contained in Outlook Data Files using GroupDocs.Viewer for .NET 18.12"},{"content":"\rWe are excitedly announcing another monthly release of GroupDocs.Annotation for .NET. This latest release 18.12 allows you to export annotations with some additional options, like the ability to export specific annotation type, range of pages and few more. Apart from that, a few fixes and improvements are also introduced in this version, therefore, we recommend you to download the new version of the API to enhance your document annotation experience.\nFeatures Export documents with specific annotation type and range of pages Possibility to retrieve pages with or without annotations Improvements Ensured and updated GroupDocs.Annotation code is thread-safe Add text replacement for grouped shapes Bug Fixes AnnotationImageHandler.GetDocumentInfo method in trial mode throws exception Bug during apply annotation to empty document in Cells NotSupportedException exception when pass password parameter for Images Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation:\nNuget Package - Download Documentation - Product Docs Examples - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/groupdocs.annotation-for-.net-18.12/","summary":"We are excitedly announcing another monthly release of GroupDocs.Annotation for .NET. This latest release 18.12 allows you to export annotations with some additional options, like the ability to export specific annotation type, range of pages and few more. Apart from that, a few fixes and improvements are also introduced in this version, therefore, we recommend you to download the new version of the API to enhance your document annotation experience.","title":"Export Annotations with Additional Options using GroupDocs.Annotation for .NET 18.12"},{"content":"\rWe are delighted to announce another monthly release of GroupDocs.Signature for Java. This latest version 18.11 comes up with multitudinous features along with numerous improvements and fixes. The main feature introduced in this release is ability to add and search Metadata Signatures in a PDF document. Therefore, we would recommend you to download the new version of the API to evaluate the exciting new features and enhance your document e-signing experience.\nFeatures Verify Encrypted QR-Code TextUsers of this API can verify the encrypted QR-Code text in a document using property setDataEncryption Following example demonstrates how to verify text of encrypted QR-Code Signature in a PDF document: // setup key and pasphrase String key = \u0026#34;1234567890\u0026#34;; String salt = \u0026#34;1234567890\u0026#34;; // create data encryption IDataEncryption encrypter = new SymmetricEncryption(SymmetricAlgorithmType.Rijndael, key, salt); // setup verification options PDFVerifyQRCodeOptions verifyOptions = new PDFVerifyQRCodeOptions(\u0026#34;This is private text to be secured.\u0026#34;); // specify as true to verify all pages of a document verifyOptions.setVerifyAllPages(true); // setup encrypter to retrieve original text verifyOptions.setDataEncryption(encrypter); //verify document VerificationResult result = handler.verify(fileName, verifyOptions); Align Text in Text SignatureUsers can align text in Text Signature for a Words, Slides, Images and PDF documents. Following code sample shows how to align the text in Text Signature for a Cells document: // setup options with text of signature CellsSignTextOptions signOptions = new CellsSignTextOptions(\u0026#34;John Smith\u0026#34;); // text rectangle size signOptions.setHeight(100); signOptions.setWidth(100); // set text alignment inside signature (This feature is supported starting from version 18.11) signOptions.setTextHorizontalAlignment(TextHorizontalAlignment.Center); signOptions.setTextVerticalAlignment(TextVerticalAlignment.Center); Set Signature Position in Cells Document with PixelsThis version of the API allow users to set position of signatures in a Cells document with pixels. Following code shows how to set position of a Text Signature in the Cells document: // Specify Signature Options CellsSignTextOptions signOptions = new CellsSignTextOptions (\u0026#34;John Smith\u0026#34;); signOptions.setWidth(100); signOptions.setHeight(100); signOptions.setTop(15); signOptions.setLeft(22); Ability for CancellationThe API provides ability for cancellation of following processes: Search Verification Signing Following example demonstrates how to cancel signing process:\n// setup signature option PdfSignTextOptions signOptions = new PdfSignTextOptions(\u0026#34;John Smith\u0026#34;,10,10,100,100); signOptions.setSignAllPages(true); handler.SignatureStarted.add(new ProcessStartEventHandler() { public void invoke(Object sender, ProcessStartEventArgs args) { System.out.println(\u0026#34;Processing of \u0026#34;+args.getTotalSignatures()+\u0026#34; signatures for \u0026#34;+args.getGuid()+\u0026#34; started at \u0026#34; + args.getStarted().toString()); } }); handler.SignatureProgress.add(new ProcessProgressEventHandler(){ public void invoke(Object sender, ProcessProgressEventArgs args) { System.out.println(\u0026#34;Singing of \u0026#34;+args.getGuid()+\u0026#34; progress: \u0026#34;+args.getProgress()+\u0026#34; %. Processed \u0026#34;+args.getProcessedSignatures()+\u0026#34; signatures. Since start process spent \u0026#34;+args.getTicks()+\u0026#34; mlsec\u0026#34;); if(args.getProgress() \u0026gt; 10){ args.setCancel(true); System.out.println(\u0026#34;Cancellation of process\u0026#34;); } } }); handler.SignatureCompleted.add(new ProcessCompleteEventHandler() { public void invoke(Object sender, ProcessCompleteEventArgs args) { if (args.getCanceled()){ System.out.println(\u0026#34;Singing process was canceled\u0026#34;); } else{ System.out.println(\u0026#34;Singing of \u0026#34;+args.getGuid()+\u0026#34; completed at \u0026#34;+args.getCompleted().toString()+\u0026#34;. Processing of \u0026#34;+args.getTotalSignatures()+\u0026#34; signatures took \u0026#34;+args.getTicks()+\u0026#34; mlsec\u0026#34;); } } }); Support of Measure Type Units for Cells PositioningUsers can set position of Signatures in a Cells document with some predefined measure units for following signature types: Text Signatures Image Signatures Digital Signatures QR-Code Signatures Barcode Signatures Stamp Signatures Following example demonstrates using Measure Type properties to set position of a Image Signature in the Cells document:\nCellsSignImageOptions signOptions = new CellsSignImageOptions (CommonUtilities.getImagesPath(\u0026#34;sign.png\u0026#34;)); // specify Size signOptions.setSizeMeasureType(MeasureType.Percents); signOptions.setHeight(25); signOptions.setWidth(25); // specify size in percents of page size signOptions.setMarginMeasureType(MeasureType.Percents); signOptions.getMargin().setTop(25); // specify Intents signOptions.setTop(15); signOptions.setLeft(20); Metadata Signatures for PDF DocumentThe Metadata Signature is the additional document property that contains special attributes/tags to keep non visual information inside the document. Following example demonstrates how to compose Metadata Signature options for a PDF document: // setup options with text of signature PdfMetadataSignOptions signMetadataOptions = new PdfMetadataSignOptions(); // Specify different Metadata Signatures and add them to options sigature collection // setup Author property PdfMetadataSignature mdSign_Author = new PdfMetadataSignature(\u0026#34;Author\u0026#34;, \u0026#34;Mr.Scherlock Holmes\u0026#34;); signMetadataOptions.getMetadataSignatures().add(mdSign_Author); // setup data of document id PdfMetadataSignature mdSign_DocId = new PdfMetadataSignature(\u0026#34;DocumentId\u0026#34;, java.util.UUID.randomUUID().toString()); signMetadataOptions.getMetadataSignatures().add(mdSign_DocId); // setup data of sign date PdfMetadataSignature mdSign_Date = new PdfMetadataSignature(\u0026#34;SignDate\u0026#34;, new Date(), \u0026#34;pdf\u0026#34;); signMetadataOptions.getMetadataSignatures().add(mdSign_Date); Search Metadata SignatureUsers of this API can search for Metadata Signatures within the document. Following example demonstrates how to search Metadata Signatures in a PDF document: // setup search options PdfSearchMetadataOptions searchOptions = new PdfSearchMetadataOptions(); // search document SearchResult result = handler.search(\u0026#34;SignedMetadata.pdf\u0026#34;, searchOptions); Save Image as PDF DocumentImage files can be saved to PDF format using this latest release of the API. MatchType for Text Verification OptionsThe API provides ability to verify Text Signatures with an extended option MatchType Improvements Verify QR-Code and Barcode Signatures without specifying EncodeType Global Exception handler to catch all un-handled exceptions Setting color of QR-code and Barcode text with fore color value Global Exception handler to catch all unhandled exceptions Support of several Words Digital Search Options and Cells Digital Search Options Bug Fixes Fix exception on QR-Code Signature Verification when options has no Encode Type specified Wrong text alignment in Text Signature shape for Words QR-Code rendering for various settings Wrong border appearance for PDF Text as Image signatures QR-Code positioning when Signature area is more than generated QR-Code Freezing of signature process on Images for QR-Code Signature Incorrect signing image documents with .psd, .wmf and .svg format Output PDF incorrectly signed with Digital Certificates Unable to search Digital signature in Cells with extended options Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for Java:\nDownload – JAR Files Documentation – API Docs Product Support Forum – Technical Support Forum for GroupDocs.Signature Examples – GitHub source code examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/groupdocs.signature-java-18.11/","summary":"We are delighted to announce another monthly release of GroupDocs.Signature for Java. This latest version 18.11 comes up with multitudinous features along with numerous improvements and fixes. The main feature introduced in this release is ability to add and search Metadata Signatures in a PDF document. Therefore, we would recommend you to download the new version of the API to evaluate the exciting new features and enhance your document e-signing experience.","title":"Introducing Metadata Signatures for PDF in GroupDocs.Signature for Java 18.11"},{"content":"\rGroupDocs.Comparison for .NET 18.11 comes with a bug fix and a few improvements. AutoShape issue in Slides is now fixed. Furthermore, Charts comparison in Slides is improved. Please follow the release notes here for further details. We would recommend you to try the latest version of the API and share your feedback.\nImprovementsFollowing improvements are introduced: Make Comparison thread-safe Improve charts comparing on Slides Style detection on Slides Comparison tester for Words Bug FixFollowing issues are resolved for Slides: Fix issues with AutoShape in Slides Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nNuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/style-detection-for-slides-is-improved-in-groupdocs.comparison-for-.net-18.11/","summary":"GroupDocs.Comparison for .NET 18.11 comes with a bug fix and a few improvements. AutoShape issue in Slides is now fixed. Furthermore, Charts comparison in Slides is improved. Please follow the release notes here for further details. We would recommend you to try the latest version of the API and share your feedback.\nImprovementsFollowing improvements are introduced: Make Comparison thread-safe Improve charts comparing on Slides Style detection on Slides Comparison tester for Words Bug FixFollowing issues are resolved for Slides: Fix issues with AutoShape in Slides Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Style Detection for Slides is Improved in GroupDocs.Comparison for .NET 18.11"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Signature for .NET. This latest release 18.11 of the API comes up with a multitude of new features like the ability to add form-field signatures in PDF documents and many more. We therefore recommend you to download the new version of the API to evaluate the exciting new features and enhance your document e-signing experience.\nFeatures Sign PDF Document with a Form-Field SignatureThe Form-Field Signatures are the input control which are placed in a document page. Following example demonstrates how to add Checkbox in a PDF document: // instantiate check-box form field signature FormFieldSignature checkboxSignature = new PdfCheckboxFormFieldSignature(\u0026#34;FieldCheckbox\u0026#34;, true); // instantiate options based on check-box form field signature PdfFormFieldSignOptions checkboxOptions = new PdfFormFieldSignOptions(checkboxSignature) { HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top, Margin = new Padding(120, 20, 0, 0), Height = 10, Width = 10 }; // sign document string signedPath = handler.Sign(\u0026#34;02_pages.pdf\u0026#34;, checkboxOptions, new SaveOptions { OutputType = OutputType.String, OutputFileName = \u0026#34;Pdf_FormFields\u0026#34; }); Search Form-Field Signatures in a PDF DocumentAPI allows you to search for Form-Field Signatures like Text, Checkbox or Digital within the document. Following example demonstrates how to search Form-Field Signature in PDF document: // setup search options PdfSearchFormFieldOptions searchOptions = new PdfSearchFormFieldOptions(); searchOptions.SearchAllPages = true; searchOptions.NamePattern = @\u0026#34;Field\u0026#34;; searchOptions.Value = @\u0026#34;Value1\u0026#34;; // search document SearchResult result = handler.Search(\u0026#34;Pdf_FormFields_Signed.pdf\u0026#34;, searchOptions); Metadata Signatures for Slides documentThe Metadata Signature is the additional document property that contains special attributes/tags to keep non visual information inside the document. Following example demonstrates how to compose Metadata Signature options for Slides document: // setup options with text of signature SlidesMetadataSignOptions signOptions = new SlidesMetadataSignOptions(); // Specify different Metadata Signatures and add them to options sigature collection // setup Author property SlidesMetadataSignature mdSign_Author = new SlidesMetadataSignature(\u0026#34;Author\u0026#34;, \u0026#34;Mr.Scherlock Holmes\u0026#34;); signOptions.MetadataSignatures.Add(mdSign_Author); // setup data of document id SlidesMetadataSignature mdSign_DocId = new SlidesMetadataSignature(\u0026#34;DocumentId\u0026#34;, Guid.NewGuid().ToString()); signOptions.MetadataSignatures.Add(mdSign_DocId); // setup data of sign date SlidesMetadataSignature mdSign_Date = new SlidesMetadataSignature(\u0026#34;SignDate\u0026#34;, DateTime.Now); signOptions.MetadataSignatures.Add(mdSign_Date); // setup some integer value SlidesMetadataSignature mdSign_Days = new SlidesMetadataSignature(\u0026#34;DocDays\u0026#34;, 12345); signOptions.MetadataSignatures.Add(mdSign_Days); // setup data of sign date SlidesMetadataSignature mdSign_Koeff = new SlidesMetadataSignature(\u0026#34;SignKoeff\u0026#34;, 2.345M); signOptions.MetadataSignatures.Add(mdSign_Koeff); // sign document string signedPath = handler.Sign(\u0026#34;test.pptx\u0026#34;, signOptions, new SaveOptions { OutputType = OutputType.String, OutputFileName = \u0026#34;Slides_Documents_Metadata\u0026#34; }); Search Metadata Signature in a Slides documentYou can search for Metadata Signatures within the Slides document. Following example demonstrates how to search Metadata Signatures in Slides document: // setup search options SlidesSearchMetadataOptions searchOptions = new SlidesSearchMetadataOptions(); // set if we need built-in signatures searchOptions.IncludeBuiltinProperties = true; // search document SearchResult result = handler.Search(\u0026#34;SignedMetadata.pptx\u0026#34;, searchOptions); Additional Verification CriteriaThis latest version of the API provides few additional properties to verify Digital Signatures of Words document. // setup digital verification options WordsVerifyDigitalOptions verifyOptions = new WordsVerifyDigitalOptions(\u0026#34;SherlockHolmes.cer\u0026#34;); verifyOptions.Comments = \u0026#34;Test1\u0026#34;; verifyOptions.SubjectName = \u0026#34;Signature\u0026#34;; verifyOptions.IssuerName = \u0026#34;GroupDocs\u0026#34;; verifyOptions.SignDateTimeFrom = new DateTime(2017, 1, 26, 14, 55, 57); verifyOptions.SignDateTimeTo = new DateTime(2017, 1, 26, 14, 55, 59); //verify document VerificationResult result = handler.Verify(\u0026#34;digital signatures.docx\u0026#34;, verifyOptions); Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for .NET:\nNuGet - Nuget install Documentation - Product Docs API References – Signature API References Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/groupdocs.signature-for-.net-18.11/","summary":"We are pleased to announce another monthly release of GroupDocs.Signature for .NET. This latest release 18.11 of the API comes up with a multitude of new features like the ability to add form-field signatures in PDF documents and many more. We therefore recommend you to download the new version of the API to evaluate the exciting new features and enhance your document e-signing experience.\nFeatures Sign PDF Document with a Form-Field SignatureThe Form-Field Signatures are the input control which are placed in a document page.","title":"Add Form-Field Signatures in PDF using GroupDocs.Signature for .NET 18.11"},{"content":"\rGroupDocs.Conversion for .NET 18.11 comes with a lot of new features and some improvements. Conversion from EPS, TSV and PCL formats is introduced. Furthermore, API provides an option for page rotation when converting to PDF. Please check GroupDocs.Conversion for .NET 18.11 release notes for further reference.\nImprovements Move HideWordTrackedChanges option to WordsLoadOptions class HidePdfAnnotations option to PdfLoadOptions class HideComments option to CellsLoadOptions, Slides CellsLoadOptions and WordsLoadOptions class Features Setting Default Font and Font Substitution Options When Converting OneNote Document const string source = \u0026#34;source.one\u0026#34;; var loadOptions = new OneLoadOptions { DefaultFont = \u0026#34;Helvetica\u0026#34;, }; loadOptions.FontSubstitutes.Add(new KeyValuePair(\u0026#34;Arial\u0026#34;, \u0026#34;Helvetica\u0026#34;)); loadOptions.FontSubstitutes.Add(new KeyValuePair(\u0026#34;Harriet\u0026#34;, \u0026#34;Transcript\u0026#34;)); Set default font when converting from Diagram const string source = \u0026#34;source.vsd\u0026#34;; var loadOptions = new DiagramLoadOptions { DefaultFont = \u0026#34;Helvetica\u0026#34;, }; Measure Conversion TimeMeasure conversion time and return it as a property of ConvertedDocument class var convertedDocument = conversionHandler.Convert(source, saveOptions); Console.WriteLine(\u0026#34;Elapsed time: {0}ms\u0026#34;, convertedDocument.Elapsed); Rotation Feature When Converting to PDF FormatImplement rotation feature when converting to PDF var saveOptions = new PdfSaveOptions { Rotate = PdfSaveOptions.Rotation.On90 }; When Converting to Image var saveOptions = new ImageSaveOptions { RotateAngle = 45 }; Flatten all Form FieldsOption to flatten all form fields when converting PDF documents var loadOptions = new PdfLoadOptions { FlattenAllFields = true }; Include Hidden Slides in Converted DocumentInclude hidden Slides in converted document when converting from Slides var loadOptions = new SlidesLoadOptions { ShowHiddenSlides = true }; New Document Formats IntroducedGroupDocs.Conversion for .NET 18.11 implements conversion from EPS, PCL and TSV. You can also convert documents to TSV format. API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nNuGet - Nuget install Documentation - Product Wiki Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/measure-document-conversion-time-using-groupdocs.conversion-for-.net-18.11/","summary":"GroupDocs.Conversion for .NET 18.11 comes with a lot of new features and some improvements. Conversion from EPS, TSV and PCL formats is introduced. Furthermore, API provides an option for page rotation when converting to PDF. Please check GroupDocs.Conversion for .NET 18.11 release notes for further reference.\nImprovements Move HideWordTrackedChanges option to WordsLoadOptions class HidePdfAnnotations option to PdfLoadOptions class HideComments option to CellsLoadOptions, Slides CellsLoadOptions and WordsLoadOptions class Features Setting Default Font and Font Substitution Options When Converting OneNote Document const string source = \u0026#34;source.","title":"Measure Document Conversion Time using GroupDocs.Conversion for .NET 18.11"},{"content":"\rShare this issue:\nMonthly NewsletterDecember 2018 25% off GroupDocs.Total OR 24 bottles of Award-Winning Pirathon Total Shiraz\nGet 25% off GroupDocs.Total OR 24 Bottles of Award-Winning Pirathon Total Shiraz (worth over $1500). Quote HOLOFF2018 or PIRATH2018 when placing your order.\nThis offer is only available on new GroupDocs.Total purchases and cannot be used in conjunction with other offers, renewals or upgrades. Only available directly from GroupDocs.com, not through third parties or resellers. Ts\u0026amp;Cs Apply\nProduct News\nNew API Launched: GroupDocs.Search for Java GroupDocs.Search for Java API is now launched! It enables Java programmers to perform advanced document search and indexing operations to extract text and metadata from business documents formats. Use Simple, Boolean, Regular Expression (Regex), Fuzzy and other types of queries to rapidly and smartly search through indexes. Programmatically fetch all required information from files, documents, emails, and archives. Read more details here.\nAdd and search Metadata signatures in Excel and Word documents GroupDocs.Signature for .NET API allow digitally sign Microsoft Word, Excel, PowerPoint and PDF documents in .NET applications. Metadata signature is an additional document property that contains special attributes or tags to keep non-visual information inside the document. The recent version now supports adding and searching Metadata signature in Excel and Word documents. Read more details here.\nGet information of supported extractors for PDF, Excel and PowerPoint documents? GroupDocs.Parser offers APIs to extract and parse documents data. The latest version now supports getting the information about supported extractors for a document. You can extract plain text, formatted text, and metadata from PDF, Excel or PowerPoint documents in .NET and Java applications.\nFrom the Library\n.NET Code Example: How to render TSV and PCL formats? GroupDocs.Viewer for .NET API allows viewing variety of business document and images formats in high quality. The newly released version now supports rendering of TSV (Tab-separated values) and PCL (Printer Command Language) file formats. Read more details here.\nCode Example: How to remove empty paragraphs in .NET and Java while assembling documents? GroupDocs.Assembly offers documents automation and reporting APIs. While assembling a document, if syntax tags are removed or replaced with empty values, the output document will have empty paragraphs. The current version has introduced new options for .NET and Java application developers to remove empty paragraphs from Microsoft Word, PowerPoint and email documents.\n.NET Code Example: How to add TextReplacement annotation in PowerPoint slides? GroupDocs.Annotation for .NET now comes up with the feature to add TextReplacement annotation in Slides document along with font family support. It also supports another valuable feature to support font family for TextReplacement annotation. Read more details here.\nCode Example: How to read, remove, and update FLV files metadata in .NET and Java? GroupDocs.Metadata now supports getting missing metadata properties of Excel spreadsheets and allows working with FLV file formats metadata in .NET and Java applications. Memory consumption issue is greatly optimized to efficiently work with PDF and Excel file formats.\n.NET Code Example: How to change pages orientation while merging documents? GroupDocs.Merger offers documents merging and splitting APIs to either trim, combine or remove pages, slides or diagrams. The latest version now supports some new features: getting supported formats, rotate pages and change pages orientation. Read more details here.\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite. GroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite. GroupDocs.Comparison for .NET 18.10 – TableFormatSetter for PowerPoint slides is now improved. Check out for more releases during last month\n","permalink":"https://blog.groupdocs.com/total/groupdocs-holidays-offer-get-25-off-groupdocs.total-or-a-24-bottle-case-of-award-winning-pirathon-total-shiraz/","summary":"Share this issue:\nMonthly NewsletterDecember 2018 25% off GroupDocs.Total OR 24 bottles of Award-Winning Pirathon Total Shiraz\nGet 25% off GroupDocs.Total OR 24 Bottles of Award-Winning Pirathon Total Shiraz (worth over $1500). Quote HOLOFF2018 or PIRATH2018 when placing your order.\nThis offer is only available on new GroupDocs.Total purchases and cannot be used in conjunction with other offers, renewals or upgrades. Only available directly from GroupDocs.com, not through third parties or resellers.","title":"GroupDocs Holidays Offer – Get 25% off GroupDocs.Total or a 24 Bottle Case of Award Winning Pirathon Total Shiraz"},{"content":"\rWe are pleased to announce the release of GroupDocs.Merger for .NET 18.11. This latest version of the API comes with some new features. GetSupportedFormats and RotatePage methods are introduced. Furthermore, you can change page orientation. Please see release notes for further details.\nFeatures Change Page OrientationNew method ChangeOrientation is introduced. public DocumentResult ChangeOrientation(Stream documentStream, OrientationOptions orientationOptions); Get Supported FormatsMethod GetSupportedFormats is added. public Dictionary GetSupportedFormats(); Rotate PagesRotatePages method is introduced in the API. public DocumentResult RotatePages(Stream documentStream, RotateOptions rotateOptions); Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Merger:\nNuGet - NuGet Install Documentation - API Documentation API Reference - GroupDocs.Merger for .NET API Reference Examples- Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Merger queries FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/merger/change-page-orientation-using-groupdocs.merger-for-.net-18.11/","summary":"We are pleased to announce the release of GroupDocs.Merger for .NET 18.11. This latest version of the API comes with some new features. GetSupportedFormats and RotatePage methods are introduced. Furthermore, you can change page orientation. Please see release notes for further details.\nFeatures Change Page OrientationNew method ChangeOrientation is introduced. public DocumentResult ChangeOrientation(Stream documentStream, OrientationOptions orientationOptions); Get Supported FormatsMethod GetSupportedFormats is added. public Dictionary GetSupportedFormats(); Rotate PagesRotatePages method is introduced in the API.","title":"Change Page Orientation using GroupDocs.Merger for .NET 18.11"},{"content":"\rWe are pleased to announce the monthly release of GroupDocs.Metadata for .NET 18.11. The latest version supports missing metadata properties of Excel format and allows working with FLV file format’s metadata. Furthermore, memory consumption is now reduced for working with PDF and Excel file formats. We recommend you to install and use the latest version of the API.\nFeatures IntroducedThe following features are introduced in version 18.11. Detect FLV file format Read FLV header metadata Get XMP metadata of FLV file format Update XMP metadata of FLV file format Remove XMP metadata of FLV file format Support for missing metadata properties of Excel format For details about the features supported by the API, please visit Features Overview.\nEnhancementsFollowing are the enhancements introduced in version 18.11. Reduced memory consumption for PDF format\u0026rsquo;s loading and saving Reduced memory consumption for Excel format\u0026rsquo;s loading and saving Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Installation - Install GroupDocs.Metadata using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/read-remove-and-update-flv-files-metadata-using-groupdocs.metadata-for-.net-18.11/","summary":"We are pleased to announce the monthly release of GroupDocs.Metadata for .NET 18.11. The latest version supports missing metadata properties of Excel format and allows working with FLV file format’s metadata. Furthermore, memory consumption is now reduced for working with PDF and Excel file formats. We recommend you to install and use the latest version of the API.\nFeatures IntroducedThe following features are introduced in version 18.11. Detect FLV file format Read FLV header metadata Get XMP metadata of FLV file format Update XMP metadata of FLV file format Remove XMP metadata of FLV file format Support for missing metadata properties of Excel format For details about the features supported by the API, please visit Features Overview.","title":"Read, Remove, and Update FLV File's Metadata using GroupDocs.Metadata for .NET 18.11"},{"content":"\rWe are glad to announce the monthly releaseof GroupDocs.Metadata for Java 18.11. The latest version supports missing metadata properties of Excel format and allows working with FLV file format\u0026rsquo;s metadata. Furthermore, memory consumption is now reduced for working with PDF and Excel file formats. We recommend you to install and use the latest version of the API.\nFeatures IntroducedThe following features are introduced in version 18.11. Detect FLV file format Read FLV header metadata Get XMP metadata of FLV file format Update XMP metadata of FLV file format Remove XMP metadata of FLV file format For details about the features supported by the API, please visit Features Overview.\nEnhancementsFollowing are the enhancements introduced in version 18.11. Reduced memory consumption for PDF format\u0026rsquo;s loading and saving Reduced memory consumption for Excel format\u0026rsquo;s loading and saving Available Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Metadata for Java: Installation - Install GroupDocs.Metadata from Maven Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Metadata product family FeedbackWe always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Metadata for Java at our forum. ","permalink":"https://blog.groupdocs.com/metadata/support-for-missing-metadata-properties-of-excel-format-in-groupdocs.metadata-for-java-18.11/","summary":"We are glad to announce the monthly releaseof GroupDocs.Metadata for Java 18.11. The latest version supports missing metadata properties of Excel format and allows working with FLV file format\u0026rsquo;s metadata. Furthermore, memory consumption is now reduced for working with PDF and Excel file formats. We recommend you to install and use the latest version of the API.\nFeatures IntroducedThe following features are introduced in version 18.11. Detect FLV file format Read FLV header metadata Get XMP metadata of FLV file format Update XMP metadata of FLV file format Remove XMP metadata of FLV file format For details about the features supported by the API, please visit Features Overview.","title":"Support for Missing Metadata Properties of Excel Format in GroupDocs.Metadata for Java 18.11"},{"content":"\rWe are delighted to announce a new feature in the monthly release of GroupDocs.Assembly for .NET 18.10. Using the latest version, you can now remove empty paragraphs in word processing, presentation, and email documents. We recommend you to install and use the latest version of the API.\nFeatures Introduced While assembling a document, if syntax tags are removed or replaced with empty values, the output document will have empty paragraphs. In version 18.10, we have introduced a new member **RemoveEmptyParagraphs **in DocumentAssemblyOptions. When this option is applied using DocumentAssembler.Options, the engine additionally removes empty paragraphs. You can use this option for the following document types:\nWord Processing Document Presentation Document Email Document Use CaseTemplate document. Prefix \u0026lt;\u0026lt;[\u0026#34;\u0026#34;]\u0026gt;\u0026gt; Suffix Result document without the new option applied.\nPrefix Suffix Result document when the new option, RemoveEmptyParagraphs is applied.\nPrefix Suffix For more details on this feature, please visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly for .NET.\nInstallation - Install GroupDocs.Assembly using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Showcase Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly Product Family Feedback As always, if you have some questions, queries or suggestions about GroupDocs.Assembly for .NET API, just share with us by creating a forum thread.\n","permalink":"https://blog.groupdocs.com/assembly/remove-empty-paragraphs-in-groupdocs.assembly-for-.net-18.10/","summary":"We are delighted to announce a new feature in the monthly release of GroupDocs.Assembly for .NET 18.10. Using the latest version, you can now remove empty paragraphs in word processing, presentation, and email documents. We recommend you to install and use the latest version of the API.\nFeatures Introduced While assembling a document, if syntax tags are removed or replaced with empty values, the output document will have empty paragraphs.","title":"Remove Empty Paragraphs in GroupDocs.Assembly for .NET 18.10"},{"content":"\rWe are excitedly announcing the monthly release of GroupDocs.Assembly for Java 18.10. Using the latest version, you can now remove empty paragraphs in word processing, presentation, and email documents. We recommend you to install the latest version of the API for a better user experience.\nFeatures Introduced While assembling a document, if syntax tags are removed or replaced with empty values, the output document will have empty paragraphs. In version 18.10, we have introduced a new member REMOVE_EMPTY_PARAGRAPHS in DocumentAssemblyOptions. When this option is applied using DocumentAssembler.setOptions(), the engine additionally removes empty paragraphs. You can use this option for the following document types:\nWord Processing Document Presentation Document Email Document Use CaseTemplate document. Prefix \u0026lt;\u0026lt;[\u0026#34;\u0026#34;]\u0026gt;\u0026gt; Suffix Result document without the new option applied.\nPrefix Suffix Result document when the new option, REMOVE_EMPTY_PARAGRAPHS is applied.\nPrefix Suffix For more details on this feature, please visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Assembly for Java:\nInstallation - Install GroupDocs.Assembly from Maven Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Assembly product family Feedback We always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Assembly for Java at our forum.\n","permalink":"https://blog.groupdocs.com/assembly/handle-empty-paragraphs-using-groupdocs.assembly-for-java-18.10/","summary":"We are excitedly announcing the monthly release of GroupDocs.Assembly for Java 18.10. Using the latest version, you can now remove empty paragraphs in word processing, presentation, and email documents. We recommend you to install the latest version of the API for a better user experience.\nFeatures Introduced While assembling a document, if syntax tags are removed or replaced with empty values, the output document will have empty paragraphs. In version 18.","title":"Handle Empty Paragraphs using GroupDocs.Assembly for Java 18.10"},{"content":"\rWe are delighted to announce the release of GroupDocs.Parser for Java 18.11. The latest version came up with one new feature and three enhancements. It allows you to get information about the supported extractors for a document. Furthermore, we have improved the text area extraction for the PDF documents. For more details, please have a look at the release notes of version 18.11.\nFeatures Introduced Getting Information of Supported Extractors for a Document This feature helps to get the information about the supported extractors for a document. For example, you can check if you can extract the plain text, formatted text, and metadata from a particular document. Furthermore, you can also check if the document is a container that contains other documents in it. For working example of this feature, please refer to this documentation article.\nEnhancements IFastTextExtractor Interface GroupDocs.Parser allows changing the default behavior of text extraction. By default, the text is extracted using the Standard Extract mode. In Standard Extract mode, the text is extracted with better quality but it takes more time. This enhancements allows setting the fast text extraction via IFastTextExtractor interface. The support for IFastTextExtractor interface is added to the following classes:\nPdfTextExtractor CellsTextExtractor SlidesTextExtractor For working example of this feature, please refer to this documentation article.\nIDocumentContentExtractor InterfaceThis enhancement allows getting the access to Text Analysis API via IDocumentContentExtractor interface. The support for IDocumentContentExtractor interface is added to the following classes: PdfTextExtractor CellsTextExtractor SlidesTextExtractor WordsTextExtractor For working example of this feature, please refer to this documentation article.\nImproved Text Area Extraction for PDF Documents This enhancement improves the text area extraction for PDF documents. In the latest version, the Y-coordinates of text areas start from the top of the page.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Parser:\nInstallation - Install GroupDocs.Parser from Maven Documentation - API Documentation Examples - Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Parser Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/parser/improved-text-area-extraction-for-pdf-documents-in-groupdocs.parser-for-java-18.11/","summary":"We are delighted to announce the release of GroupDocs.Parser for Java 18.11. The latest version came up with one new feature and three enhancements. It allows you to get information about the supported extractors for a document. Furthermore, we have improved the text area extraction for the PDF documents. For more details, please have a look at the release notes of version 18.11.\nFeatures Introduced Getting Information of Supported Extractors for a Document This feature helps to get the information about the supported extractors for a document.","title":"Improved Text Area Extraction for PDF Documents in GroupDocs.Parser for Java 18.11"},{"content":"\rWe are pleased to announce the release of version 18.11 of GroupDocs.Parser for .NET. The latest version came up with one new feature and three enhancements. It allows you to get information about the supported extractors for a document. Furthermore, we have improved the text area extraction for the PDF documents. For more details, please have a look at the release notes of version 18.11.\nFeatures Introduced Getting Information of Supported Extractors for a DocumentThis feature helps to get the information about the supported extractors for a document. For example, you can check if you can extract the plain text, formatted text, and metadata from a particular document. Furthermore, you can also check if the document is a container that contains other documents in it. For working example of this feature, please refer to this documentation article. Enhancements IFastTextExtractor InterfaceGroupDocs.Parser allows changing the default behavior of text extraction. By default, the text is extracted using the Standard Extract mode. In Standard Extract mode, the text is extracted with better quality but it takes more time. This enhancements allows setting the fast text extraction via IFastTextExtractor interface. The support for IFastTextExtractor interface is added to the following classes: _PdfTextExtractor _ _CellsTextExtractor _ _SlidesTextExtractor _ For working example of this feature, please refer to this documentation article.\nIDocumentContentExtractor InterfaceThis enhancement allows getting the access to Text Analysis API via IDocumentContentExtractor interface. The support for IDocumentContentExtractor interface is added to the following classes: _PdfTextExtractor _ _CellsTextExtractor _ SlidesTextExtractor WordsTextExtractor For working example of this feature, please refer to this documentation article.\nImproved Text Area Extraction for PDF DocumentsThis enhancement improves the text area extraction for PDF documents. In the latest version, the Y-coordinates of text areas start from the top of the page. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Parser:\nInstallation - Install GroupDocs.Parser using NuGet Documentation - Product Docs Examples - GitHub Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Parser Have Queries? If you have got any queries or concerns about the API, please feel free to get in touch with us over the forum. We’ll be glad to address your concerns.\n","permalink":"https://blog.groupdocs.com/parser/get-information-of-supported-extractors-for-a-document-groupdocs.parser-for-.net-18.11/","summary":"We are pleased to announce the release of version 18.11 of GroupDocs.Parser for .NET. The latest version came up with one new feature and three enhancements. It allows you to get information about the supported extractors for a document. Furthermore, we have improved the text area extraction for the PDF documents. For more details, please have a look at the release notes of version 18.11.\nFeatures Introduced Getting Information of Supported Extractors for a DocumentThis feature helps to get the information about the supported extractors for a document.","title":"Get Information of Supported Extractors for a Document using GroupDocs.Parser for .NET 18.11"},{"content":"\rWe are proudly announcing another monthly release of GroupDocs.Annotation for .NET. This latest release 18.10 of the API comes up with the feature to add TextReplacement annotation in Slides document along with font family support. Moreover, few fixes are also introduced in this version, we therefore recommend you to download the new version of the API to enhance your document annotation experience.\nFeature TextReplacement annotation for Slides document Font family support for TextReplacement annotation Bug Fixes Time format for Slides document Converting Int into PDF.Color Annotation point position for TextReplacement on Slides document CleanUp on PDF document Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation:\nNuget Package - Download Documentation - Product Docs Examples - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/groupdocs.annotation-for-.net-18.10/","summary":"We are proudly announcing another monthly release of GroupDocs.Annotation for .NET. This latest release 18.10 of the API comes up with the feature to add TextReplacement annotation in Slides document along with font family support. Moreover, few fixes are also introduced in this version, we therefore recommend you to download the new version of the API to enhance your document annotation experience.\nFeature TextReplacement annotation for Slides document Font family support for TextReplacement annotation Bug Fixes Time format for Slides document Converting Int into PDF.","title":"Add TextReplacement Annotation in Slides Document using GroupDocs.Annotation for .NET 18.10"},{"content":"\rGroupDocs.Comparison for .NET 18.10 comes with an improvement and a few bug fixes. Issues such as style comparison in first column of Slides documents are now fixed. Please follow the release notes here for further details. We would recommend you to try the latest version of the API and share your feedback.\nImprovements Improve TableFormatSetter for Slides Bug FixFollowing issues are resolved for Slides: Table does not display text style change Issue with table theme Comparing styles in first column Issue with sizes of the resultant document Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nNuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/tableformatsetter-for-slides-is-improved-in-groupdocs.comparison-for-.net-18.10/","summary":"GroupDocs.Comparison for .NET 18.10 comes with an improvement and a few bug fixes. Issues such as style comparison in first column of Slides documents are now fixed. Please follow the release notes here for further details. We would recommend you to try the latest version of the API and share your feedback.\nImprovements Improve TableFormatSetter for Slides Bug FixFollowing issues are resolved for Slides: Table does not display text style change Issue with table theme Comparing styles in first column Issue with sizes of the resultant document Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"TableFormatSetter for Slides is Improved in GroupDocs.Comparison for .NET 18.10"},{"content":"\rToday, we are glad to announce the release of GroupDocs.Viewer for .NET 18.11. The latest version includes a couple of new features as well as a bunch of improvements and bug fixes. The API now supports rendering of TSV (Tab-separated values) and PCL (Printer Command Language) file formats. Below is the list of new features, improvements, and fixes added in v18.11.\nFeatures Introduced Since v18.11, we have extended the list of supported file formats and now the API is capable of rendering the following formats:\nTSV (Tab-separated values) PCL (Printer Command Language) For a complete list of supported file formats, please visit this documentation article.\nImprovements We have included the following improvements in version 18.11:\nRendering comments from ODP presentation documents that have no author Rendering attachments while working with source document\u0026rsquo;s stream (for sample code snippet, please visit the documentation) Extended support for ExcludeFonts setting of HtmlOptions class for MS OneNote documents Exporting font files as external resources when rendering MS OneNote documents Added support for DefaultFontName option when rendering MS OneNote documents Bug Fixes Following issues are fixed in version 18.11 of GroupDocs.Viewer for .NET.\nException when rendering email message containing .msg file as attachment Issues when rendering Japanese PDF document to HTML Font lightness is ignored for rendering Presentations into HTML Resources are not created in cache after GetPrintableHtml() is called Unexpected behavior of cache when both Image and Html handlers are instantiated Missing pst and ost formats in GetSupportedDocumentFormats() Related Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer.\nInstallation - Install GroupDocs.Viewer using NuGet Documentation - Product Docs Video Tutorials - YouTube Videos Examples / Plugins - GitHub Source Code Examples Sample Front End Apps - Open Source Document Viewer Applications Technical Support Forum - Technical Support Forum for GroupDocs.Viewer Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/render-tsv-and-pcl-formats-using-groupdocs.viewer-for-.net-18.11/","summary":"Today, we are glad to announce the release of GroupDocs.Viewer for .NET 18.11. The latest version includes a couple of new features as well as a bunch of improvements and bug fixes. The API now supports rendering of TSV (Tab-separated values) and PCL (Printer Command Language) file formats. Below is the list of new features, improvements, and fixes added in v18.11.\nFeatures Introduced Since v18.11, we have extended the list of supported file formats and now the API is capable of rendering the following formats:","title":"Render TSV and PCL Formats using GroupDocs.Viewer for .NET 18.11"},{"content":"\rWe are pleased to announce that the first version of GroupDocs.Search for Java has been released. The API allows Java developers to perform searching and indexing operations against various formats to gain data insights. One can easily perform actions to search through different directories and documents for text occurrences, basic metadata fields, file names, document types and many more. Please continue to read more about the features and the file formats supported by the API.\nSupported Features Following are the salient features of GroupDocs.Search for Java.\nSimple Search Boolean Search Regular Expression Faceted Search Case Sensitive Search Fuzzy Search Synonym Search Date Range Search Numeric Range Search Spelling Corrector Keyboard Layout Corrector Searching by Parts Object TypesGroupDocs.Search supports searching for the following object types. Text Occurrences Basic Metadata Fields File Names Document Types Document Created/Modified Dates For more details on supported features, please visit the article: Features Overview.\nSupported File Formats The following is the list of file formats supported by GroupDocs.Search.\nMicrosoft WordDocument Formats (.doc/.docx/.docm/.dot/.dotx/.odd/.ott) Presentation Document Formats (.ppt/.pptx/.pot/.potx/.ppsx/.pptm/.ppsm/.ppsx/.odp) Spreadsheet Document Formats (.xlsx/.xls/.xlsm/.xltm/.xltx/.xlsb/.ods) OneNote Documents (.one) Outlook(.msg/.eml/.emlx/.pst/.ost) Electronic Publication Formats (.epub/.fb2 (FuctionBook)) Portable Document Format (.pdf) Compression and Packaging Formats (.zip) Text Document (.txt) For more details on supported formats, please visit the article: Supported File Formats.\nExample Business Cases You have a folder with a lot of books and you want to search for a specific text in them. It would be difficult to do it manually but GroupDocs.Search can perform the search for you with accuracy in few steps. Just create the index for the folder, use the search query and you will get the results. In case more books are added to the folder, you would just need to update the index. Furthermore, you can index multiple folders as well as search the query in multiple indexes.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Search:\nInstallation - Install GroupDocs.Search from Maven Documentation - API Documentation Examples - Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/search/releasing-groupdocs.search-for-java-document-searching-and-indexing-api/","summary":"We are pleased to announce that the first version of GroupDocs.Search for Java has been released. The API allows Java developers to perform searching and indexing operations against various formats to gain data insights. One can easily perform actions to search through different directories and documents for text occurrences, basic metadata fields, file names, document types and many more. Please continue to read more about the features and the file formats supported by the API.","title":"Releasing GroupDocs.Search for Java - Document Searching and Indexing API"},{"content":"\rWe at GroupDocs, are pleased to announce another monthly release of GroupDocs.Signature for .NET. This latest release 18.10 of the API provides the ability to add and search Metadata Signature in Cells and Words documents. Furthermore, few improvements are also introduced in this version, therefore, we recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\nFeatures Metadata Signatures for Cells and Words documentsThe Metadata Signature is the additional document property that contains special attributes/tags to keep non visual information inside the document. Following example demonstrates how to compose Metadata Signature options for Cells document: // setup options with text of signature CellsMetadataSignOptions signOptions = new CellsMetadataSignOptions(); // Specify different Metadata Signatures and add them to options sigature collection // setup Author property CellsMetadataSignature mdSign_Author = new CellsMetadataSignature(\u0026#34;Author\u0026#34;, \u0026#34;Mr.Scherlock Holmes\u0026#34;); signOptions.MetadataSignatures.Add(mdSign_Author); // setup data of document id CellsMetadataSignature mdSign_DocId = new CellsMetadataSignature(\u0026#34;DocumentId\u0026#34;, Guid.NewGuid().ToString()); signOptions.MetadataSignatures.Add(mdSign_DocId); // setup data of sign date CellsMetadataSignature mdSign_Date = new CellsMetadataSignature(\u0026#34;SignDate\u0026#34;, DateTime.Now); signOptions.MetadataSignatures.Add(mdSign_Date); // setup some integer value CellsMetadataSignature mdSign_Days = new CellsMetadataSignature(\u0026#34;DocDays\u0026#34;, 12345); signOptions.MetadataSignatures.Add(mdSign_Days); // setup data of sign date CellsMetadataSignature mdSign_Koeff = new CellsMetadataSignature(\u0026#34;SignKoeff\u0026#34;, 2.345M); signOptions.MetadataSignatures.Add(mdSign_Koeff); // sign document string signedPath = handler.Sign(\u0026#34;Sample.xlsx\u0026#34;, signOptions, new SaveOptions { OutputType = OutputType.String, OutputFileName = \u0026#34;Words_Document_Metadata\u0026#34; }); Search Metadata Signature in Cells and Words documentsYou can search for Metadata Signatures within the Cells and Words documents. Following example demonstrates how to search Metadata Signatures in Words document: // setup search options WordsSearchMetadataOptions searchOptions = new WordsSearchMetadataOptions(); // search document SearchResult result = handler.Search(\u0026#34;SignedMetadata.docx\u0026#34;, searchOptions); // output signatures List signatures = result.ToList(); foreach (WordsMetadataSignature signature in signatures) { WordsMetadataSignature metadataSignature = signature as WordsMetadataSignature; if (metadataSignature != null) { Console.WriteLine(\u0026#34;Words Metadata: {0} = {1}\u0026#34;, metadataSignature.Name, metadataSignature.ToString()); } } Additional Verification CriteriaThis latest version of the API provides ability to search comments of Digital Signatures in Words document. public string Comments { get; set; } Improvements Support of password protected Open-Documents-Spreadsheet ODS file formats Search results conversion to typed list of signatures Global Exception handler to catch all not handled exceptions Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for .NET:\nNuGet - Nuget install Documentation - Product Docs API References – Signature API References Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/groupdocs.signature-for-.net-18.10/","summary":"We at GroupDocs, are pleased to announce another monthly release of GroupDocs.Signature for .NET. This latest release 18.10 of the API provides the ability to add and search Metadata Signature in Cells and Words documents. Furthermore, few improvements are also introduced in this version, therefore, we recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\nFeatures Metadata Signatures for Cells and Words documentsThe Metadata Signature is the additional document property that contains special attributes/tags to keep non visual information inside the document.","title":"Add Metadata Signature in Cells Document using GroupDocs.Signature for .NET 18.10"},{"content":"\rShare this issue:\nMonthly NewsletterNovember 2018 Merge and Compare Business Documents of Same Format Documents Difference Checker APIs for .NET and Java\nGroupDocs.Comparison Product Family includes .NET and Java APIs to efficiently merge and compare all popular business document formats (Microsoft Word, Excel, PowerPoint, OpenDocument ODT, PDF, Text and HTML) for difference checking. The APIs support comparing text contents, words, paragraphs, characters and style changes like font size, bold, italic etc. The differences summary is saved in a separate result file for further analysis.\nAvailable for: .NET Java\nProduct News\nLaunching Soon: GroupDocs.Search for Java Good news for Java developers who want to incorporate advanced full text search capabilities to discover and analyze documents within their Java applications. GroupDocs.Search for Java is a full-featured, back-end API that extracts text and metadata from documents and performs advanced searching and indexing operations based on fuzzy and synonym algorithms. Read more details here.\nChange the Target File Format of an Assembled Document in .NET and Java GroupDocs.Assembly APIs empower developers to automate documents generation through templates. The latest version now allows you to change the target file format of an assembled document namely: Microsoft Word, Excel Spreadsheet, PowerPoint Presentation, Email and Text file using file extension or explicit specification within any type of .NET and Java application.\nFrom the Library\n.NET Code Example: How to Exclude Specific Fonts from Output HTML File? GroupDocs.Viewer for .NET offers multi-format document viewer APIs for .NET applications. The latest version now supports setting the list of the fonts that should be excluded from the output HTML to decrease the size of the output files. A new method HtmlOptions.ExcludeFontsList is introduced that prevents adding specific fonts into output HTML. Read more details here.\n.NET Code Example: How to Convert from PLT, LGS and CGM Format? GroupDocs.Conversion for .NET allows quick and accurate conversion of between documents and images file formats. This latest version now supports conversion from PLT, CGM and LGS formats as well as converting password protected ODS document. The conversion options of Word, Excel, PowerPoint, PDF, Images and HTML are also improved. Read more details here.\nCode Example: How to Update Lyrics3v2 Metadata Tags in MP3 Format? GroupDocs.Metadata offers .NET and Java APIs to read, write and edit document metadata information. The latest version supports new feature to update Lyrics3v2 tag in MP3 file format within .NET and Java applications. Memory consumption is now optimized and reduced for working with PNG, JPEG2000, BMP, DICOM, DJVU, EMF, WEBP and WMF formats.\nCode Example: How to Extract Images from Documents in .NET and Java? GroupDocs.Parser offers text extraction APIs for documents analysis. The current version comes with a demanded feature support of extracting images from the pages of PDF, Excel Spreadsheets, PowerPoint Presentations and Text documents within .NET and Java based applications. GetImageAreas method is introduced to perform the image extraction.\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite. GroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite. GroupDocs.Conversion for .NET 18.10 – Border missing issue in ODS output is now resolved. GroupDocs.Comparison for .NET 18.9 – PDF and HTML anchors comparison is now improved. GroupDocs.Annotation for .NET 18.9 – Annotate documents (Word, Excel, PDF, Presentations, Images and Diagrams) with improved pen styles. GroupDocs.Comparison for Java 18.6.3 – Comparison of password protected documents issue is now resolved. Check out for more releases during last month\n","permalink":"https://blog.groupdocs.com/total/groupdocs-newsletter-november-2018-.net-and-java-documents-manipulation-apis/","summary":"Share this issue:\nMonthly NewsletterNovember 2018 Merge and Compare Business Documents of Same Format Documents Difference Checker APIs for .NET and Java\nGroupDocs.Comparison Product Family includes .NET and Java APIs to efficiently merge and compare all popular business document formats (Microsoft Word, Excel, PowerPoint, OpenDocument ODT, PDF, Text and HTML) for difference checking. The APIs support comparing text contents, words, paragraphs, characters and style changes like font size, bold, italic etc.","title":"GroupDocs Newsletter November 2018 – .NET and Java Documents Manipulation APIs"},{"content":"\rWe are about to release GroupDocs.Search for Java, a full-featured, back-end API that could easily be utilized by Java developers in their projects. It is a fascinating document search API that extracts text and metadata from documents. Furthermore, it performs advanced searching and indexing operations on the basis of fuzzy and synonym algorithms. API also supports full-text search.\nFeatures Offered by GroupDocs.Search for JavaGroupDocs will keep on updating this API with new features. An initial list of features offered by the API will be: Searching Features Search Queries Simple Queries Boolean Queries Regular Expression Queries Faceted Search Queries Case Sensitive Search Queries Advance Search Fuzzy Search Synonym Search Date Range Search Numeric Range Search Password Protected Documents Search Search using Morphological Word Forms Spelling Corrector Keyboard layout Corrector Exact Phrase Search Specify Number of Searching Thread Cancel Search Operation Search by Parts Get Search Report Highlight Results in Text Other Features Get total hit counts for a search query Limit the number of search results Get matched words in the found documents Warn user in case of not supported settings Support different search features in a single search query Define table discrete function as a step function Save encodings automatically Indexing Features Create Index Update Index Load Index Add Documents to Index Other Features Index metadata of documents Merge indexes Track all changes to file in index folder View progress percentage of indexing or updating Prevent unnecessary file indexing Subscribe to events Extract the list of indexed documents Extract document text Compact Indexing Multithreaded Indexing Accent-insensitive indexing Detect encoding automatically Cancel indexing, updating and merging operations The API will initially support the following document types for text extraction:\nWord Processing Documents Spreadsheet Documents Presentation Documents OpenOffice Presentation Documents Email Messages PDF Documents Text Documents Electronic Publication Documents FictionBook Documents Microsoft Compiled HTML Help OneNote Documents ZIP Archives First Version AvailabilityWe are finalizing the first release of GroupDocs.Search for Java and hope that you will be able to avail it very soon. Please stay tuned for further updates. We would be happy to hear your queries or suggestions at GroupDocs.Search forum. ","permalink":"https://blog.groupdocs.com/search/upcoming-release-of-groupdocs.search-for-java/","summary":"We are about to release GroupDocs.Search for Java, a full-featured, back-end API that could easily be utilized by Java developers in their projects. It is a fascinating document search API that extracts text and metadata from documents. Furthermore, it performs advanced searching and indexing operations on the basis of fuzzy and synonym algorithms. API also supports full-text search.\nFeatures Offered by GroupDocs.Search for JavaGroupDocs will keep on updating this API with new features.","title":"Upcoming Release of GroupDocs.Search for Java"},{"content":"\rWe are delighted to announce a new feature and enhancements in the monthly release of GroupDocs.Metadata for .NET 18.10. Using the latest version, you can now update Lyrics3v2 tags in MP3 format. Memory consumption is now reduced for working with PNG, JPEG2000, BMP, DICOM, DJVU, EMF, WEBP and WMF formats. Furthermore, **MetadataUtility **obsolete methods are now removed and a bug, while cleaning or updating metadata of Strict Open XML Presentation (.pptx), is now fixed. We recommend you to install and use the latest version of the API.\nFeatures IntroducedThe following feature is introduced in version 18.10. Update Lyrics3v2 Tags in MP3 Format For details about the features supported by the API, please visit Features Overview.\nEnhancementsFollowing are the enhancements introduced in version 18.10. Reduced memory consumption for PNG format\u0026rsquo;s loading and saving Reduced memory consumption for JPEG2000 format\u0026rsquo;s loading and saving Reduced memory consumption for BMP, DICOM, DJVU, EMF, WEBP and WMF formats\u0026rsquo; loading and saving FixesThe following bug is fixed in version 18.10. Exception when cleaning/updating metadata of Strict Open XML Presentation (.pptx) Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Installation - Install GroupDocs.Metadata using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/update-lyrics3v2-metadata-tags-in-mp3-format-using-groupdocs.metadata-for-.net-18.10/","summary":"We are delighted to announce a new feature and enhancements in the monthly release of GroupDocs.Metadata for .NET 18.10. Using the latest version, you can now update Lyrics3v2 tags in MP3 format. Memory consumption is now reduced for working with PNG, JPEG2000, BMP, DICOM, DJVU, EMF, WEBP and WMF formats. Furthermore, **MetadataUtility **obsolete methods are now removed and a bug, while cleaning or updating metadata of Strict Open XML Presentation (.","title":"Update Lyrics3v2 Metadata Tags in MP3 Format using GroupDocs.Metadata for .NET 18.10"},{"content":"\rWe are glad to announce the monthly releaseof GroupDocs.Metadata for Java 18.10. Using the latest version, you can now update Lyrics3v2 tags in MP3 format. Memory consumption is now reduced for working with PNG, JPEG2000, BMP, DICOM, DJVU, EMF, WEBP and WMF formats. Furthermore, **MetadataUtility **obsolete methods are now removed and a bug, while cleaning or updating metadata of Strict Open XML Presentation (.pptx), is now fixed. We recommend you to install and use the latest version of the API.\nFeatures IntroducedThe following feature is introduced in version 18.10. Update Lyrics3v2 Tags in MP3 Format For details about the features supported by the API, please visit Features Overview.\nEnhancementsFollowing are the enhancements introduced in version 18.10. Reduced memory consumption for PNG format\u0026rsquo;s loading and saving Reduced memory consumption for JPEG2000 format\u0026rsquo;s loading and saving Reduced memory consumption for BMP, DICOM, DJVU, EMF, WEBP and WMF formats\u0026rsquo; loading and saving FixesThe following bug is fixed in version 18.10. Exception when cleaning/updating metadata of Strict Open XML Presentation (.pptx) Available Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Metadata for Java: Installation - Install GroupDocs.Metadata from Maven Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Metadata product family FeedbackWe always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Metadata for Java at our forum. ","permalink":"https://blog.groupdocs.com/metadata/update-mp3-formats-lyrics3v2-tags-using-groupdocs.metadata-for-java-18.10/","summary":"We are glad to announce the monthly releaseof GroupDocs.Metadata for Java 18.10. Using the latest version, you can now update Lyrics3v2 tags in MP3 format. Memory consumption is now reduced for working with PNG, JPEG2000, BMP, DICOM, DJVU, EMF, WEBP and WMF formats. Furthermore, **MetadataUtility **obsolete methods are now removed and a bug, while cleaning or updating metadata of Strict Open XML Presentation (.pptx), is now fixed. We recommend you to install and use the latest version of the API.","title":"Update MP3 Format's Lyrics3v2 Tags  using GroupDocs.Metadata for Java 18.10"},{"content":"\rAnother release of GroupDocs.Comparison for Java 18.6.3 is on-board. It comes with few bug fixes. Comparison of password protected documents issue is now resolved, please visit the release notes. We\u0026rsquo;d recommend you to Download the new release and enhance your document comparison experience.\nBug Fixes Exception occurs while comparing presentations Comparing files with passwords doesn\u0026rsquo;t work MultiCompare returns null Fix Api for MultiComparer API ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison: Product Home – GroupDocs.Comparison for Java Documentation – Product Documentations Examples/Plugins/Showcases – Github source code examples Product Support Forum – Technical Support Forum for GroupDocs.Comparison FeedbackWe always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/multicomparer-issue-is-resolved-in-groupdocs.comparison-for-java-18.6.3/","summary":"Another release of GroupDocs.Comparison for Java 18.6.3 is on-board. It comes with few bug fixes. Comparison of password protected documents issue is now resolved, please visit the release notes. We\u0026rsquo;d recommend you to Download the new release and enhance your document comparison experience.\nBug Fixes Exception occurs while comparing presentations Comparing files with passwords doesn\u0026rsquo;t work MultiCompare returns null Fix Api for MultiComparer API ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Multicomparer Issue is Resolved in GroupDocs.Comparison for Java 18.6.3"},{"content":"\rWe are excitedly announcing another monthly release of GroupDocs.Annotation for Java 18.10. Using this latest version, you can add Point, Polyline and Watermark annotations in Words and Diagrams document. Beside this, a multitude of bug fixes are also introduced in this release. We therefore recommend you to download this latest release for a better API experience.\nFeatures Add Watermark, Polyline and Point Annotations in Words and Diagrams documentYou can add Watermark, Polyline and Point Annotations in Words and Diagrams document using this latest release. Following example demonstrates how to add Point annotation in Words document: // Initialize list of AnnotationInfo List annotations = new List(); // Point annotation AnnotationInfo pointAnnnotation = new AnnotationInfo(); pointAnnnotation.setCreatedOn(new Date()); pointAnnnotation.setType(AnnotationType.Point); pointAnnnotation.setBox(new Rectangle(150.32f, 99.22f, 0, 0)); pointAnnnotation.setPageNumber(0); annotations.add(pointAnnnotation); Change Highlight Color of Fonts in WordsThis latest release of the API allows users to change highlight color of fonts for Text Annotations in Words document. Support of Metadata in SlidesSupport for Metadata in Slides document is also introduced in this latest release. Fixes Cleanup in PDF doesn\u0026rsquo;t remove watermarks Highlight color is not changed in footnotes for highlight annotations in Words Exception while running project on macOS isValidLicense() property of License class always returns false An exception raises while accessing the source document TIFF/Multi TIFF file is either corrupted or black and white when annotated Some annotations are missing while exporting to file Exception while exporting Line and Distance annotation Unable to retrieve un-annotated page image from annotated document Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Documentation Annotation API: Download - Zipped JARs Documentation - API Documentation Examples - GitHub source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/groupdocs.annotation-for-java-18.10/","summary":"We are excitedly announcing another monthly release of GroupDocs.Annotation for Java 18.10. Using this latest version, you can add Point, Polyline and Watermark annotations in Words and Diagrams document. Beside this, a multitude of bug fixes are also introduced in this release. We therefore recommend you to download this latest release for a better API experience.\nFeatures Add Watermark, Polyline and Point Annotations in Words and Diagrams documentYou can add Watermark, Polyline and Point Annotations in Words and Diagrams document using this latest release.","title":"Introducing Point Annotation for Words in GroupDocs.Annotation for Java 18.10"},{"content":"\rGroupDocs.Conversion for .NET 18.10 comes with some bug fixes and a improvement. Border missing issue in ODS output is now resolved. Please refer to GroupDocs.Conversion for .NET 18.10 release notes for further reference.\nImprovements Implement option for removing embedded files in Pdf Bug Fixes The image inside presentation isn\u0026rsquo;t the same in ODP output Missing border in ODS Excel output XLSX file eats almost 2 GB RAM while converting and the process never completes API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nNuGet - Nuget install Documentation - Product Wiki Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/remove-embedded-files-in-pdf-in-groupdocs.conversion-for-.net-18.10/","summary":"GroupDocs.Conversion for .NET 18.10 comes with some bug fixes and a improvement. Border missing issue in ODS output is now resolved. Please refer to GroupDocs.Conversion for .NET 18.10 release notes for further reference.\nImprovements Implement option for removing embedded files in Pdf Bug Fixes The image inside presentation isn\u0026rsquo;t the same in ODP output Missing border in ODS Excel output XLSX file eats almost 2 GB RAM while converting and the process never completes API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Remove Embedded Files in PDF in GroupDocs.Conversion for .NET 18.10"},{"content":"\rThis month release of GroupDocs.Annotation for .NET 18.9 comes up with some improvements and fixes. Using this latest version, you can annotate documents with improved pen styles. We therefore recommend you to download this latest release of the API to enhance your document annotation experience.\nImprovements FontColor cleanup in Slides\nPenStyle property for following formats:\nWords\nCells\nDiagrams\nPDF\nSlides\nImages\nBug Fixes TIFF/Multi TIFF file is either corrupted or black and white when annotated Unstable sorting for Slides and Diagrams documents Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation:\nNuget Package - Download Documentation - Product Docs Examples - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/groupdocs.annotation-for-.net-18.9/","summary":"This month release of GroupDocs.Annotation for .NET 18.9 comes up with some improvements and fixes. Using this latest version, you can annotate documents with improved pen styles. We therefore recommend you to download this latest release of the API to enhance your document annotation experience.\nImprovements FontColor cleanup in Slides\nPenStyle property for following formats:\nWords\nCells\nDiagrams\nPDF\nSlides\nImages\nBug Fixes TIFF/Multi TIFF file is either corrupted or black and white when annotated Unstable sorting for Slides and Diagrams documents Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Pen Style is Improved in GroupDocs.Annotation for .NET 18.9"},{"content":"\rGroupDocs.Comparison for .NET 18.9 comes with some improvements and bug fixes. PDF and HTML anchors comparison is now improved. Please follow the release notes here for further details. We\u0026rsquo;d recommend you to try latest version of the API and share your feedback.\nImprovements Html Anchors comparing PDF comparison Improve HTML aligner Bug Fix Error when comparing Words files protected with password Cannot compare PDF documents Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nNuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/pdf-comparison-is-improved-in-groupdocs.comparison-for-.net-18.9/","summary":"GroupDocs.Comparison for .NET 18.9 comes with some improvements and bug fixes. PDF and HTML anchors comparison is now improved. Please follow the release notes here for further details. We\u0026rsquo;d recommend you to try latest version of the API and share your feedback.\nImprovements Html Anchors comparing PDF comparison Improve HTML aligner Bug Fix Error when comparing Words files protected with password Cannot compare PDF documents Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"PDF Comparison is Improved in GroupDocs.Comparison for .NET 18.9"},{"content":"\rWe are pleased to announce the release of GroupDocs.Viewer for .NET 18.10. The latest version allows setting the list of the fonts that should be excluded from the output HTML to decrease the size of the output files. Furthermore, the inclusion of 5 improvements and 6 bug fixes have made the API more promising. Below is the list of new features, improvements, and fixes added in v18.10.\nFeatures Introduced Setting List of the Fonts to be Excluded Adding fonts into HTML ensures that the text from the original document will appear similar in HTML, regardless of whether fonts are installed on the viewer\u0026rsquo;s device or not. At the same time, this improvement comes with the cost of the increased size of the output file.Therefore, GroupDocs.Viewer API provides a new setting - HtmlOptions.ExcludeFontsList, that prevents adding specific fonts (that are commonly available on most of the devices). The code sample below shows how to prevent adding fonts into output HTML.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.StoragePath = @\u0026#34;C:\\storage\u0026#34;; // Create html handler ViewerHtmlHandler htmlHandler = new ViewerHtmlHandler(config); string guid = \u0026#34;presentation.pptx\u0026#34;; HtmlOptions options = new HtmlOptions(); options.ExcludeFontsList.Add(\u0026#34;Times New Roman\u0026#34;); options.ExcludeFontsList.Add(\u0026#34;Arial\u0026#34;); List pages = htmlHandler.GetPages(guid, options); foreach (PageHtml page in pages) { Console.WriteLine(\u0026#34;Page number: {0}\u0026#34;, page.PageNumber); Console.WriteLine(\u0026#34;Html content: {0}\u0026#34;, page.HtmlContent); } For more details on this feature, please visit this documentation article.\nImprovements We have included following improvements in version 18.10:\nPrevent showing items beyond StartDate and EndDate options when rendering MS Project documents Release internal resources for methods which accept URL GetDocumentInfo method\u0026rsquo;s page number depending on the type of ViewerHandler Prevent setting malicious values for HtmlResourcePrefix Improve setting PageSize and TimeScale for MS Project documents by default Bug Fixes Following issues are fixed in version 18.10 of GroupDocs.Viewer for .NET.\n\u0026ldquo;Specified watermark font not found\u0026rdquo; exception when calling GetPdfFile method OutlookOptions.MaxItemsInFolder option not working properly for rendering into image and PDF Incorrect rendering of PDF document into HTML Duplicate link tag when rendering text documents with external resources Exception when rendering PDF document as HTML Images are missing when rendering PDF document into HTML or Image Related Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer.\nInstallation - Install GroupDocs.Viewer using NuGet Documentation - Product Docs Video Tutorials - YouTube Videos Examples / Plugins - GitHub Source Code Examples Sample Front End Apps - Open Source Document Viewer Applications Technical Support Forum - Technical Support Forum for GroupDocs.Viewer Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/exclude-specific-fonts-from-output-html-using-groupdocs.viewer-for-.net-18.10/","summary":"We are pleased to announce the release of GroupDocs.Viewer for .NET 18.10. The latest version allows setting the list of the fonts that should be excluded from the output HTML to decrease the size of the output files. Furthermore, the inclusion of 5 improvements and 6 bug fixes have made the API more promising. Below is the list of new features, improvements, and fixes added in v18.10.\nFeatures Introduced Setting List of the Fonts to be Excluded Adding fonts into HTML ensures that the text from the original document will appear similar in HTML, regardless of whether fonts are installed on the viewer\u0026rsquo;s device or not.","title":"Exclude Specific Fonts from Output HTML using GroupDocs.Viewer for .NET 18.10"},{"content":"\rWe are excitedly announcing a new feature in the monthly release of GroupDocs.Assembly for Java 18.9. Using the latest version, you can now change the target file format of an assembled document using file extension or explicit specification. You can change the target file format when assembling Word Processing, Spreadsheet, Presentation, Email and Text file formats. We recommend you to install the latest version of the API for a better user experience.\nFeatures Introduced Since version 18.9, you can change the format of the assembled document either by specification of the file extension or using LoadSaveOptions as shown in the following code snippets.\nChanging the target file format using the file extension DataSourceInfo dataSourceInfo = new DataSourceInfo(...); DocumentAssembler assembler = new DocumentAssembler(); assembler.assembleDocument(\u0026#34;template.docx\u0026#34;, \u0026#34;result.pdf\u0026#34;, dataSourceInfo); Changing target file format using explicit specification InputStream sourceStream = ...; OutputStream targetStream = ...; DataSourceInfo dataSourceInfo = new DataSourceInfo(...); DocumentAssembler assembler = new DocumentAssembler(); assembler.assembleDocument(sourceStream, targetStream, new LoadSaveOptions(FileFormat.PDF), dataSourceInfo); For more details on this feature, please visit this documentation article. At the moment, GroupDocs.Assembly API provides the ability to change target file format when assembling the following file formats:\nWord Processing documents Spreadsheet documents Presentation documents Email documents Text documents Supported output file formats depending on input file formats can be found at this page.\nAPI Changes Newly Added TypesFollowing types are added in the latest version. public class DataSourceInfo public enum FileFormat public class LoadSaveOptions Newly Added Members of DocumentAssemblerFollowing members of DocumentAssembler are added in the latest version. public void assembleDocument(String sourcePath, String targetPath, DataSourceInfo... dataSourceInfos) throws Exception public void assembleDocument(String sourcePath, String targetPath, LoadSaveOptions loadSaveOptions, DataSourceInfo... dataSourceInfos) throws Exception public void assembleDocument(InputStream sourceStream, OutputStream targetStream, DataSourceInfo... dataSourceInfos) throws Exception public void assembleDocument(InputStream sourceStream, OutputStream targetStream, LoadSaveOptions loadSaveOptions, DataSourceInfo... dataSourceInfos) throws Exception Removed Members of DocumentAssembler Following members of DocumentAssembler are removed in the latest version.\npublic void assembleDocument(String sourcePath, String targetPath, Object dataSource) public void assembleDocument(String sourcePath, String targetPath, Object dataSource, String dataSourceName) public void assembleDocument(String sourcePath, String targetPath, Object[] dataSources, String[] dataSourceNames) public void assembleDocument(InputStream sourceStream, OutputStream targetStream, Object dataSource) public void assembleDocument(InputStream sourceStream, OutputStream targetStream, Object dataSource, String dataSourceName) public void assembleDocument(InputStream sourceStream, OutputStream targetStream, Object[] dataSources, String[] dataSourceNames) Breaking Change Removed members of DocumentAssembler were replaced with new ones. Removed members were not marked as obsolete (deprecated) before removal as usual, because this would complicate migration to new members of DocumentAssembler in Java. Thus, we have introduced a breaking change and customers need to migrate their code from removed members of DocumentAssembler to newly added ones when upgrading to the new version of GroupDocs.Assembly. For more details, please visit this documentation article. Since version 18.9, the Metered licensing security has been improved. Metered licensing is now applicable only in Java runtime version 8u101 or above. Please use other types of licensing if you are using v18.9 or greater in Java 7.\nAvailable Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Assembly for Java:\nInstallation - Install GroupDocs.Assembly from Maven Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Assembly product family Feedback We always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Assembly for Java at our forum.\n","permalink":"https://blog.groupdocs.com/assembly/set-target-file-format-using-groupdocs.assembly-for-java-18.9/","summary":"We are excitedly announcing a new feature in the monthly release of GroupDocs.Assembly for Java 18.9. Using the latest version, you can now change the target file format of an assembled document using file extension or explicit specification. You can change the target file format when assembling Word Processing, Spreadsheet, Presentation, Email and Text file formats. We recommend you to install the latest version of the API for a better user experience.","title":"Set Target File Format using GroupDocs.Assembly for Java 18.9"},{"content":"\rWe are delighted to announce a powerful new feature in the monthly release of GroupDocs.Assembly for .NET 18.9. Using the latest version, you can now change the target file format of an assembled document using file extension or explicit specification. You can change the target file format when assembling Word Processing, Spreadsheet, Presentation, Email and Text file formats. We recommend you to install and use the latest version of the API.\nFeatures IntroducedSince version 18.9, you can change the format of the assembled document either by specification of the file extension or using LoadSaveOptions as shown in the following code snippets. Changing the target file format using the file extension DataSourceInfo dataSourceInfo = new DataSourceInfo(...); DocumentAssembler assembler = new DocumentAssembler(); assembler.AssembleDocument(\u0026#34;template.docx\u0026#34;, \u0026#34;result.pdf\u0026#34;, dataSourceInfo); Changing target file format using explicit specification Stream sourceStream = ...; Stream targetStream = ...; DataSourceInfo dataSourceInfo = new DataSourceInfo(...); DocumentAssembler assembler = new DocumentAssembler(); assembler.AssembleDocument(sourceStream, targetStream, new LoadSaveOptions(FileFormat.Pdf), dataSourceInfo); For more details on this feature, please visit this documentation article. At the moment, GroupDocs.Assembly API provides the ability to change target file format when assembling the following file formats:\nWord Processing documents Spreadsheet documents Presentation documents Email documents Text documents Supported output file formats depending on input file formats can be found at this page.\nAPI Changes Newly Added TypesFollowing types are added in the latest version. public class DataSourceInfo public enum FileFormat public class LoadSaveOptions Newly Added Members of DocumentAssemblerFollowing members of DocumentAssembler are added in the latest version. public void AssembleDocument(string sourcePath, string targetPath, params DataSourceInfo[] dataSourceInfos) public void AssembleDocument(string sourcePath, string targetPath, LoadSaveOptions loadSaveOptions, params DataSourceInfo[] dataSourceInfos) public void AssembleDocument(Stream sourceStream, Stream targetStream, params DataSourceInfo[] dataSourceInfos) public void AssembleDocument(Stream sourceStream, Stream targetStream, LoadSaveOptions loadSaveOptions, params DataSourceInfo[] dataSourceInfos) Removed Members of DocumentAssemblerFollowing members of DocumentAssembler are removed in the latest version. public void AssembleDocument(string sourcePath, string targetPath, object dataSource) public void AssembleDocument(string sourcePath, string targetPath, object dataSource, string dataSourceName) public void AssembleDocument(string sourcePath, string targetPath, object[] dataSources, string[] dataSourceNames) public void AssembleDocument(Stream sourceStream, Stream targetStream, object dataSource) public void AssembleDocument(Stream sourceStream, Stream targetStream, object dataSource, string dataSourceName) public void AssembleDocument(Stream sourceStream, Stream targetStream, object[] dataSources, string[] dataSourceNames) Breaking Changes Removed members of DocumentAssembler are replaced with new ones. Removed members were not marked as obsolete (deprecated) before removal as usual, because this would complicate migration to new members of DocumentAssembler in Java. Thus, we have introduced a breaking change and customers need to migrate their code from removed members of DocumentAssembler to newly added ones when upgrading to the new version of GroupDocs.Assembly. For more details, please visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly for .NET.\nInstallation - Install GroupDocs.Assembly using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Assembly Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Assembly FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Assembly for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/assembly/change-target-file-format-using-groupdocs.assembly-for-.net-18.9/","summary":"We are delighted to announce a powerful new feature in the monthly release of GroupDocs.Assembly for .NET 18.9. Using the latest version, you can now change the target file format of an assembled document using file extension or explicit specification. You can change the target file format when assembling Word Processing, Spreadsheet, Presentation, Email and Text file formats. We recommend you to install and use the latest version of the API.","title":"Change Target File Format using GroupDocs.Assembly for .NET 18.9"},{"content":"\rGroupDocs.Conversion for .NET 18.9 covers some new features, improvements and major bug fixes. Conversion from PLT and LGS formats is introduced. Aside this, Word, Image and HTML conversion options are improved. Excel to SVG conversion issue is fixed. Please refer to GroupDocs.Conversion for .NET 18.9 release notes for further reference. We\u0026rsquo;d recommend you to integrate latest version of the API in your applications and share your feedback.\nFeatures Implement conversion from PLT, LGS and CGM Password protection when converting to ODS Support converting password protected ODS document Improvements Pdf to Cells improvement Improve Words, Slides, Image, HTML, PDF and Cells conversion options Bug Fixes XLS to HTML output is too small Excel to SVG conversion issue Xps to Pdf conversion issue API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nNuGet - Nuget install Documentation - Product Wiki Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/conversion-from-plt-format-is-introduced-in-groupdocs.conversion-for-.net-18.9/","summary":"GroupDocs.Conversion for .NET 18.9 covers some new features, improvements and major bug fixes. Conversion from PLT and LGS formats is introduced. Aside this, Word, Image and HTML conversion options are improved. Excel to SVG conversion issue is fixed. Please refer to GroupDocs.Conversion for .NET 18.9 release notes for further reference. We\u0026rsquo;d recommend you to integrate latest version of the API in your applications and share your feedback.\nFeatures Implement conversion from PLT, LGS and CGM Password protection when converting to ODS Support converting password protected ODS document Improvements Pdf to Cells improvement Improve Words, Slides, Image, HTML, PDF and Cells conversion options Bug Fixes XLS to HTML output is too small Excel to SVG conversion issue Xps to Pdf conversion issue API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Conversion from PLT Format is Introduced in GroupDocs.Conversion for .NET 18.9"},{"content":"\rShare this issue:\nMonthly NewsletterOctober 2018 Business Documents Conversion APIs for .NET and Java Convert between 50+ Document and Image File Formats\nGroupDocs.Conversion Product Family combines .NET and Java APIs suite for faster and accurate conversion of business documents and image file formats between Word, Excel, PowerPoint, PDF, Visio, Project, Outlook, HTML, Photoshop, AutoCAD and image formats. Using the document converter API is very simple as it uses just one method with set of options to convert between different formats.\nAvailable for: .NETJava\nProduct News\nSigning .NET PDF documents Online with Metadata Signatures GroupDocs.Signature for .NET automates business documents e-signing within .NET applications. The latest version adds the ability to save Image documents as PDF, searching and signing up PDF with Metadata signatures, that keep special attributes or tags to contain non-visual information inside the document. Read more details here.\nImprove Memory Usage and Generate Password Protected Documents in .NET GroupDocs.Editor for .NET adds robust security features to password protect Word and Excel documents in all types of .NET applications. You can also adjust memory usage settings while processing Word and Excel files. Additional parameters are also introduced while processing text-based spreadsheets. Read more details here.\n.NET Native API to Merge Microsoft Note Documents GroupDocs.Merger for .NET now enables programmers to work with password-protected ODT and OTT file formats. .NET developers can build applications with abilities to merge Microsoft Note and multiple other document formats (Word, Excel, PowerPoint, Visio, PDF, EPUB). Read more details here.\nMetered Licensing Support to Manipulate Business Documents HTML GroupDocs.Editor for Java now allows editing multi-format business documents using HTML by applying metered licensing. Now you have the freedom and control over paying only for the documents that are manipulated using GroupDocs.Editor for Java API. Read more details here.\nFrom the Library\nJava Code Example: How to Read or Update common TIFF or EXIF tags in TIFF Images? GroupDocs.Metadata APIs allow to compare, manipulate and export metadata of popular file formats within .NET and Java applications. The current version enhances the ability to read EXIF metadata in PSD format and read or update common TIFF or EXIF tags using shortcut properties in TIFF images. The memory consumption is also optimized to perform metadata operations for JPEG, GIF and TIFF file formats.\n.NET Code Example: How to Get List of Indexed Documents from Index Archive? GroupDocs.Search for .NET is an advanced document searching and indexing API. The latest version allows you to get the list of indexed documents and document’s text from the index archive. you can now save encodings automatically which were used to extract text from TXT files. Read more details here.\nCode Example: How to Extract Text from Databases in .NET and Java? GroupDocs.Parser offers text extraction and content analysis API for .NET and Java applications. The latest version adds the feature to extract text from the databases using DbContainer class that implements IContainer interface. You can also extract data from the form fields in a PDF document.\nJava Code Example: How to Strengthen Protection of Text Watermark in PowerPoint documents? GroupDocs.Watermark for Java API allows adding or removing watermarks from the most popular business documents and image file formats. The latest version supports skipping unreadable characters during text watermark search. Also, a new feature to read out the unreadable characters in a text watermark is added to strengthen the protection of text watermark in PowerPoint documents. Read more details here.\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite. GroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite. GroupDocs.Signature for .NET 18.9.1 – Fixed all issues related to signing PDF with Metadata signatures. GroupDocs.Comparison for .NET 18.8 – Text highlighting feature is introduced, and PDF mapper is improved. Check out for more releases during last month\n","permalink":"https://blog.groupdocs.com/total/advanced-documents-conversion-apis-for-.net-and-java-groupdocs-newsletter-october-2018/","summary":"Share this issue:\nMonthly NewsletterOctober 2018 Business Documents Conversion APIs for .NET and Java Convert between 50+ Document and Image File Formats\nGroupDocs.Conversion Product Family combines .NET and Java APIs suite for faster and accurate conversion of business documents and image file formats between Word, Excel, PowerPoint, PDF, Visio, Project, Outlook, HTML, Photoshop, AutoCAD and image formats. Using the document converter API is very simple as it uses just one method with set of options to convert between different formats.","title":"Advanced Documents Conversion APIs for .NET and Java – GroupDocs Newsletter October 2018"},{"content":"\rWe are pleased to announce the monthly release of GroupDocs.Search for .NET 18.9. Using the latest version, you can now get the list of indexed documents and document\u0026rsquo;s text from the index archive. Moreover, you can now save encodings automatically which were used to extract text from TXT files. We would recommend you to install and use the latest version of the API.\nEnhancements Following are the enhancements introduced in the latest version:\nGet List of Indexed Documents Using GroupDocs.Search API you can get a list of indexed documents and items from container documents like ZIP archives, OST and PST files. This example shows how to get a list of indexed documents from an index:\nstring indexFolder = @\u0026#34;c:\\MyIndex\u0026#34;; // Creating index from existing folder Index index = new Index(indexFolder); // Getting list of indexed documents DocumentInfo[] documents = index.GetIndexedDocuments(); // Getting items of container document DocumentInfo[] items = index.GetIndexedDocumentItems(documents[0]); For more details on this feature, please visit this documentation article.\nExtract Document Text Using the latest version, you can now extract document text from the index archive or from a document directly if archiving is not used. An extracted text can be used to check an encoding that is used for indexing text documents. Also, it can be used for quick manual checking of the presence or absence of any words in documents. This example shows how to extract document text from the index:\nstring indexFolder = @\u0026#34;c:\\MyIndex\u0026#34;; // Creating index from existing folder Index index = new Index(indexFolder); // Getting list of indexed documents DocumentInfo[] documents = index.GetIndexedDocuments(); // Extracting HTML formatted document text string htmlText = index.ExtractDocumentText(documents[0], null); This example shows how to extract document text to a file:\nstring indexFolder = @\u0026#34;c:\\MyIndex\u0026#34;; // Creating index from existing folder Index index = new Index(indexFolder); // Getting list of indexed documents DocumentInfo[] documents = index.GetIndexedDocuments(); // Extracting HTML formatted document text to a file index.ExtractDocumentText(@\u0026#34;c:\\DocumentText.html\u0026#34;, documents[0], null); For more details on this feature, please visit this documentation article.\nSave Encodings Automatically GroupDocs.Search for .NET 18.9 implements automatic saving of encodings which were used to extract text from TXT files. In practice, this means that there is no longer any need to provide an encoding when generating document text with highlighted found words. This example shows how to generate HTML formatted text with highlighted found words:\nstring indexFolder = @\u0026#34;c:\\MyIndex\u0026#34;; string documentFolder = @\u0026#34;c:\\MyDocuments\u0026#34;; // Creating index Index index = new Index(indexFolder); // Subscribing to file indexing event index.FileIndexing += (sender, args) =\u0026gt; { // Setting encoding for each text file during indexing args.Encoding = Encodings.windows_1251; }; // Adding text documents encoded in windows-1251 to index index.AddToIndex(documentFolder); // Searching for word \u0026#39;человеческий\u0026#39; SearchResults results = index.Search(\u0026#34;человеческий\u0026#34;); // Generating HTML formatted text with highlighted found words // There is no need to provide the encoding again - it is saved in the index string htmlText = index.HighlightInText(results[0]); For more details on this feature, please visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search:\nInstallation - Install GroupDocs.Search using NuGet Documentation - Product docs Examples/Plugins/Showcases - Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to the GroupDocs.Search for .NET API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/get-list-of-indexed-documents-using-groupdocs.search-for-.net-18.9/","summary":"We are pleased to announce the monthly release of GroupDocs.Search for .NET 18.9. Using the latest version, you can now get the list of indexed documents and document\u0026rsquo;s text from the index archive. Moreover, you can now save encodings automatically which were used to extract text from TXT files. We would recommend you to install and use the latest version of the API.\nEnhancements Following are the enhancements introduced in the latest version:","title":"Get List of Indexed Documents using GroupDocs.Search for .NET 18.9"},{"content":"\rThis blog post covers the hotfix introduced in GroupDocs.Signature for .NET 18.9.1. In previous version of the API there was a issue while signing PDF with Metadata Signatures. But now this issue has been fixed, we therefore, recommend you to download the new release and enhance document e-signing experience.\nBug Fix Exception is thrown while signing PDF with Metadata Signatures Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for .NET:\nNuGet - Nuget install Documentation - Product Docs API References – Signature API References Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/groupdocs-signature-for-.net-18.9.1/","summary":"This blog post covers the hotfix introduced in GroupDocs.Signature for .NET 18.9.1. In previous version of the API there was a issue while signing PDF with Metadata Signatures. But now this issue has been fixed, we therefore, recommend you to download the new release and enhance document e-signing experience.\nBug Fix Exception is thrown while signing PDF with Metadata Signatures Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.","title":"Announcing Hotfix release of GroupDocs Signature for .NET 18.9.1"},{"content":"\rWe are delighted to announce the monthly releaseof GroupDocs.Metadata for Java 18.9. Using the latest version, you can now read EXIF metadata in PSD format, and read or update common TIFF/EXIF tags using shortcut properties in TIFF images. Moreover, memory consumption is now reduced to perform metadata operations for JPEG, GIF and TIFF file formats, and classes representing TIFF tags are now refactored. Additionally, GroupDocs.Metadata.Formats.Document.InspectionResult class, Metadata.ContentProperties property, and EpubFormat.GetImageCoverBytes method are now marked obsolete. We recommend you to install and use the latest version of the API.\nFeatures IntroducedFollowing is the new feature introduced in version 18.9. Ability to read EXIF metadata in the PSD format For details about the features supported by the API, please visit Features Overview.\nEnhancementsFollowing are the enhancements introduced in version 18.9. Ability to read and update common TIFF/EXIF tags in TIFF images Reduced memory consumption for GIF format\u0026rsquo;s loading and saving Reduced memory consumption for JPEG format\u0026rsquo;s loading and saving Reduced memory consumption for TIFF format\u0026rsquo;s loading and saving Removed EpubFormat.GetImageCoverBytes method (obsolete code) Removed GroupDocs.Metadata.Formats.Document.InspectionResult class (obsolete code) Removed XlsMetadata.ContentProperties property (obsolete code) Get specific TIFF tags Updated metadata search API Updated metadata comparison API FixesFollowing are the bug fixes in the latest version. Unable to add TiffTag to EXIF tags Unable to remove Title, Subject, Authors, and Copyright fields in Tiff file TIF file SetSubject() method updates Tags field instead of Subject Breaking ChangeSince version 18.9, the Metered licensing security has been improved. Metered licensing is now applicable only in Java runtime version 8u101 or above. Please use other types of licensing if you are using v18.9 or greater in Java 7. Available Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Metadata for Java: Installation - Install GroupDocs.Metadata from Maven Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Metadata product family FeedbackWe always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Metadata for Java at our forum. ","permalink":"https://blog.groupdocs.com/metadata/read-exif-metadata-in-psd-format-using-groupdocs.metadata-for-java-18.9/","summary":"We are delighted to announce the monthly releaseof GroupDocs.Metadata for Java 18.9. Using the latest version, you can now read EXIF metadata in PSD format, and read or update common TIFF/EXIF tags using shortcut properties in TIFF images. Moreover, memory consumption is now reduced to perform metadata operations for JPEG, GIF and TIFF file formats, and classes representing TIFF tags are now refactored. Additionally, GroupDocs.Metadata.Formats.Document.InspectionResult class, Metadata.ContentProperties property, and EpubFormat.","title":"Read EXIF Metadata in PSD Format using GroupDocs.Metadata for Java 18.9"},{"content":"\rWe are proudly announcing five enhancements and three bug fixes in the monthly release of GroupDocs.Metadata for .NET 18.9. Using the latest version, you can read and update common TIFF/EXIF tags in TIFF images. The memory consumption is now reduced for GIF format\u0026rsquo;s loading and saving metadata. Additionally, GroupDocs.Metadata.Formats.Document.InspectionResult class XlsMetadata.ContentProperties property, and EpubFormat.GetImageCoverBytes method are now marked obsolete. We recommend you to install and use the latest version of the API.\nEnhancementsFollowing are the enhancements introduced in version 18.9. Ability to read and update common TIFF/EXIF tags in TIFF images Reduced memory consumption for GIF format\u0026rsquo;s loading and saving Removed EpubFormat.GetImageCoverBytes method (obsolete code) Removed GroupDocs.Metadata.Formats.Document.InspectionResult class (obsolete code) Removed XlsMetadata.ContentProperties property (obsolete code) For details about the features supported by the API, please visit Features Overview.\nFixesFollowing are the bug fixes in version 18.9. Unable to add TiffTag to EXIF tags Unable to remove Title, Subject, Authors, and Copyright fields in Tiff file TIF file SetSubject() method updates Tags field instead of Subject Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Installation - Install GroupDocs.Metadata using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/update-common-tiff-tags-with-shortcut-properties-using-groupdocs.metadata-for-.net-18.9/","summary":"We are proudly announcing five enhancements and three bug fixes in the monthly release of GroupDocs.Metadata for .NET 18.9. Using the latest version, you can read and update common TIFF/EXIF tags in TIFF images. The memory consumption is now reduced for GIF format\u0026rsquo;s loading and saving metadata. Additionally, GroupDocs.Metadata.Formats.Document.InspectionResult class XlsMetadata.ContentProperties property, and EpubFormat.GetImageCoverBytes method are now marked obsolete. We recommend you to install and use the latest version of the API.","title":"Update Common TIFF Tags with Shortcut Properties using GroupDocs.Metadata for .NET 18.9"},{"content":"\rWe are glad to announce another monthly release of GroupDocs.Editor for Java 18.9. This release comes up with multitude of new features. Now, you can manipulate documents by applying Metered License. Moreover, improvements like security update and few fixes are also introduced in this release. We’d recommend you to download latest version of the API and share your feedback.\nFeatures Following features for Cell documents are introduced:\nConversion to HTML format\nGeneration from input HTML\nAbility to specify a separator\nOpening encrypted documents with password\nEncrypting output Cells document with setting a password\nSupport of Metered license system\nGenerate password-protected Cells and Words document\nAdditional parameters when processing text-based spreadsheet\nAdjust memory usage during Cells and Words document processing\nExcludeHiddenWorksheets option\nPDF standards compliance level when generating PDF from HTML\nImprovements Processing of multiple consequent spaces in Words processing module for round-trip scenarios Space processing for bidirectional text List processing in round-trip scenarios Security improvements update Bug Fixes Length and Resolution parsing modules ArgumentException with sample document Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.editor: Download – Zipped JAR Documentation – API Documentation API References - Annotation API References Examples – GitHub source code examples Product Support Forum - Technical Support Forum for GroupDocs.Editor FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/editor/groupdocs.editor-for-java-18.9/","summary":"We are glad to announce another monthly release of GroupDocs.Editor for Java 18.9. This release comes up with multitude of new features. Now, you can manipulate documents by applying Metered License. Moreover, improvements like security update and few fixes are also introduced in this release. We’d recommend you to download latest version of the API and share your feedback.\nFeatures Following features for Cell documents are introduced:\nConversion to HTML format","title":"Introducing Metered License Support in GroupDocs.Editor for Java 18.9"},{"content":"\rWe are delighted to announce another monthly release of GroupDocs.Signature for .NET 18.9 with multitude of new features like ability to save Image documents as PDF and signing of PDF with Metadata Signatures. Furthermore, this monthly release also comes up with few fixes, we therefore, recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\nFeatures Metadata Signatures for PDFThe Metadata Signature is the additional document property that contains special attributes/tags to keep non visual information inside the document. Following example demonstrates how to compose Metadata Signature options for PDF document: PdfMetadataSignOptions result = new PdfMetadataSignOptions(); result.MetadataSignatures.Add(new PdfMetadataSignature(\u0026#34;Author\u0026#34;, \u0026#34;Mr.Sherlock Holmes\u0026#34;)); result.MetadataSignatures.Add(new PdfMetadataSignature(\u0026#34;CreationDate\u0026#34;, DateTime.Now)); result.MetadataSignatures.Add(new PdfMetadataSignature(\u0026#34;Creator\u0026#34;, \u0026#34;Dr.Whatson\u0026#34;)); result.MetadataSignatures.Add(new PdfMetadataSignature(\u0026#34;ModDate\u0026#34;, DateTime.Now)); result.MetadataSignatures.Add(new PdfMetadataSignature(\u0026#34;Producer\u0026#34;, \u0026#34;BakerStreet.Inc\u0026#34;)); result.MetadataSignatures.Add(new PdfMetadataSignature(\u0026#34;Subject\u0026#34;, \u0026#34;Baskervalley\u0026#34;)); result.MetadataSignatures.Add(new PdfMetadataSignature(\u0026#34;Title\u0026#34;, \u0026#34;OfficeDocument\u0026#34;)); result.MetadataSignatures.Add(new PdfMetadataSignature(\u0026#34;Trapped\u0026#34;, \u0026#34;Information\u0026#34;)); result.MetadataSignatures.Add(new PdfMetadataSignature(\u0026#34;IsSigned\u0026#34;, true)); result.MetadataSignatures.Add(new PdfMetadataSignature(\u0026#34;SignatureId\u0026#34;, 112233)); result.MetadataSignatures.Add(new PdfMetadataSignature(\u0026#34;Amount\u0026#34;, 123.456)); return result; Search Metadata SignatureUsers of this API can search for Metadata Signatures within the document. Following example demonstrates how to search Metadata Signatures in PDF document: // setup search options PdfSearchMetadataOptions searchOptions = new PdfSearchMetadataOptions(); // search document SearchResult result = handler.Search(\u0026#34;SignedMetadata.pdf\u0026#34;, searchOptions); // output signatures foreach (BaseSignature signature in result.Signatures) { PdfMetadataSignature metadataSignature = signature as PdfMetadataSignature; if (metadataSignature != null) { Console.WriteLine(\u0026#34;Pdf Metadata: {0}:{1} = {2}\u0026#34;, metadataSignature.TagPrefix, metadataSignature.Name, metadataSignature.ToString()); } } Metadata Signature Entity and CollectionUsers of this API can also add collection of Metadata Signatures in document. Following example demonstrates how to add collection of Metadata Signatures in PDF document: // setup options with text of signature PdfMetadataSignOptions signOptions = new PdfMetadataSignOptions(); // Specify different Metadata Signatures and add them to options sigature collection // setup Author property PdfMetadataSignature mdSign_Author = new PdfMetadataSignature(\u0026#34;Author\u0026#34;, \u0026#34;Mr.Scherlock Holmes\u0026#34;); signOptions.MetadataSignatures.Add(mdSign_Author); // setup data of document id PdfMetadataSignature mdSign_DocId = new PdfMetadataSignature(\u0026#34;DocumentId\u0026#34;, Guid.NewGuid().ToString()); signOptions.MetadataSignatures.Add(mdSign_DocId); // setup data of sign date PdfMetadataSignature mdSign_Date = new PdfMetadataSignature(\u0026#34;SignDate\u0026#34;, DateTime.Now, \u0026#34;pdf\u0026#34;); signOptions.MetadataSignatures.Add(mdSign_Date); // sign document string signedPath = handler.Sign(\u0026#34;test.pdf\u0026#34;, signOptions, new SaveOptions { OutputType = OutputType.String, OutputFileName = \u0026#34;Pdf_Documents_Metadata\u0026#34; }); Console.WriteLine(\u0026#34;Signed file path is: \u0026#34; + signedPath); Save Image Documents as PDFImage documents can be saved as PDF using this latest release of the API. MatchType for Text Verification OptionsNow API provides ability to verify Text Signatures with extended option MatchType Bug Fixes Incorrect signing image documents with .psd, .wmf and .svg format Output PDF incorrectly signed with Digital Certificates Unable to search Digital signature in Cells with extended options Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for .NET:\nNuGet - Nuget install Documentation - Product Docs API References – Signature API References Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/groupdocs.signature-for-.net-18.9/","summary":"We are delighted to announce another monthly release of GroupDocs.Signature for .NET 18.9 with multitude of new features like ability to save Image documents as PDF and signing of PDF with Metadata Signatures. Furthermore, this monthly release also comes up with few fixes, we therefore, recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\nFeatures Metadata Signatures for PDFThe Metadata Signature is the additional document property that contains special attributes/tags to keep non visual information inside the document.","title":"Introducing Metadata Signatures in GroupDocs.Signature for .NET 18.9"},{"content":"\rGroupDocs.Parser for .NET 18.9 has been released! The latest version allows you to extract text from the databases. You can also extract data from the form fields in a PDF document. Please continue to read for more details on the features introduced in v18.9.\nFeatures Introduced Extracting Text from DatabasesYou can now extract text from the databases. To extract text from databases DbContainer class is used that implements IContainer interface. Each data table is represented by the entity. The content of the entity is CSV-presentation of the data table. For a working example, please refer to the following article: Extracting Text from Databases Extracting Data from the Form Fields in PDF DocumentsThis feature allows extracting data from PDF forms. It is very useful when you are only concerned with the data in the forms of the PDF document. GetFormData method of PdfTextExtractor class is used for this purpose. For a working example, please refer to the following article: Extracting Data from Form Fields in PDF Documents Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Parser:\nInstallation - Install GroupDocs.Parser using NuGet Documentation - Product Docs Examples - GitHub Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Parser Have Queries? If you have got any queries or concerns about the API, please feel free to get in touch with us over the forum. We’ll be glad to address your concerns.\n","permalink":"https://blog.groupdocs.com/parser/extract-text-from-databases-using-groupdocs.parser-for-.net-18.9/","summary":"GroupDocs.Parser for .NET 18.9 has been released! The latest version allows you to extract text from the databases. You can also extract data from the form fields in a PDF document. Please continue to read for more details on the features introduced in v18.9.\nFeatures Introduced Extracting Text from DatabasesYou can now extract text from the databases. To extract text from databases DbContainer class is used that implements IContainer interface.","title":"Extract Text from Databases using GroupDocs.Parser for .NET 18.9"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Editor for .NET 18.9 with many new features. The main features introduced in this release are ability to adjust memory usage and generation of password protected documents. Furthermore, security improvement and few bugfixes are also introduced in this release. We’d recommend our users to download latest API and get benefits from new and enhanced API features.\nFeatures Generate password-protected Cells and Words document Additional parameters when processing text-based spreadsheet Adjust memory usage during Cells and Words document processing ExcludeHiddenWorksheets option PDF standards compliance level when generating PDF from HTML Improvements Security improvements update Bug Fixes Length and Resolution parsing modules ArgumentException with sample document Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Editor: NuGet - Download Documentation - API Documentation API References - Annotation API References Examples- Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Editor FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/editor/groupdocs.editor-for-.net-18.9/","summary":"We are pleased to announce another monthly release of GroupDocs.Editor for .NET 18.9 with many new features. The main features introduced in this release are ability to adjust memory usage and generation of password protected documents. Furthermore, security improvement and few bugfixes are also introduced in this release. We’d recommend our users to download latest API and get benefits from new and enhanced API features.\nFeatures Generate password-protected Cells and Words document Additional parameters when processing text-based spreadsheet Adjust memory usage during Cells and Words document processing ExcludeHiddenWorksheets option PDF standards compliance level when generating PDF from HTML Improvements Security improvements update Bug Fixes Length and Resolution parsing modules ArgumentException with sample document Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Optimize Memory Usage using GroupDocs.Editor for .NET 18.9"},{"content":"\rWe are pleased to introduce version 18.8 of GroupDocs.Watermark for Java. This version includes 2 new features, 1 enhancement, 1 bug fix, and a breaking change as well. It supports skipping unreadable characters during text watermark search. Furthermore, we have also added a new feature to strengthen protection of text watermark in PowerPoint documents. Please continue to read more about version 18.8.\nFeatures Introduced Skipping Unreadable Characters During Text Watermark Search There might be the case that the watermark\u0026rsquo;s text contains unreadable characters. The unreadable characters may affect the searching of the watermark. The latest version of GroupDocs.Watermark allows finding text watermark even if it contains unreadable characters between the letters. For a working example, please refer to the following article:\nSkipping unreadable characters during text watermark search Strengthening the Protection of Text Watermark in Presentation Documents Using unreadable characters in the watermark text forbids its modification using Find and Replace dialog and therefore, it strengthens the protection of text watermark in presentation documents. GroupDocs.Watermark for Java 18.8 allows including unreadable characters in a text watermark to strengthen its protection. For a working example, please refer to the following article:\nStrengthen protection of text watermark in presentation documents Enhancements Support of SmartArt and CustomXml Drawing Types in Spreadsheet Documents The latest version of GroupDocs.Watermark also supports SmartArt and CustomXml drawing types for Excel documents. You can now find and remove SmartArt and CustomXml drawing types from the worksheets. For a working example, please refer to the following article:\nRemoving SmartArt and CustomXml drawing types from worksheets Bug Fixes GroupDocs.Watermark for Java 18.8 includes the fix for the following issue.\nLocking watermark in PPTX, PPT is not working Breaking Change Since version 18.8, the security of Metered licensing has been improved. Metered licensing is now applicable only in Java runtime version 8u101 or above. Please use other types of licensing if you are using v18.8 or above in Java 7.\nAvailable Channels and Resources Installation - Install GroupDocs.Watermark from Maven Documentation - API Documentation Examples - Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Watermark Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/watermark/strengthen-the-protection-of-text-watermark-using-groupdocs.watermark-for-java-18.8/","summary":"We are pleased to introduce version 18.8 of GroupDocs.Watermark for Java. This version includes 2 new features, 1 enhancement, 1 bug fix, and a breaking change as well. It supports skipping unreadable characters during text watermark search. Furthermore, we have also added a new feature to strengthen protection of text watermark in PowerPoint documents. Please continue to read more about version 18.8.\nFeatures Introduced Skipping Unreadable Characters During Text Watermark Search There might be the case that the watermark\u0026rsquo;s text contains unreadable characters.","title":"Strengthen the Protection of Text Watermark in Presentation Documents using GroupDocs.Watermark for Java 18.8"},{"content":"\rThis month\u0026rsquo;s release of GroupDocs.Merger for .NET 18.9 comes with some new features. API enables you to work with password-protected ODT and OTT file formats. You can also trim Note formatted documents. Please see release notes for further details.\nFeatures Note format is supported by following methods:\nJoin\nMovePage\nRemovePage\nSplit document\nSwapPages\nTrim\nImplement security methods for the following formats:\nOTT\nODT\nAvailable Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Merger:\nNuGet - NuGet Install Documentation - API Documentation API Reference - GroupDocs.Merger for .NET API Reference Examples- Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Merger queries FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/merger/note-format-is-supported-in-groupdocs.merger-for-.net-18.9/","summary":"This month\u0026rsquo;s release of GroupDocs.Merger for .NET 18.9 comes with some new features. API enables you to work with password-protected ODT and OTT file formats. You can also trim Note formatted documents. Please see release notes for further details.\nFeatures Note format is supported by following methods:\nJoin\nMovePage\nRemovePage\nSplit document\nSwapPages\nTrim\nImplement security methods for the following formats:\nOTT\nODT\nAvailable Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.","title":"Note Format is Supported in GroupDocs.Merger for .NET 18.9"},{"content":"\rGroupDocs.Comparison for .NET 18.8 comes with some new features, improvements and bug fixes.Text highlighting feature is introduced and PDF mapper is improved. Please follow the release notes here for further details. We\u0026rsquo;d recommend you to try latest version of the API and share your feedback.\nFeatures Implement new Setting for text highlighting in Html, Slides, Notes, Pdf and Words settings.InsertedItemsStyle.HighlightColor = System.Drawing.Color.Red; settings.DeletedItemsStyle.HighlightColor = System.Drawing.Color.Blue; settings.DeletedItemsStyle.HighlightColor = System.Drawing.Color.Blue; Improvements Improve PDF mapper Support of comparing different formats with image Bug Fix Output of PDF with graphs is not as expected PDF with images is not as expected Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nNuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/text-highlight-settings-are-introduced-in-groupdocs.comparison-for-.net-18.8/","summary":"GroupDocs.Comparison for .NET 18.8 comes with some new features, improvements and bug fixes.Text highlighting feature is introduced and PDF mapper is improved. Please follow the release notes here for further details. We\u0026rsquo;d recommend you to try latest version of the API and share your feedback.\nFeatures Implement new Setting for text highlighting in Html, Slides, Notes, Pdf and Words settings.InsertedItemsStyle.HighlightColor = System.Drawing.Color.Red; settings.DeletedItemsStyle.HighlightColor = System.Drawing.Color.Blue; settings.DeletedItemsStyle.HighlightColor = System.Drawing.Color.Blue; Improvements Improve PDF mapper Support of comparing different formats with image Bug Fix Output of PDF with graphs is not as expected PDF with images is not as expected Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Text Highlight Settings are Introduced in GroupDocs.Comparison for .NET 18.8"},{"content":"\rShare this issue:\nMonthly NewsletterSeptember 2018 Java API to Merge, Reorder, Split or Remove Document Pages Manipulate PDF, Word, Excel and PowerPoint Documents\nGroupDocs.Merger for Java - allows merging documents of same file formats into one. The document protection feature allows to password protect documents while joining popular business document formats: PDF, Microsoft Word, Excel and PowerPoint.\nProduct News\n.NET Text Analysis API for Excel Spreadsheets, Presentations and Text Documents GroupDocs.Parser for .NET now supports extracting text areas from the pages Microsoft Excel, PowerPoint and Text documents. DocumentContent abstract class provides API to extract text areas from document pages. Read more details here.\n.NET API to Search for Morphological Word Forms within Business Documents GroupDocs.Search for .NET now supports searching for verb, singular and plural forms of a noun at the same time: root, third-person singular, present participle, simple past, and past participle. The search API also allows you to break updating, merging and indexing operations manually.Read more details here.\nFrom the Library\n.NET Code Example: Render a Part of Microsoft Project Document GroupDocs.Viewer for .NET introduces the feature of rendering a part of Microsoft Project document specifying the start date and end date using ProjectOptions class. When only one of these properties is set, rendering starts from the project’s start date or ends on the project’s end date correspondingly. Read more details here.\n.NET Code Example: Skip Unreadable Characters during Watermark Search GroupDocs.Watermark for .NET allows finding text watermark even if it contains unreadable characters between the letters. Another feature to strengthen the protection of text watermark in presentation documents is also supported. Read more details here.\nCode Example: Insert Hyperlinks Dynamically in Business Document Formats GroupDocs.Assembly now supports dynamically inserting hyperlinks to your .NET and Java based Microsoft Word, Excel, PowerPoint and Email documents dynamically using link tags.\n.NET Code Example: Set Position of e-Signature in Excel Spreadsheets GroupDocs.Signature for .NET allows setting position of Signatures in Cells with some predefined measure units of these signature types (Text, Image, QR-Code, Barcode, Stamp and Digital Signatures). You can also cancel signing process and additional search criteria for Digital Signatures of Words and Cells Documents. Read more details here.\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite. GroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite. GroupDocs.Annotation for .NET 18.7.1 – Maintenance release: Security improvements update. GroupDocs.Signtaure for .NET 18.7.1 – Maintenance release: Security improvements update. GroupDocs.Signature for Java 18.7.1 – Maintenance release: The output PDF is incorrectly signed. GroupDocs.Conversion for .NET 18.8 – PDF conversion is improved and some of the obsolete constructors and properties are removed. GroupDocs.Comparison for .NET 18.7.1 – Maintenance release: Security improvements update. Check out for more releases during last month.\n","permalink":"https://blog.groupdocs.com/total/new-api-launched-groupdocs.merger-for-java-groupdocs-newsletter-september-2018/","summary":"Share this issue:\nMonthly NewsletterSeptember 2018 Java API to Merge, Reorder, Split or Remove Document Pages Manipulate PDF, Word, Excel and PowerPoint Documents\nGroupDocs.Merger for Java - allows merging documents of same file formats into one. The document protection feature allows to password protect documents while joining popular business document formats: PDF, Microsoft Word, Excel and PowerPoint.\nProduct News\n.NET Text Analysis API for Excel Spreadsheets, Presentations and Text Documents GroupDocs.","title":"New API Launched – GroupDocs.Merger for Java – GroupDocs Newsletter September 2018"},{"content":"\rWe are pleased to introduce another monthly release of GroupDocs.Annotation for .NET 18.8. This latest release comes up with some new features like ability to apply text annotation without changing the color and reviewer rights management. Apart from that, few improvements and fixes are also introduced in this release, we therefore recommend you to download this latest release of the API to enhance your document annotation experience.\nFeatures Ability to apply text annotations without changing the color Reviewer rights management for operations with replies Set text annotations transparency for Diagrams Creating Arrow annotation with AnnotationInfo.Box in PDF document Improvements Default TextField background color for PDF,Diagrams and Slides documents Display border for TextField annotation in Images Applying annotation properties for Diagrams Change applying comments with replies Bug Fixes Manual date changing for Diagrams Cleaning multiple different annotations for PDF document Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation:\nNuget Package - Download Documentation - Product Docs Examples - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/groupdocs.annotation-for-.net-18.8/","summary":"We are pleased to introduce another monthly release of GroupDocs.Annotation for .NET 18.8. This latest release comes up with some new features like ability to apply text annotation without changing the color and reviewer rights management. Apart from that, few improvements and fixes are also introduced in this release, we therefore recommend you to download this latest release of the API to enhance your document annotation experience.\nFeatures Ability to apply text annotations without changing the color Reviewer rights management for operations with replies Set text annotations transparency for Diagrams Creating Arrow annotation with AnnotationInfo.","title":"Set Text Annotation Transparency for Diagrams using GroupDocs.Annotation for .NET 18.8"},{"content":"\rGroupDocs.Viewer for .NET 18.8.1 is a hotfix release that resolves the issue of getting the first page filled with black color when rendering PDF document. We recommend you to use the this latest version for an improved rendering of PDF documents.\nBug FixesFollowing issue is fixed in this hotfix release. First page is filled with black color when rendering PDF document API ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer for .NET. Installation - Install GroupDocs.Viewer using NuGet Documentation - Product Docs Video Tutorials - YouTube Videos Examples / Plugins - Source Code Examples Sample Front End Apps - Open Source Document Viewer Applications Technical Support Forum - Technical Support Forum for GroupDocs.Viewer FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/releasing-the-hotfix-of-groupdocs.viewer-for-.net/","summary":"GroupDocs.Viewer for .NET 18.8.1 is a hotfix release that resolves the issue of getting the first page filled with black color when rendering PDF document. We recommend you to use the this latest version for an improved rendering of PDF documents.\nBug FixesFollowing issue is fixed in this hotfix release. First page is filled with black color when rendering PDF document API ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Releasing the Hotfix of GroupDocs.Viewer for .NET"},{"content":"\rWe are proudly announcing the monthly release of GroupDocs.Search for .NET 18.8. Using the latest version, you can now cancel all operations in IndexRepository. We would recommend you to install and use the latest version of the API.\nEnhancements Following are the enhancements introduced in the latest version:\nBreaking functionality for Index Repository ClassUsing the latest version you can now cancel the operations in all indexes in the index repository. The cancelling is not instantaneous and in cases of operations with large documents, the breaking can take about a second. The following code snippet shows how to break the updating operation:\nstring indexFolder = \u0026#34;c:\\\\MyIndex\\\\\u0026#34;; string documentsFolder = \u0026#34;c:\\\\MyDocuments\\\\\u0026#34;; IndexRepository repository = new IndexRepository(); Index index = repository.Create(indexFolder ); index.AddToIndexAsync(indexFolder); // Breaking all processes in all indexes in repository repository.Break(); You can also cancel the operation using Cancellation object. The following code snippet breaks the updating operation with Cancellation object:\nstring documentsFolder = \u0026#34;c:\\\\MyDocuments\\\\\u0026#34;; IndexRepository repository = new IndexRepository(); Index index = repository.Create(); index.AddToIndex(documentsFolder); Cancellation cnc = new Cancellation(); // Updating all indexes in repository repository.UpdateAsync(cnc); // Canceling all operations in index repository cnc.Cancel(); For more details on this feature, please visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search:\nInstallation - Install GroupDocs.Search using NuGet Documentation - Product docs Examples/Plugins/Showcases - Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to the GroupDocs.Search for .NET API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/cancel-all-operations-in-indexrepository-using-groupdocs.search-for-.net-18.8/","summary":"We are proudly announcing the monthly release of GroupDocs.Search for .NET 18.8. Using the latest version, you can now cancel all operations in IndexRepository. We would recommend you to install and use the latest version of the API.\nEnhancements Following are the enhancements introduced in the latest version:\nBreaking functionality for Index Repository ClassUsing the latest version you can now cancel the operations in all indexes in the index repository.","title":"Cancel All Operations in IndexRepository using GroupDocs.Search for .NET 18.8"},{"content":"\rGroupDocs.Comparison for Java 18.6.2 comes with few bug fixes. Comparison of presentation documents from stream to file is now fixed, please visit the release notes. We\u0026rsquo;d recommend you to Download the new release and enhance your document comparison experience.\nBug Fixes Compare presentations from stream to file is not working properly Only first two pages compared in result document Incorrect result when comparing two PDF files API ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison: Product Home – GroupDocs.Comparison for Java Documentation – Product Documentations Examples/Plugins/Showcases – Github source code examples Product Support Forum – Technical Support Forum for GroupDocs.Comparison FeedbackWe always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/announcing-hotfix-release-of-groupdocs.comparison-for-java-18.6.2/","summary":"GroupDocs.Comparison for Java 18.6.2 comes with few bug fixes. Comparison of presentation documents from stream to file is now fixed, please visit the release notes. We\u0026rsquo;d recommend you to Download the new release and enhance your document comparison experience.\nBug Fixes Compare presentations from stream to file is not working properly Only first two pages compared in result document Incorrect result when comparing two PDF files API ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Announcing Hotfix Release of GroupDocs.Comparison for Java 18.6.2"},{"content":"\rGroupDocs team is proudly announcing one new feature and three enhancements in the monthly release of GroupDocs.Metadata for .NET 18.8. Using the latest version, you can now read EXIF metadata in PSD format. Classes representing TIFF tags are now refactored. Furthermore, memory consumption is now reduced to perform metadata operations for JPEG and TIFF file formats. We recommend you to install and use the latest version of the API.\nFeatures IntroducedFollowing is the new feature introduced in version 18.8. Read EXIF Metadata in PSD Format For details about the features supported by the API, please visit Features Overview.\nEnhancementsFollowing are the enhancements introduced in version 18.8. Reduce memory consumption for JPEG format\u0026rsquo;s loading and saving Reduce memory consumption for TIFF format\u0026rsquo;s loading and saving Get specific TIFF tags Updated metadata search API Updated metadata comparison API Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Installation - Install GroupDocs.Metadata using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/read-exif-metadata-in-psd-format-using-groupdocs.metadata-for-.net-18.8/","summary":"GroupDocs team is proudly announcing one new feature and three enhancements in the monthly release of GroupDocs.Metadata for .NET 18.8. Using the latest version, you can now read EXIF metadata in PSD format. Classes representing TIFF tags are now refactored. Furthermore, memory consumption is now reduced to perform metadata operations for JPEG and TIFF file formats. We recommend you to install and use the latest version of the API.","title":"Read EXIF Metadata in PSD Format using GroupDocs.Metadata for .NET 18.8"},{"content":"\rWe are pleased to announce the release of version 18.8 of GroupDocs.Parser for .NET. In this version, we have extended the support of text analysis API for spreadsheets, presentations and text documents. Furthermore, the latest version allows providing a password for protected documents on-demand. We’d recommend you to use the latest version of the API and share your feedback.\nFeatures Introduced Text Analysis API GroupDocs.Parser allows extracting text areas from the pages of a document. This feature may help you getting data for text analysis. DocumentContent abstract class provides API to extract text areas from document pages. This feature has been extended for spreadsheets, presentations and text documents in the current version of the API. The following code sample shows how to get text areas from a text document.\n// Create a text extractor WordsTextExtractor extractor = new WordsTextExtractor(\u0026#34;invoice.docx\u0026#34;); // Create search options TextAreaSearchOptions searchOptions = new TextAreaSearchOptions(); // Set a regular expression to search \u0026#39;Invoice # XXX\u0026#39; text searchOptions.Expression = \u0026#34;\\\\s?INVOICE\\\\s?#\\\\s?[0-9]+\u0026#34;; // Limit the search with a rectangle searchOptions.Rectangle = new GroupDocs.Parser.Rectangle(10, 10, 300, 150); // Get text areas IList\u0026lt; textarea \u0026gt; texts = extractor.DocumentContent.GetTextAreas(0, searchOptions); // Iterate over a list foreach(TextArea area in texts) { // Print a text Console.WriteLine(area.Text); } For more details on this feature, please visit this documentation article.\nRequesting the Password for Protected Documents We have two ways to provide a password for the protected documents. When the password is known, Password property of LoadOptions class is used. If it is not known whether it is protected or not before opening the document, PasswordProvider property of LoadOptions class is used. This feature allows providing a password for protected documents on-demand. _IPasswordProvider _interface is used for this purpose. For more details on this feature, please visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Parser:\nInstallation - Install GroupDocs.Parser using NuGet Documentation - Product Docs Examples - GitHub Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Parser Have Queries? If you have got any queries or concerns about the API, please feel free to get in touch with us over the forum. We’ll be glad to address your concerns.\n","permalink":"https://blog.groupdocs.com/parser/text-analysis-api-for-spreadsheets-presentations-and-text-documents-groupdocs.parser-for-.net-18.8/","summary":"We are pleased to announce the release of version 18.8 of GroupDocs.Parser for .NET. In this version, we have extended the support of text analysis API for spreadsheets, presentations and text documents. Furthermore, the latest version allows providing a password for protected documents on-demand. We’d recommend you to use the latest version of the API and share your feedback.\nFeatures Introduced Text Analysis API GroupDocs.Parser allows extracting text areas from the pages of a document.","title":"Text Analysis API for Spreadsheets, Presentations and Text Documents - GroupDocs.Parser for .NET 18.8"},{"content":"\rWe are delighted to announce the release of version 18.8 of GroupDocs.Watermark for .NET. The latest version allows skipping unreadable characters during text watermark search. Furthermore, we have also added a new feature to strengthen protection of text watermark in presentation documents. Please continue to read more about the new features, enhancements and bug fixes added in version 18.8.\nFeatures Introduced Skipping Unreadable Characters During Text Watermark Search This feature allows finding text watermark even if it contains unreadable characters between the letters. The following code sample shows how to skip unreadable characters when searching for the watermark.\nstring inputFileName = @\u0026#34;d:\\input.pptx\u0026#34;; using (SlidesDocument document = Document.Load(inputFileName)) { string watermarkText = \u0026#34;Company name\u0026#34;; TextSearchCriteria criterion = new TextSearchCriteria(watermarkText); // Enabling skipping of unreadable characters criterion.SkipUnreadableCharacters = true; PossibleWatermarkCollection result = document.FindWatermarks(criterion); } For more details on this feature, please visit this documentation article.\nProtecting Text Watermark in Presentation Documents This feature allows strengthening the protection of text watermark. Using unreadable characters in the watermark text forbids its modification using Find and Replace dialog. The following code sample shows how to include unreadable characters in watermark text.\nstring inputFileName = @\u0026#34;d:\\input.pptx\u0026#34;; string outputFileName = @\u0026#34;d:\\output.pptx\u0026#34;; using (SlidesDocument document = Document.Load(inputFileName)) { TextWatermark watermark = new TextWatermark(\u0026#34;Watermark text\u0026#34;, new Font(\u0026#34;Arial\u0026#34;, 19)); // Include unreadable characters SlidesShapeSettings settings = new SlidesShapeSettings(); settings.IsLocked = true; settings.ProtectWithUnreadableCharacters = true; // Add wattermark document.AddWatermark(watermark, settings); // Save document document.Save(outputFileName); } For more details on this feature, please visit this documentation article.\nEnhancements Support of SmartArt and CustomXml Drawing Types in Spreadsheet Documents The current version of GroupDocs.Watermark allows finding and removing SmartArt and CustomXml shape types from the worksheet as shown in the following code sample.\nstring inputFileName = @\u0026#34;G:\\Input.xlsx\u0026#34;; string outputFileName = @\u0026#34;G:\\Output.xlsx\u0026#34;; using (CellsDocument document = Document.Load(inputFileName)) { var shapes = document.Worksheets[0].Shapes; // check if shape is SmartArt or CustomXml for (int i = shapes.Count - 1; i \u0026gt;= 0; i--) { CellsShape shape = shapes[i]; if (shape.MsoDrawingType == CellsMsoDrawingType.SmartArt || shape.MsoDrawingType == CellsMsoDrawingType.CustomXml) { shapes.RemoveAt(i); } } // Save document document.Save(outputFileName); } Bug Fixes GroupDocs.Watermark for .NET 18.8 includes the following bug fix.\nLocking watermark in PPTX, PPT is not working Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Watermark:\nInstallation - Install GroupDocs.Watermark using NuGet Documentation - API Documentation Examples - Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum - Technical Support Forum for GroupDocs.Watermark Feedback As always, we would love to hear your queries and suggestions at our forum.\n","permalink":"https://blog.groupdocs.com/watermark/skip-unreadable-characters-during-watermark-search-using-groupdocs.watermark-for-.net-18.8/","summary":"We are delighted to announce the release of version 18.8 of GroupDocs.Watermark for .NET. The latest version allows skipping unreadable characters during text watermark search. Furthermore, we have also added a new feature to strengthen protection of text watermark in presentation documents. Please continue to read more about the new features, enhancements and bug fixes added in version 18.8.\nFeatures Introduced Skipping Unreadable Characters During Text Watermark Search This feature allows finding text watermark even if it contains unreadable characters between the letters.","title":"Skip Unreadable Characters During Watermark Search using GroupDocs.Watermark for .NET 18.8"},{"content":"\rGroupDocs team is releasing new features in the monthly release of GroupDocs.Assembly for .NET 18.7. Using the latest version, you can now insert hyperlinks dynamically in Word Processing, Spreadsheet, Presentation, and Email documents. We recommend to install and use the latest version of the API.\nHow to Insert Hyperlinks to Reports using Link Tag in C# Using GroupDocs.Assembly for .NET 18.7, you can now insert hyperlinks to your reports dynamically using link tags. The syntax of a link tag is defined as follows:\n\u0026lt;\u0026lt;link \\[uri\\_expression\\]\\[display\\_text\\_expression\\]\u0026gt;\u0026gt; Here, uri_expression defines URI for a hyperlink to be inserted dynamically. This expression is mandatory and must return a non-empty value. In turn, display_text_expression defines text to be displayed for the hyperlink. This expression is optional. If it is omitted or returns an empty value, then during runtime, the value of uri_expression is used as display text as well.\nFor more details regarding this feature, please have a look at Inserting Hyperlinks Dynamically.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly for .NET.\nInstallation - Install GroupDocs.Assembly using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Assembly Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Assembly Feedback As always, if you have some questions, queries or suggestions about GroupDocs.Assembly for .NET API, just share with us by creating a forum thread.\n","permalink":"https://blog.groupdocs.com/assembly/insert-hyperlinks-dynamically-in-csharp-using-groupdocs-assembly/","summary":"GroupDocs team is releasing new features in the monthly release of GroupDocs.Assembly for .NET 18.7. Using the latest version, you can now insert hyperlinks dynamically in Word Processing, Spreadsheet, Presentation, and Email documents. We recommend to install and use the latest version of the API.\nHow to Insert Hyperlinks to Reports using Link Tag in C# Using GroupDocs.Assembly for .NET 18.7, you can now insert hyperlinks to your reports dynamically using link tags.","title":"Insert Hyperlinks Dynamically in Documents using C#"},{"content":"\rWe are excitedly announcing the monthly release of GroupDocs.Assembly for Java 18.7. Using the latest version, you can now insert hyperlinks dynamically in Word Processing, Spreadsheet, Presentation and Email documents. Furthermore, a bug related to DocumentAssembler is now fixed. We recommend you to install the latest version of the API for a better user experience.\nFeatures Introduced Using GroupDocs.Assembly for Java 18.7, you can now insert hyperlinks to your reports dynamically using link tags. The syntax of a link tag is defined as follows:\n\u0026lt;\u0026lt;link [uri_expression][display_text_expression]\u0026gt;\u0026gt; Here, uri_expression defines URI for a hyperlink to be inserted dynamically. This expression is mandatory and must return a non-empty value. In turn, display_text_expression defines text to be displayed for the hyperlink. This expression is optional. If it is omitted or returns an empty value, then during runtime, the value of uri_expression is used as display text as well. For more details regarding this feature, please have a look at the following documentation articles:\nInserting Hyperlinks Dynamically in Word Processing Document Inserting Hyperlinks Dynamically in Presentation Document Inserting Hyperlinks Dynamically in Spreadsheet Document Inserting Hyperlinks Dynamically in Email Document Fixes The following bug is fixed in the latest version.\nDocumentAssembler.assembleDocument() throws java.lang.ExceptionInInitializerError for Email and Word Processing documents Available Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Assembly for Java:\nInstallation - Install GroupDocs.Assembly from Maven Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Assembly product family Feedback We always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Assembly for Java at our forum.\n","permalink":"https://blog.groupdocs.com/assembly/dynamic-insertion-of-hyperlinks-in-documents-using-groupdocs.assembly-for-java-18.7/","summary":"We are excitedly announcing the monthly release of GroupDocs.Assembly for Java 18.7. Using the latest version, you can now insert hyperlinks dynamically in Word Processing, Spreadsheet, Presentation and Email documents. Furthermore, a bug related to DocumentAssembler is now fixed. We recommend you to install the latest version of the API for a better user experience.\nFeatures Introduced Using GroupDocs.Assembly for Java 18.7, you can now insert hyperlinks to your reports dynamically using link tags.","title":"Dynamic Insertion of Hyperlinks in Documents using GroupDocs.Assembly for Java 18.7"},{"content":"\rWe have been improving our APIs to meet the requirements of our customers. Therefore, we are pleased to announce GroupDocs.Signature for Java 18.8. In previous version of the API, there was a issue in output PDF. But now this issue has been fixed in this hotfix, we would recommend you to download this new version of the API to enhance the document e-signing experience.\nBug Fixes The output PDF is incorrectly signed Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for Java:\nDownload – JAR Files Documentation – API Docs Product Support Forum – Technical Support Forum for GroupDocs.Signature Examples – GitHub source code examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/groupdocs.signature-for-java-18.8/","summary":"We have been improving our APIs to meet the requirements of our customers. Therefore, we are pleased to announce GroupDocs.Signature for Java 18.8. In previous version of the API, there was a issue in output PDF. But now this issue has been fixed in this hotfix, we would recommend you to download this new version of the API to enhance the document e-signing experience.\nBug Fixes The output PDF is incorrectly signed Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.","title":"Introducing Hotfix release of GroupDocs.Signature for Java 18.8"},{"content":"\rWe are pleased to announce GroupDocs.Merger for Java 18.8. A back-end document manipulation API that allows to split, remove or reorder pages in a document of supported format. Pages could be swapped or trimmed. You can also manage documents protection. GroupDocs.Merger for Java allows to check document protection and then set, remove or update password. Aside this, API permits to join two or more documents of same file format into one.\nPurpose Behind GroupDocs.Merger for Java API GroupDocs.Merger for Java is an organized API, using that you can manipulate a document programatically in different ways. For instance, see how simply you can trim a document:\nPagesOptions pagesOptions = new PagesOptions(FileFormat.PDF, password, pages); InputStream documentExample = new FileInputStream(sourceFile); // Main method. DocumentResult result = new DocumentHandler().trim(documentExample, pagesOptions); API is designed to facilitate users to move, remove and swap pages within a document using simplified calls.\nSupported Features and Formats GroupDocs.Merger for Java supports a lot of document formats and many document manipulation features.\nSupported Document Formats Word PDF Cell Slide In order to see file format extensions please visit this article.\nFeatures offered by GroupDocs.Merger for Java Combine and merge multiple files into one document Split document to multiple files Arrange documents in any order Check document protection Remove pages from document See all API features here.\nAvailable Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Merger:\nDownload - GroupDocs.Merger for Java Download Documentation - API Documentation API Reference - GroupDocs.Merger for Java API Reference Examples- Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Merger queries Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/merger/first-public-release-of-groupdocs.merger-for-java-reorder-or-split-document-pages/","summary":"We are pleased to announce GroupDocs.Merger for Java 18.8. A back-end document manipulation API that allows to split, remove or reorder pages in a document of supported format. Pages could be swapped or trimmed. You can also manage documents protection. GroupDocs.Merger for Java allows to check document protection and then set, remove or update password. Aside this, API permits to join two or more documents of same file format into one.","title":"First Public Release of GroupDocs.Merger for Java - Reorder or Split Document Pages"},{"content":"\rGroupDocs.Conversion for .NET 18.8 comes with some new features, improvements and a bug fix. PdfFormattingOptions class is introduced when converting to PDF format. Some of the obsolete constructors and properties are removed. Moreover, there\u0026rsquo;s also a security improvement. Please refer to GroupDocs.Conversion for .NET 18.8 release notes for further reference. We\u0026rsquo;d recommend you to integrate latest version of the API in your applications and share your feedback.\nFeatures PdfFormattingOptions when converting to PDF var saveOptions = new PdfSaveOptions(); saveOptions.PdfOptions.FormatingOptions.PageMode = PdfFormatingOptions.PdfPageMode.FullScreen; saveOptions.PdfOptions.FormatingOptions.PageLayout = PdfFormatingOptions.PdfPageLayout.SinglePage; Implement specific options for converting TXT documents var loadOptions = new TxtLoadOptions { DetectNumberingWithWhitespaces = false, LeadingSpacesOptions = TxtLoadOptions.TxtLeadingSpacesOptions.Trim, TrailingSpacesOptions = TxtLoadOptions.TxtTrailingSpacesOptions.Trim }; Improvements Automatically add extension of the converted file if not set Remove obsolete constructors and properties Image to PDF conversion improvement Improve per page savings when converting to Words, Images, Slides, Cells, Pdf, Xps, Html Security improvements update Bug Fixes Exception when cache is enabled API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nNuGet - Nuget install Documentation - Product Wiki Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/pdf-conversion-is-improved-in-groupdocs.conversion-for-.net-18.8/","summary":"GroupDocs.Conversion for .NET 18.8 comes with some new features, improvements and a bug fix. PdfFormattingOptions class is introduced when converting to PDF format. Some of the obsolete constructors and properties are removed. Moreover, there\u0026rsquo;s also a security improvement. Please refer to GroupDocs.Conversion for .NET 18.8 release notes for further reference. We\u0026rsquo;d recommend you to integrate latest version of the API in your applications and share your feedback.\nFeatures PdfFormattingOptions when converting to PDF var saveOptions = new PdfSaveOptions(); saveOptions.","title":"PDF Conversion is Improved in GroupDocs.Conversion for .NET 18.8"},{"content":"\rToday, we are glad to announce the release of GroupDocs.Viewer for .NET 18.8. In this version, we have introduced the feature of rendering a part of MS Project document specifying the start date and end date. We have also made it possible to set ForcePasswordValidation property of the ViewerConfig using the configuration files such as app.config and web.config. Furthermore, the latest version also includes 14 improvements and bug fixes. Below is the list of new features, improvements, and fixes added in v18.8.\nFeatures Introduced Rendering a Part of MS Project Document You can now render a part of MS Project document according to specified StartDate and EndDate properties of ProjectOptions class as shown in the below code snippet. When only one of these properties is set, rendering starts from the project\u0026rsquo;s start date or ends on the project\u0026rsquo;s end date correspondingly.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.StoragePath = @\u0026#34;C:\\storage\u0026#34;; // Create image handler ViewerImageHandler imageHandler = new ViewerImageHandler(config); string guid = \u0026#34;document.mpp\u0026#34;; // Set Project options to render tasks from year 2018 only ImageOptions options = new ImageOptions(); options.ProjectOptions.StartDate = new DateTime(2018, 01, 01); options.ProjectOptions.EndDate = new DateTime(2018, 12, 31); // Get pages List pages = imageHandler.GetPages(guid, options); foreach (PageImage page in pages) { Console.WriteLine(\u0026#34;Page number: {0}\u0026#34;, page.PageNumber); Stream imageContent = page.Stream; } For more details on this feature, please visit this documentation article.\nImprovements We have included following improvements in the latest version:\nSecurity improvements Rendering comments from Presentation documents into images when ExtractText option is enabled Retrieving list of resources only when loading page from cache Reduced count of calls to storage methods Extended support for DefaultFontName option for MS Project documents rendering to image and HTML Added ForcePasswordValidation configuration via configs Extended support for rendering comments from ODP document format Bug Fixes Following issues are fixed in version 18.8 of GroupDocs.Viewer for .NET.\nDeadlock when rendering documents in multiple processes An exception raises while retrieving HTML pages from the source document Relative and absolute resource paths in the same HTML page Exception when the file name contains curly braces Legend is shifted and incorrect formatting when rendering PPTX as HTML Incorrect font when rendering PPTX as HTML Incorrect character position in HTML mode in Safari for iOS Related Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer.\nInstallation - Install GroupDocs.Viewer using NuGet Documentation - Product Docs Video Tutorials - YouTube Videos Examples / Plugins - GitHub Source Code Examples Sample Front End Apps - Open Source Document Viewer Applications Technical Support Forum - Technical Support Forum for GroupDocs.Viewer Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/render-a-part-of-ms-project-document-using-groupdocs.viewer-for-.net-18.8/","summary":"Today, we are glad to announce the release of GroupDocs.Viewer for .NET 18.8. In this version, we have introduced the feature of rendering a part of MS Project document specifying the start date and end date. We have also made it possible to set ForcePasswordValidation property of the ViewerConfig using the configuration files such as app.config and web.config. Furthermore, the latest version also includes 14 improvements and bug fixes. Below is the list of new features, improvements, and fixes added in v18.","title":"Render a Part of MS Project Document using GroupDocs.Viewer for .NET 18.8"},{"content":"\rAt GroupDocs, we are always been improving our APIs to meet the requirements of our customers. Therefore, we are pleased to announce GroupDocs.Signature for .NET 18.7.1. This hotfix comes with a security improvement, therefore, we recommend you to download this latest release for a better document e-signing experience.\nImprovements Security improvements update You can visit the complete release notes here.\nAvailable Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for .NET:\nNuGet - Nuget install Documentation - Product Docs API References – Signature API References Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/groupdocs-signature-improved-security-with-hotfix/","summary":"At GroupDocs, we are always been improving our APIs to meet the requirements of our customers. Therefore, we are pleased to announce GroupDocs.Signature for .NET 18.7.1. This hotfix comes with a security improvement, therefore, we recommend you to download this latest release for a better document e-signing experience.\nImprovements Security improvements update You can visit the complete release notes here.\nAvailable Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.","title":"Hotfix to Improve Security in GroupDocs.Signature for .NET 18.7"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Signature for .NET 18.7 with multitude new features like ability for cancellation of signing process and additional search criteria for Digital Signatures of Words and Cells documents. Furthermore, this monthly release also covers some improvements and fixes, we therefore, recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\nFeatures Additional Search CriteriaNow users of this API can search Digital Signatures in Cells and Words documents with additional search criteria Following example demonstrates how to search Digital Signatures in Words document: // setup options with text of signature WordsSearchDigitalOptions searchOptions = new WordsSearchDigitalOptions(); // setup additional search criteria searchOptions.Comments = \u0026#34;test comments\u0026#34;; searchOptions.SignDateTimeFrom = new DateTime(DateTime.Now.Year, 1, 1); searchOptions.IssuerName = \u0026#34;John\u0026#34;; // Search Document for Signatures SearchResult searchResult = handler.Search(fileName, searchOptions); Support of Measure Type Units for Cells PositioningUsers can set position of Signatures in Cells with some predefined measure units for following signature types: Text Signatures Image Signatures Digital Signatures QR-Code Signatures Barcode Signatures Stamp Signatures Following example demonstrates using Measure Type properties to set a position of QR-Code Signatures in Cells document:\nCellsQRCodeSignOptions signOptions = new CellsQRCodeSignOptions(\u0026#34;12345678AbcdefghKLMNOPqrst\u0026#34;); // size signOptions.SizeMeasureType = MeasureType.Percents; signOptions.Width = 10; signOptions.Height = 10; // position // alignment signOptions.HorizontalAlignment = HorizontalAlignment.Center; signOptions.VerticalAlignment = VerticalAlignment.Top; // margin signOptions.MarginMeasureType = MeasureType.Percents; signOptions.Margin.Top = 25; Ability for CancellationNow API provides ability for cancellation of following processes: Search Verification Signing Following example demonstrates how to cancel signing process:\n// setup signature option PdfSignTextOptions signOptions = new PdfSignTextOptions(\u0026#34;John Smith\u0026#34;, 10, 10, 100, 100); signOptions.SignAllPages = true; SaveOptions saveOptions = new SaveOptions { OutputType = OutputType.String, OutputFileName = \u0026#34;PDF_Process_Events\u0026#34; }; handler.SignatureStarted += delegate (object sender, ProcessStartEventArgs args) { Console.WriteLine(\u0026#34;Processing of {0} signatures for {1} started at {2}\u0026#34;, args.TotalSignatures, args.Guid, args.Started.ToString(\u0026#34;f\u0026#34;)); }; handler.SignatureProgress += delegate (object sender, ProcessProgressEventArgs args) { Console.WriteLine(\u0026#34;Singing of {0} progress: {1} %. Processed {2} signatures.\u0026#34;, args.Guid, args.Progress, args.ProcessedSignatures); if (args.Progress \u0026gt; 10) { args.Cancel = true; Console.WriteLine(\u0026#34;Cancellation of process\u0026#34;); } }; handler.SignatureCompleted += delegate (object sender, ProcessCompleteEventArgs args) { if (args.Canceled) { Console.WriteLine(\u0026#34;Singing process was canceled\u0026#34;); } else { Console.WriteLine(\u0026#34;Singing of {0} completed at {1}. Processing of {2}\u0026#34;, args.Guid, args.Completed.ToString(\u0026#34;f\u0026#34;), args.TotalSignatures); } }; Improvements Global Exception handler to catch all unhandled exceptions Support of several Words Digital Search Options and Cells Digital Search Options Bug Fixes Wrong border appearance for PDF Text as Image signatures QR-Code positioning when Signature area is more than generated QR-Code Freezing of signature process on Images for QR-Code Signature Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for .NET:\nNuGet - Nuget install Documentation - Product Docs API References – Signature API References Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/groupdocs.signature-for-.net-18.7/","summary":"We are pleased to announce another monthly release of GroupDocs.Signature for .NET 18.7 with multitude new features like ability for cancellation of signing process and additional search criteria for Digital Signatures of Words and Cells documents. Furthermore, this monthly release also covers some improvements and fixes, we therefore, recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\nFeatures Additional Search CriteriaNow users of this API can search Digital Signatures in Cells and Words documents with additional search criteria Following example demonstrates how to search Digital Signatures in Words document: // setup options with text of signature WordsSearchDigitalOptions searchOptions = new WordsSearchDigitalOptions(); // setup additional search criteria searchOptions.","title":"Set Signature Position in Cells Document using GroupDocs.Signature for .NET 18.7"},{"content":"\rWe have been improving our APIs to meet the requirements of our customers. Therefore, we are pleased to announce GroupDocs.Annotation for .NET 18.7.1. This hotfix comes with a security improvement. We therefore recommend you to download this latest release for a better API experience.\nImprovements Security improvements update Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation:\nNuget Package - Download Documentation - Product Docs Examples - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/hotfix-that-improves-security-in-groupdocs.annotation-for-.net-18.7.1/","summary":"We have been improving our APIs to meet the requirements of our customers. Therefore, we are pleased to announce GroupDocs.Annotation for .NET 18.7.1. This hotfix comes with a security improvement. We therefore recommend you to download this latest release for a better API experience.\nImprovements Security improvements update Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Hotfix that improves security in GroupDocs.Annotation for .NET 18.7.1"},{"content":"\rThis hotfix of GroupDocs.Comparison for .NET 18.7.1 comes with a security improvement. We\u0026rsquo;d recommend you to try latest version of the API and enhance your document comparison experience.\nImprovements Security improvements update Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nNuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/announcing-hotfix-release-of-groupdocs.comparison-for-.net-18.7.1/","summary":"This hotfix of GroupDocs.Comparison for .NET 18.7.1 comes with a security improvement. We\u0026rsquo;d recommend you to try latest version of the API and enhance your document comparison experience.\nImprovements Security improvements update Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nNuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases .","title":"Announcing Hotfix release of GroupDocs.Comparison for .NET 18.7.1"},{"content":"\rWe are about to release GroupDocs.Merger for Java 18.8, a full featured, back-end API that could easily be utilized by Java developers in their projects. It will allow trimming and swapping of pages. Document protection will be managed by GroupDocs.Merger for Java. Moreover, API will allow to merge two documents of same format into a single document.\nFeatures Offered by GroupDocs.Merger for JavaGroupDocs will keep on updating this API with new features. An initial list of features offered by the API will be: Move/reorder pages Remove and swap document pages Trim and split document Document protection management Join Document First Version AvailabilityWe are finalizing the first release of GroupDocs.Merger for Java and hope that you will be able to avail it very soon. Please stay tuned for further updates. We would be happy to hear your queries or suggestions at GroupDocs.Merger forum. ","permalink":"https://blog.groupdocs.com/merger/upcoming-release-of-groupdocs.merger-for-java-18.7/","summary":"We are about to release GroupDocs.Merger for Java 18.8, a full featured, back-end API that could easily be utilized by Java developers in their projects. It will allow trimming and swapping of pages. Document protection will be managed by GroupDocs.Merger for Java. Moreover, API will allow to merge two documents of same format into a single document.\nFeatures Offered by GroupDocs.Merger for JavaGroupDocs will keep on updating this API with new features.","title":"Upcoming Release of GroupDocs.Merger for Java 18.8"},{"content":"\rShare this issue:\nMonthly NewsletterAugust 2018 Text and Metadata Extraction APIs for Java Applications Accurately Parse MS Office, Emails, Zip and Legal Documents\nGroupDocs.Parser is a Java document parsing and text extraction API for analyzing documents thus allowing users to extract metadata, raw and formatted text from the supported document formats (Word, Excel, PowerPoint, PDF, OneNote, Visio, Text, HTML, Zip, Markdown and Email messages). The API performs content parsing operations with highest level of accuracy and speed.\nAlso available for: .NET\nProduct News\nAdd Watermark Annotation to Microsoft Excel and Word in .NET GroupDocs.Annotation for .NET now adds new types of annotations for Microsoft Excel spreadsheets like Text Replacement, Resource Redaction and Watermark. You can also add watermark annotation to Word documents. Read more details here.\nSubstitute Specific Fonts when Converting between .NET Office Documents GroupDocs.Conversion for .NET supports explicit font substitution when converting from Microsoft Word, Excel and Presentation documents. For converting Email specific options – EmailOptions can be defined in any SaveOptions class such as PdfSaveOptions or CellsSaveOptions. Read more details here.\nDynamically Change the Color of Chart and Point Series While Generating Documents GroupDocs.Assembly now supports using null-conditional operators ?. and ?[]. You can also change the color of chart series and individual point series dynamically for email messages with HTML and RTF bodies within .NET and Java applications. For a chart with dynamic data, you can set colors of chart as well as point series dynamically based upon expressions.\nMerge between different Diagram File Formats in .NET GroupDocs.Merger for .NET API allows merging multiple files into one document. The latest version supports new diagramming formats (VSDX, VSDM, VSSX, VSSM, VTX, VSTM, VDX, VSTX, VSX) for multiple methods such as Join, MovePage or RemovePage. Read more details here.\nFrom the Library\nCode Example: Render ISFF-based DGN Files in .NET Applications GroupDocs.Viewer for .NET has extended the list of supported file formats by adding the support of ISFF-based DGN (V7) file format. Using GroupDocs.Viewer allows viewing multi format documents in HTML, image, PDF or in original format within C#, WPF and ASP.NET applications. Read more details here.\nCode Example: Update and Remove IPTC Metadata in PSD File GroupDocs.Metadata allows manipulating all popular formats meta information. The latest version now supports updating and removing IPTC metadata in PSD file format within .NET and Java applications. Moreover, the memory consumption is now reduced to perform metadata operations for PSD and MP3 file format.\nCode Example: Manually Break Indexing Operations within Large Documents in .NET GroupDocs.Search for .NET allows adding advance level of indexing and searching capabilities to retrieve full text and metadata from business document formats. Using GroupDocs.Search API you can break indexing operation manually. The break is not instantaneous and in cases of indexing large documents, the breaking can take about a second. Read more details here.\nCode Example: Sign Documents with Stamp Signatures GroupDocs.Signature for Java API now supports signing documents with stamp signatures either in a round or a square shape within all types of Java applications. This version allows working with new PowerPoint formats (OTP, POTX, POTM, PPSM) and enable users to add and search custom object to QR-Code signatures. Read more details here.\nCode Example: Extract Text Areas from Document Pages for Text Analysis GroupDocs.Parser is a .NET API for text extraction for analyzing documents. The latest version supports extracting text areas from document pages that can be helpful for getting data for text analysis. To extract text areas, text extractors implement their own internal private class and provide DocumentContent property. Read more details here.\nCode Example: Locking Watermark and Protecting or Unprotecting Word Documents GroupDocs.Watermark now supports locking the watermarks in a Word document to restrict editing and provides 5 variants of locking Word document within .NET and Java applications. It also provides a simplified way to protect or unprotect Word documents with the password.\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite. GroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite. GroupDocs.Conversion for Java 18.6.1 – Hide mail header when converting MSG to PDF. GroupDocs.Comparison for .NET 18.7 – Implement group shapes and GluedShaped in diagrams along with comparing different formats as image. Check out for more releases during last month\n","permalink":"https://blog.groupdocs.com/total/groupdocs-newsletter-august-2018-.net-and-java-documents-manipulation-apis/","summary":"Share this issue:\nMonthly NewsletterAugust 2018 Text and Metadata Extraction APIs for Java Applications Accurately Parse MS Office, Emails, Zip and Legal Documents\nGroupDocs.Parser is a Java document parsing and text extraction API for analyzing documents thus allowing users to extract metadata, raw and formatted text from the supported document formats (Word, Excel, PowerPoint, PDF, OneNote, Visio, Text, HTML, Zip, Markdown and Email messages). The API performs content parsing operations with highest level of accuracy and speed.","title":"GroupDocs Newsletter August 2018 – .NET and Java Documents Manipulation APIs"},{"content":"\rGroupDocs.Conversion for Java 18.7 covers a new feature and a bug fix. MSG to PDF conversion issue is now resolved. Please take a look over the release notes to get an idea about the changes introduced.\nMailOption to control conversions from emailA new class EmailOptions is implemented in SaveOptions. Using that email options can be managed. PdfSaveOptions options = new PdfSaveOptions(); EmailOptions emailOptions = options.getEmailOptions(); emailOptions.setDisplayHeader(true); emailOptions.setDisplayEmailAddress(true); emailOptions.setDisplayFromEmailAddress(true); emailOptions.setDisplayToEmailAddress(true); emailOptions.setDisplayCcEmailAddress(true); emailOptions.setDisplayBccEmailAddress(true); Bug Fixes MSG to PDF conversion displays incorrect time in the header Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion: API Home - GroupDocs.Conversion for Java Download - GroupDocs.Conversion for Java Download Documentation - Product Documentation Examples/Plugins/Showcases - GitHub source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion ","permalink":"https://blog.groupdocs.com/conversion/emailoptions-class-is-introduced-in-groupdocs.conversion-for-java-18.7/","summary":"GroupDocs.Conversion for Java 18.7 covers a new feature and a bug fix. MSG to PDF conversion issue is now resolved. Please take a look over the release notes to get an idea about the changes introduced.\nMailOption to control conversions from emailA new class EmailOptions is implemented in SaveOptions. Using that email options can be managed. PdfSaveOptions options = new PdfSaveOptions(); EmailOptions emailOptions = options.getEmailOptions(); emailOptions.setDisplayHeader(true); emailOptions.setDisplayEmailAddress(true); emailOptions.setDisplayFromEmailAddress(true); emailOptions.setDisplayToEmailAddress(true); emailOptions.","title":"EmailOptions Class is Introduced in GroupDocs.Conversion for Java 18.7"},{"content":"\rWe are proudly announcing the monthly release of GroupDocs.Search for .NET 18.7. Using the latest version, you can search for morphological word forms. Furthermore, you can now break updating, merging and indexing operations manually. We would recommend you to install and use the latest version of API.\nEnhancements Following are the enhancements introduced in the latest version:\nSearch for Morphological Word Forms The latest version of API allows you to search for singular and plural forms of a noun at the same time. You can also search for all existing forms of a verb at the same time: root, third-person singular, present participle, simple past, and past participle. Following code snippet shows how to search for morphological word forms:\nstring folderForIndex = \u0026#34;c:\\\\MyIndex\\\\\u0026#34;; string folderWithDocuments = \u0026#34;c:\\\\MyDocuments\\\\\u0026#34;; Index index = new Index(folderForIndex); index.AddToIndex(folderWithDocuments); SearchParameters parameters = new SearchParameters(); parameters.UseWordFormsSearch = true; //Searching for words \u0026#34;simplest\u0026#34;, \u0026#34;simple\u0026#34;, and \u0026#34;simpler\u0026#34; SearchResults results1 = index.Search(\u0026#34;simplest\u0026#34;, parameters); For more details on this feature, please visit this documentation article.\nBreak Updating Operation Manually Using v18.7, you can cancel the updating operation by request and for time limitation of indexing. Following code snippets show how to break updating operation:\nBreak Updating Operation string indexFolder = @\u0026#34;c:\\MyIndex\u0026#34;; Index index = new Index(indexFolder); index.UpdateAsync(); index.Break(); Break Updating Operation using Cancellation Object string indexFolder = @\u0026#34;c:\\MyIndex\u0026#34;; Cancellation cancellation = new Cancellation(); Index index = new Index(indexFolder); index.UpdateAsync(cancellation); cancellation.Cancel(); For more details on this feature, please visit this documentation article.\nBreak Merging Operation Manually Using the latest version, you can cancel the merging operation by request. Following code snippet shows how to break merging operation:\nstring indexFolder = @\u0026#34;c:\\MyIndex\u0026#34;; string documentsFolder = @\u0026#34;c:\\MyDocuments\u0026#34;; Cancellation cancellation = new Cancellation(); cancellation.CancelAfter(5000); Index index = new Index(indexFolder); index.Merge(cancellation); For more details on this feature, please visit this documentation article.\nBreak Indexing Operation using Cancellation Object The latest version also allows you to cancel the indexing operation by request and for time limitation of indexing. Following code snippet shows how to break indexing operation:\nstring indexFolder = @\u0026#34;c:\\MyIndex\u0026#34;; string documentsFolder = @\u0026#34;c:\\MyDocuments\u0026#34;; Cancellation cancellation = new Cancellation(); Index index = new Index(indexFolder); index.AddToIndexAsync(documentsFolder, cancellation); Thread.Sleep(1000); cancellation.Cancel(); For more details on this feature, please visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search:\nInstallation - Install GroupDocs.Search using NuGet Documentation - Product docs Examples/Plugins/Showcases - Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to the GroupDocs.Search for .NET API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/search-for-morphological-word-forms-using-groupdocs.search-for-.net-18.7/","summary":"We are proudly announcing the monthly release of GroupDocs.Search for .NET 18.7. Using the latest version, you can search for morphological word forms. Furthermore, you can now break updating, merging and indexing operations manually. We would recommend you to install and use the latest version of API.\nEnhancements Following are the enhancements introduced in the latest version:\nSearch for Morphological Word Forms The latest version of API allows you to search for singular and plural forms of a noun at the same time.","title":"Search for Morphological Word Forms using GroupDocs.Search for .NET 18.7"},{"content":"\rGroupDocs.Comparison for Java 18.6.1 comes with few bug fixes. Style changes can be highlighted in comparison outputs. For further details included in this month’s release, please visit the release notes. We\u0026rsquo;d recommend you to Download the new release and enhance your document comparison experience.\nBug Fixes For RTF comparison, API detects style changes but does not highlight them like it does with DOCX Style Changes Not Highlighted PDF comparison gives a scrambled report API ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison: Product Home – GroupDocs.Comparison for Java Documentation – Product Documentations Examples/Plugins/Showcases – Github source code examples Product Support Forum – Technical Support Forum for GroupDocs.Comparison FeedbackWe always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/rtf-comparison-issues-are-resolved-in-groupdocs.comparison-for-java-18.6.1/","summary":"GroupDocs.Comparison for Java 18.6.1 comes with few bug fixes. Style changes can be highlighted in comparison outputs. For further details included in this month’s release, please visit the release notes. We\u0026rsquo;d recommend you to Download the new release and enhance your document comparison experience.\nBug Fixes For RTF comparison, API detects style changes but does not highlight them like it does with DOCX Style Changes Not Highlighted PDF comparison gives a scrambled report API ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"RTF Comparison Issues are Resolved in GroupDocs.Comparison for Java 18.6.1"},{"content":"\rGroupDocs.Comparison for .NET 18.7 comes with some new features, improvements and a bug fix. Now you can implement GluedShapes in diagrams. Please follow the release notes here for further details. We\u0026rsquo;d recommend you to try latest version of the API and share your feedback.\nFeatures Implement Group Shapes for Diagrams Compare different formats as image GluedShapes in Diagram Improvements Improve StyleSheet Comparer for Html Add shape without Diagram\u0026rsquo;s Master Bug Fix Output of PDF with images is not as expected Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nNuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/stylesheet-comparer-for-html-is-improved-in-groupdocs.comparison-for-.net-18.7/","summary":"GroupDocs.Comparison for .NET 18.7 comes with some new features, improvements and a bug fix. Now you can implement GluedShapes in diagrams. Please follow the release notes here for further details. We\u0026rsquo;d recommend you to try latest version of the API and share your feedback.\nFeatures Implement Group Shapes for Diagrams Compare different formats as image GluedShapes in Diagram Improvements Improve StyleSheet Comparer for Html Add shape without Diagram\u0026rsquo;s Master Bug Fix Output of PDF with images is not as expected Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"StyleSheet Comparer for Html is Improved in GroupDocs.Comparison for .NET 18.7"},{"content":"\rAt GroupDocs, we keep on updating our products for better user experience. In this regard, we are excitedly announcing another monthly release of GroupDocs.Annotation for .NET 18.7. This latest release added new types of annotations for Cells like Text Replacement, Resource Redaction and Watermark. Apart from that, few improvements and fixes are also introduced in this release. We therefore recommend you to download this latest release of the API to enhance your document annotation experience.\nFeatures Added following new types of annotations for Cells:\nText Replacement\nText Annotations\nWatermark\nResource Redaction\nWatermark Annotations for Words\nAdd cleanup for Text Replacement in Words\nImprovements Text Annotations in Slides Shape processing in Diagrams for Text Annotations Bug Fixes Fixed SvgPath parsing Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation:\nNuget Package - Download Documentation - Product Docs Examples - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/groupdocs.annotation-for-.net-18.7/","summary":"At GroupDocs, we keep on updating our products for better user experience. In this regard, we are excitedly announcing another monthly release of GroupDocs.Annotation for .NET 18.7. This latest release added new types of annotations for Cells like Text Replacement, Resource Redaction and Watermark. Apart from that, few improvements and fixes are also introduced in this release. We therefore recommend you to download this latest release of the API to enhance your document annotation experience.","title":"Introducing Watermark Annotation for Cells in GroupDocs.Annotation for .NET 18.7"},{"content":"\rGroupDocs team is introducing new features and enhancements in the monthly releaseof GroupDocs.Metadata for Java 18.7. The latest version allows you to update and remove IPTC metadata in PSD file format. Furthermore, memory consumption is now reduced to perform metadata operations for PSD and MP3 file formats. We recommend you to install the latest version of API for a better experience.\nFeatures IntroducedFollowing are the new features introduced in version 18.7. Update IPTC Metadata in PSD Format Remove IPTC Metadata in PSD Format For details about the features supported by the API, please visit Features Overview.\nEnhancementsFollowing are the enhancements introduced in version 18.7. Reduce memory consumption for PSD format\u0026rsquo;s loading and saving Reduce memory consumption for MP3 format\u0026rsquo;s loading and saving Available Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Metadata for Java: Installation - Install GroupDocs.Metadata from Maven Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Metadata product family FeedbackWe always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Metadata for Java at our forum. ","permalink":"https://blog.groupdocs.com/metadata/remove-iptc-metadata-in-psd-format-using-groupdocs.metadata-for-java-18.7/","summary":"GroupDocs team is introducing new features and enhancements in the monthly releaseof GroupDocs.Metadata for Java 18.7. The latest version allows you to update and remove IPTC metadata in PSD file format. Furthermore, memory consumption is now reduced to perform metadata operations for PSD and MP3 file formats. We recommend you to install the latest version of API for a better experience.\nFeatures IntroducedFollowing are the new features introduced in version 18.","title":"Remove IPTC Metadata in PSD Format using GroupDocs.Metadata for Java 18.7"},{"content":"\rGroupDocs team is proudly announcing the monthly release of GroupDocs.Metadata for .NET 18.7. Using the latest version, you can now update and remove IPTC metadata in PSD file format. Furthermore, memory consumption is now reduced to perform metadata operations for PSD and MP3 file format. We recommend you to install and use the latest version of the API.\nFeatures IntroducedFollowing are the new features introduced in version 18.7. Update IPTC Metadata in PSD Format Remove IPTC Metadata in PSD Format For details about the features supported by the API, please visit Features Overview.\nEnhancementsFollowing are the enhancements introduced in version 18.7. Reduce memory consumption for PSD format\u0026rsquo;s loading and saving Reduce memory consumption for MP3 format\u0026rsquo;s loading and saving Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Installation - Install GroupDocs.Metadata using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/update-iptc-metadata-in-psd-file-using-groupdocs.metadata-for-.net-18.7/","summary":"GroupDocs team is proudly announcing the monthly release of GroupDocs.Metadata for .NET 18.7. Using the latest version, you can now update and remove IPTC metadata in PSD file format. Furthermore, memory consumption is now reduced to perform metadata operations for PSD and MP3 file format. We recommend you to install and use the latest version of the API.\nFeatures IntroducedFollowing are the new features introduced in version 18.7. Update IPTC Metadata in PSD Format Remove IPTC Metadata in PSD Format For details about the features supported by the API, please visit Features Overview.","title":"Update IPTC Metadata in PSD File using GroupDocs.Metadata for .NET 18.7"},{"content":"\rGroupDocs team is proudly announcing two new features and three enhancements in the monthly release of GroupDocs.Assembly for .NET 18.6. Using the latest version, you can now use C# 6.0 null-conditional operators **?. **and ?[]. Change the color of chart series and individual point series dynamically for Email Messages with HTML and RTF bodies. Furthermore, to enhance the API, colors are preserved for a pie chart in the Word Processing document, fonts are preserved for a chart title, and static colors are preserved for chart series in the Email document. We recommend you to install and use the latest version of the API.\nFeatures IntroducedFollowing new features are introduced in version 18.6 of the API. Chart Series Coloring in Email Document Individual Point Series Coloring in Email Document Support C# 6.0 null-conditional ?. and ?[] operators in template expressions Dynamic Coloring of Chart SeriesFor a chart with dynamic data, you can set colors of chart series dynamically based upon expressions. To use the feature, do the following steps: Declare a chart with dynamic data in the usual way For chart series to be colored dynamically, define corresponding color expressions in names of these series using seriesColor tags having the following syntax: \u0026lt;\u0026lt;seriesColor[color_expression]\u0026gt;\u0026gt;\nDynamic Coloring of Individual Series PointFor a chart with dynamic data, you can set colors of individual chart series points dynamically based upon expressions. To use the feature, do the following steps: Declare a chart with dynamic data in the usual way For chart series with points to be colored dynamically, define corresponding color expressions in names of these series using pointColor tags having the following syntax: \u0026lt;\u0026lt;pointColor[color_expression]\u0026gt;\u0026gt;\nEnhancementsFollowing enhancements are introduced in version 18.6 of the API. Preserve the color of an of pie chart split slice when using dynamic chart series coloring for Word Processing documents Preserve the font of a chart title while changing its text dynamically in emails Preserve the static color of a chart series when dynamically filling it with data in emails Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly for .NET. Installation - Install GroupDocs.Assembly using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Assembly Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Assembly FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Assembly for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/assembly/color-chart-series-dynamically-in-email-messages-using-groupdocs.assembly-for-.net-18.6/","summary":"GroupDocs team is proudly announcing two new features and three enhancements in the monthly release of GroupDocs.Assembly for .NET 18.6. Using the latest version, you can now use C# 6.0 null-conditional operators **?. **and ?[]. Change the color of chart series and individual point series dynamically for Email Messages with HTML and RTF bodies. Furthermore, to enhance the API, colors are preserved for a pie chart in the Word Processing document, fonts are preserved for a chart title, and static colors are preserved for chart series in the Email document.","title":"Color Chart Series Dynamically in Email Messages using GroupDocs.Assembly for .NET 18.6"},{"content":"\rWe are excitedly announcing the monthly release of GroupDocs.Assembly for Java 18.6. Using the latest version, you can now use null-conditional operators **?. **and ?[]. Change the color of chart series and individual point series dynamically for Email Messages with HTML and RTF bodies. Furthermore, to enhance the API, colors are preserved for a pie chart in the Word Processing document, fonts are preserved for a chart title, and static colors are preserved for chart series in the Email document. We recommend you to install the latest version of API for a better experience.\nFeatures IntroducedFollowing new features are introduced in version 18.6 of the API. Chart Series Coloring in Email Document Individual Point Series Coloring in Email Document Support null-conditional ?. and ?[] operators in template expressions Dynamic Coloring of Chart SeriesFor a chart with dynamic data, you can set colors of chart series dynamically based upon expressions. To use the feature, do the following steps: Declare a chart with dynamic data in the usual way For chart series to be colored dynamically, define corresponding color expressions in names of these series using seriesColor tags having the following syntax: \u0026lt;\u0026lt;seriesColor[color_expression]\u0026gt;\u0026gt;\nDynamic Coloring of Individual Series PointFor a chart with dynamic data, you can set colors of individual chart series points dynamically based upon expressions. To use the feature, do the following steps: Declare a chart with dynamic data in the usual way For chart series with points to be colored dynamically, define corresponding color expressions in names of these series using pointColor tags having the following syntax: \u0026lt;\u0026lt;pointColor[color_expression]\u0026gt;\u0026gt;\nEnhancementsFollowing enhancements are introduced in version 18.6 of the API. Preserve the color of an of pie chart split slice when using dynamic chart series coloring for Word Processing documents Preserve the font of a chart title while changing its text dynamically in emails Preserve the static color of a chart series when dynamically filling it with data in emails Available Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Assembly for Java: Installation - Install GroupDocs.Assembly from Maven Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Assembly product family FeedbackWe always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Assembly for Java at our forum. ","permalink":"https://blog.groupdocs.com/assembly/support-for-null-conditional-operators-in-groupdocs.assembly-for-java-18.6/","summary":"We are excitedly announcing the monthly release of GroupDocs.Assembly for Java 18.6. Using the latest version, you can now use null-conditional operators **?. **and ?[]. Change the color of chart series and individual point series dynamically for Email Messages with HTML and RTF bodies. Furthermore, to enhance the API, colors are preserved for a pie chart in the Word Processing document, fonts are preserved for a chart title, and static colors are preserved for chart series in the Email document.","title":"Support for Null-Conditional Operators in GroupDocs.Assembly for Java 18.6"},{"content":"\rWe are delighted to announce that GroupDocs.Viewer for .NET 18.7 has been released and it is available for download. The latest version supports rendering of ISFF-based DGN (V7) file format. Furthermore, we have added 4 improvements as well as 4 critical bug fixes in this release. For details about the changes in version 18.7, please have a look at the release notes. Below is the list of new features, improvements, and fixes added in v18.7.\nFeatures IntroducedWe have extended our list of supported file formats by adding the support of ISFF-based DGN (V7) file format. For more details on the supported file formats, please visit this documentation article. ImprovementsWe keep looking for the ways to improve the API to provide the best experience to our users. Therefore, we have included following improvements in the latest version: Extend DefaultFontName setting support for ODG, SVG and MetaFile Images Improve output content for printable HTML Support empty string for ViewerConfig.PageNamePrefix property Improve compression for rendering into HTML with EnableMinification setting Bug FixesFollowing issues are fixed in version 18.7 of GroupDocs.Viewer for .NET. DOCX to HTML pages - all HTML pages use CSS class names from first page API generates 5 pages with repeated content when rendering single page email message Invalid styles when rendering presentation documents into HTML Issues when printing printable Html or saving it as PDF Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer. Installation - Install GroupDocs.Viewer using NuGet Documentation - Product Docs Video Tutorials - YouTube Videos Examples / Plugins - GitHub Source Code Examples Sample Front End Apps - Open Source Document Viewer Applications Technical Support Forum - Technical Support Forum for GroupDocs.Viewer FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/render-isff-based-dgn-file-format-using-groupdocs.viewer-for-.net-18.7/","summary":"We are delighted to announce that GroupDocs.Viewer for .NET 18.7 has been released and it is available for download. The latest version supports rendering of ISFF-based DGN (V7) file format. Furthermore, we have added 4 improvements as well as 4 critical bug fixes in this release. For details about the changes in version 18.7, please have a look at the release notes. Below is the list of new features, improvements, and fixes added in v18.","title":"Render ISFF-based DGN File Format using GroupDocs.Viewer for .NET 18.7"},{"content":"\rGroupDocs.Conversion for .NET 18.7 comes with some new features and a bug fix. EmailOptions can be defined in any SaveOptions class such as PdfSaveOptions or CellsSaveOptions. Moreover, API supports explicit font substitution when converting from Word, Cell and Presentation documents. Please refer to GroupDocs.Conversion for .NET 18.7 release notes for further reference. We\u0026rsquo;d recommend you to integrate latest version of the API in your application and share your feedback.\nFeatures Following features are introduced in this month\u0026rsquo;s release:\nExplicit Font Substitution Converting from Cells Substitute specific fonts when converting Cells document.\nvar loadOptions = new CellsLoadOptions(); loadOptions.FontSubstitutes.Add(new KeyValuePair(\u0026#34;Arial\u0026#34;, \u0026#34;Tahoma\u0026#34;)); loadOptions.FontSubstitutes.Add(new KeyValuePair(\u0026#34;Calibri\u0026#34;, \u0026#34;Tahoma\u0026#34;)); Converting from Slides Substitute specific fonts when converting Slides document.\nvar loadOptions = new SlidesLoadOptions(); loadOptions.FontSubstitutes.Add(new KeyValuePair(\u0026#34;Arial\u0026#34;, \u0026#34;Tahoma\u0026#34;)); loadOptions.FontSubstitutes.Add(new KeyValuePair(\u0026#34;Calibri\u0026#34;, \u0026#34;Tahoma\u0026#34;)); Converting from Words Substitute specific fonts when converting Words document.\nvar loadOptions = new WordsLoadOptions(); loadOptions.FontSubstitutes.Add(new KeyValuePair(\u0026#34;Angsana New\u0026#34;, \u0026#34;Arial Unicode MS\u0026#34;)); loadOptions.AutoFontSubstitution = false; EmailOptions in SaveOptions Class Email specific convert options.\nvar options = new PdfSaveOptions { EmailOptions = { DisplayHeader = true, DisplayEmailAddress = true, DisplayFromEmailAddress = true, DisplayToEmailAddress = true, DisplayCcEmailAddress = true, DisplayBccEmailAddress = true } }; Bug Fixes Fonts loading folder is not properly set when converting from Words API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nNuGet - Nuget install Documentation - Product Wiki Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/explicit-font-substitution-is-supported-in-groupdocs.conversion-for-.net-18.7/","summary":"GroupDocs.Conversion for .NET 18.7 comes with some new features and a bug fix. EmailOptions can be defined in any SaveOptions class such as PdfSaveOptions or CellsSaveOptions. Moreover, API supports explicit font substitution when converting from Word, Cell and Presentation documents. Please refer to GroupDocs.Conversion for .NET 18.7 release notes for further reference. We\u0026rsquo;d recommend you to integrate latest version of the API in your application and share your feedback.","title":"Explicit Font Substitution is Supported in GroupDocs.Conversion for .NET 18.7"},{"content":"\rWe are pleased to announce that the first version of GroupDocs.Parser for Java has been released. GroupDocs.Parser for Java allows the Java developers to extract raw and formatted text from the popular document formats. The API also supports working with containers such as ZIP and email containers. You can also access the metadata attached to the documents using a few lines of code. Please continue to read more about the features and the file formats supported by the API.\nSupported Features Following are the salient features exposed by GroupDocs.Parser for Java.\nExtract text from various document formats Extract main document properties Extract text and metadata from containers (PST, OST, ZIP containers are currently supported) Extract text and metadata from mail servers (POP, IMAP and Microsoft Exchange Server are supported) Extract formatted text. Plain text, Markdown, and HTML formatters are present Extract structured text Support password protected document (ability to provide the password if it is required) Service functions like encoding detection, media type detection and the ability to connect the logger Search text in documents Text analysis API (Pdf format is currently supported) For more details on supported features, please visit the article: Features Overview.\nSupported File Formats The following is the list of file formats supported by GroupDocs.Parser.\nText Document Formats (.doc/.docx/.dot/.rtf/.docm/.odt/.xml/.txt/.md) Presentation Document Formats (.ppt/.pptx/.pps/.pptm/.ppsm/.ppsx/.odp) Spreadsheet Document Formats (.xls/,xlsx/.xlsm/.xlsb/.csv/.ods/Tab Separated Values/SpreadsheetML (.xml)) OneNote Documents (.one) Emails (.msg/.eml/.emlx/TNEF/.pst/.ost/POP/IMAP) Electronic Publication Formats (.epub/.fb2 (FuctionBook)) Portable Document Format (.pdf/PDF Portfolio/Encrypted PDF) DOM-based Documents (.xml/.html/.xhtml/.mhtml) Compression and Packaging Formats (.zip/.chm) For more details on supported formats, please visit the article: Supported File Formats.\nExample Business Cases Repetition of data can diminish the worth of an article. Working as a writer, one must follow DRY (don\u0026rsquo;t repeat yourself) principle. Cross reading the articles, again and again, may cost a lot of time. Counting the statistics of word\u0026rsquo;s occurrences can endeavor the goal but again it\u0026rsquo;s hard to do it manually. Eventually, you need to read the whole article and keep track of the words. GroupDocs.Parser may help in this case. In order to elaborate real-life needs, we have envisaged some real-life cases. Please feel free to visit the article: Working with Business Cases.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Parser:\nInstallation - Install GroupDocs.Parser from Maven Documentation - API Documentation Examples - Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Parser Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/parser/releasing-groupdocs.parser-for-java-a-convenient-document-parser-api/","summary":"We are pleased to announce that the first version of GroupDocs.Parser for Java has been released. GroupDocs.Parser for Java allows the Java developers to extract raw and formatted text from the popular document formats. The API also supports working with containers such as ZIP and email containers. You can also access the metadata attached to the documents using a few lines of code. Please continue to read more about the features and the file formats supported by the API.","title":"Releasing GroupDocs.Parser for Java – A Convenient Document Parser API"},{"content":"\rToday, we are excited to announce the release of version 18.7 of GroupDocs.Parser for .NET. The latest release supports extracting text areas from document pages. This feature may help you getting data for text analysis. We recommend you to upgrade the API to the latest version and share your valuable feedback.\nExtracting Text AreasExtracting text areas is useful when you need to get the data for text analysis. To extract text areas, text extractors implement their own internal private class and provide DocumentContent property (see PdfTextExtractor as the sample). The DocumentContent class has the following members: Member\nDescription\nPageCount\nReturns a total number of document pages\nDispose\nReleases resources used by the class\nGetPage\nReturns a document page (see below)\nGetTextAreas\nReturns a collection of TextArea objects (see below)\nThe following code sample shows how to get text areas from a PDF document.\n// Create a text extractor PdfTextExtractor extractor = new PdfTextExtractor(\u0026#34;invoice.pdf\u0026#34;); // Create search options TextAreaSearchOptions searchOptions = new TextAreaSearchOptions(); // Set a regular expression to search \u0026#39;Invoice # XXX\u0026#39; text searchOptions.Expression = \u0026#34;\\\\s?INVOICE\\\\s?#\\\\s?[0-9]+\u0026#34;; // Limit the search with a rectangle searchOptions.Rectangle = new GroupDocs.Parser.Rectangle(10, 10, 300, 150); // Get text areas IList\u0026lt; textarea \u0026gt; texts = extractor.DocumentContent.GetTextAreas(0, searchOptions); // Iterate over a list foreach(TextArea area in texts) { // Print a text Console.WriteLine(area.Text); } Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Parser: Installation - Install GroupDocs.Parser using NuGet Documentation - Product Docs Examples - GitHub Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Parser Have Queries?If you have got any queries or concerns about the API, please feel free to get in touch with us over the forum. We’ll be glad to address your concerns. ","permalink":"https://blog.groupdocs.com/parser/extract-text-areas-from-document-pages-using-groupdocs.parser-for-.net-18.7/","summary":"Today, we are excited to announce the release of version 18.7 of GroupDocs.Parser for .NET. The latest release supports extracting text areas from document pages. This feature may help you getting data for text analysis. We recommend you to upgrade the API to the latest version and share your valuable feedback.\nExtracting Text AreasExtracting text areas is useful when you need to get the data for text analysis. To extract text areas, text extractors implement their own internal private class and provide DocumentContent property (see PdfTextExtractor as the sample).","title":"Extract Text Areas from Document Pages using GroupDocs.Parser for .NET 18.7"},{"content":"\rGroupDocs.Merger for .NET 18.7 comes with some new features. The diagram formats are now supported for multiple methods such as Join, MovePage or RemovePage. For further details, please see release notes.\nSupported Diagram Formats Following diagram formats are supported by the API:\nVSDX VSDM VSSX VSSM VTX VSTM VDX VSTX VSX Features Above mentioned diagram formats are supported by following methods:\nJoin MovePage RemovePage Split document SwapPages Trim Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Merger:\nNuGet - NuGet Install Documentation - API Documentation API Reference - GroupDocs.Merger for .NET API Reference Examples- Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Merger queries FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/merger/diagram-formats-are-supported-in-groupdocs.merger-for-.net-18.7/","summary":"GroupDocs.Merger for .NET 18.7 comes with some new features. The diagram formats are now supported for multiple methods such as Join, MovePage or RemovePage. For further details, please see release notes.\nSupported Diagram Formats Following diagram formats are supported by the API:\nVSDX VSDM VSSX VSSM VTX VSTM VDX VSTX VSX Features Above mentioned diagram formats are supported by following methods:\nJoin MovePage RemovePage Split document SwapPages Trim Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.","title":"Diagram Formats are Supported in GroupDocs.Merger for .NET 18.7"},{"content":"\rThis hotfix release of GroupDocs.Conversion for Java 18.6.1 resolves missing properties issue in some LoadOptions classes that was raised in previous version of the API. Such as setShowGridLines() or setShowHiddenSheets(). Aside this, one improvement is introduced. Please take a look over the release notes.\nImprovements Hide mail header when converted MSG to PDF Bug Fixs Missing properties in some options classes API ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion: API Home - GroupDocs.Conversion for Java Download - GroupDocs.Conversion for Java Download Documentation - Product Documentation Examples/Plugins/Showcases - GitHub source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion ","permalink":"https://blog.groupdocs.com/conversion/announcing-hotfix-release-of-groupdocs.conversion-for-java-18.6.1/","summary":"This hotfix release of GroupDocs.Conversion for Java 18.6.1 resolves missing properties issue in some LoadOptions classes that was raised in previous version of the API. Such as setShowGridLines() or setShowHiddenSheets(). Aside this, one improvement is introduced. Please take a look over the release notes.\nImprovements Hide mail header when converted MSG to PDF Bug Fixs Missing properties in some options classes API ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Announcing Hotfix Release of GroupDocs.Conversion for Java 18.6.1"},{"content":"\rThis month\u0026rsquo;s release of GroupDocs.Conversion for Java 18.6 comes with some bug fixes, improvements and new features. Issue such as printing complete spreadsheet instead of just printable area is fixed. A new property PageOrientation is introduced in DocumentInfo class. Please take a look over the release notes to get an idea about the new features, improvements and bug fixes.\nFeatures Introduced Implement conversion from DWF Convert specific range when converting cells document Conversion from PostScript specific options for converting CSV documents Setting default zoom when converting to Cells Default zoom when converting to Words Set default zoom when converting to Slides Configurable option for setting a watermark as background Improvements Caching with provided LocalCacheDataHandler Implement configuration option for selecting if blank rows and columns should be skipped when converting Cells document Set zoom when converting to Pdf document Update API for getting document info to detect page orientation for the supported formats Set default font to replace all missing fonts when converting Words document Default font to replace all missing fonts when converting Cells document Conversion improvement when converting Psd and Odg to Pdf Issues Resolved Unable to set watermark text Converting specific docx document fails with Value cannot be null, parameter trueTypeFont Fix failing conversion from Odg Failing conversion from Ifc Just print area is getting converted, not the entire spreadsheet XPS to PDF conversion failed LoadOptions doesn\u0026rsquo;t possess setDefaultFont method Problem in converting large excel files. Is there a way to paginate the excel sheet? Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion: API Home - GroupDocs.Conversion for Java Download - GroupDocs.Conversion for Java Download Documentation - Product Documentation Examples/Plugins/Showcases - GitHub source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion ","permalink":"https://blog.groupdocs.com/conversion/set-pageorientation-using-groupdocs.conversion-for-java-18.6/","summary":"This month\u0026rsquo;s release of GroupDocs.Conversion for Java 18.6 comes with some bug fixes, improvements and new features. Issue such as printing complete spreadsheet instead of just printable area is fixed. A new property PageOrientation is introduced in DocumentInfo class. Please take a look over the release notes to get an idea about the new features, improvements and bug fixes.\nFeatures Introduced Implement conversion from DWF Convert specific range when converting cells document Conversion from PostScript specific options for converting CSV documents Setting default zoom when converting to Cells Default zoom when converting to Words Set default zoom when converting to Slides Configurable option for setting a watermark as background Improvements Caching with provided LocalCacheDataHandler Implement configuration option for selecting if blank rows and columns should be skipped when converting Cells document Set zoom when converting to Pdf document Update API for getting document info to detect page orientation for the supported formats Set default font to replace all missing fonts when converting Words document Default font to replace all missing fonts when converting Cells document Conversion improvement when converting Psd and Odg to Pdf Issues Resolved Unable to set watermark text Converting specific docx document fails with Value cannot be null, parameter trueTypeFont Fix failing conversion from Odg Failing conversion from Ifc Just print area is getting converted, not the entire spreadsheet XPS to PDF conversion failed LoadOptions doesn\u0026rsquo;t possess setDefaultFont method Problem in converting large excel files.","title":"Set PageOrientation using GroupDocs.Conversion for Java 18.6"},{"content":"\rWe are pleased to announce the release of GroupDocs.Viewer for Java 17.5.1. This is a hotfix release that contains 2 bug fixes and a new feature. The latest version allows you to manually cleanup the temporary files that are created during document rendering. Please continue to read the details about the new feature and the bug fixes.\nCleanup Temporary FilesWhile rendering documents, GroupDocs.Viewer creates temporary files which were removed automatically after each operation. As removing temporary files is a time-consuming operation, therefore, a new method clearTempFiles is introduced. This method is thread-safe and can be called any time so it won\u0026rsquo;t affect documents\u0026rsquo; rendering. GroupDocs.Viewer uses default system\u0026rsquo;s temporary folder to store temp files and it can be changed by setting temporary directory in process properties e.g. System.setProperty(\u0026ldquo;java.io.tmpdir\u0026rdquo;, \u0026ldquo;c:/my_temp_files/\u0026rdquo;). The following code sample shows how to cleanup temporary files. // Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.setStoragePath(STORAGE_PATH); // Create image or html handler ViewerImageHandler handler = new ViewerImageHandler(config); // Cleanup temporary files handler.clearTempFiles(); Bug FixesFollowing bugs have been fixed in this hotfix release: NullPointerException when rendering PDF as HTML Performance degradation during consequent iterations through the same documents Related Links and ResourcesFollowing resources will help you to download, learn, try and get technical support. Product Home – API Home Page Installation - Install GroupDocs.Viewer from Maven Documentation – Product Documentation Product Support Forum – Technical Support Forum for GroupDocs.Viewer Examples – Source Code Examples Sample Front End App - Open Source Document Viewer Application FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/cleanup-temporary-files-using-groupdocs.viewer-for-java-17.5.1-hotfix/","summary":"We are pleased to announce the release of GroupDocs.Viewer for Java 17.5.1. This is a hotfix release that contains 2 bug fixes and a new feature. The latest version allows you to manually cleanup the temporary files that are created during document rendering. Please continue to read the details about the new feature and the bug fixes.\nCleanup Temporary FilesWhile rendering documents, GroupDocs.Viewer creates temporary files which were removed automatically after each operation.","title":"Cleanup Temporary Files using GroupDocs.Viewer for Java 17.5.1 Hotfix"},{"content":"\rGroupDocs team is pleased to announce the monthly release of GroupDocs.Search for .NET 18.6. Using the latest version, you can now break indexing operation manually. Furthermore, obsolete Relevance property is removed from the DetailResultInfo method and ImportDictionary and ExportDictonary methods are added to index dictionaries. We would recommend you to install and use the latest version of API.\nBreak Indexing Operation ManuallyUsing GroupDocs.Search API you can break indexing operation manually. The break is not instantaneous and in cases of indexing large documents, the breaking can take about a second. Following is the code snippet to break indexing operation manually: string folderForIndex = \u0026#34;c:\\\\MyIndex\\\\\u0026#34;; string folderWithDocuments = \u0026#34;c:\\\\MyDocuments\\\\\u0026#34;; //Creating index Index index = new Index(folderForIndex); //Subscribing on Operation Finished event index.OperationFinished += index_OperationFinished; //Indexing selected folder asynchronously index.AddToIndexAsync(folderWithDocuments); //Breaking indexing index.Break(); Added ImportDictionary and ExportDictionary methods to index dictionariesIn the latest version of API, Import and Export methods\u0026rsquo; names are updated to ImportDictonaires and ExportDictionaries. Removed obsolete Relevance property from DetailedResultInfoObsolete property GroupDocs.Search.DetailedResultInfo.Relevance is removed from DetailResultInfo in version 18.6 of GroupDocs.Search for .NET API. Available Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search: Installation - Install GroupDocs.Search using NuGet Documentation - Product docs Examples/Plugins/Showcases - Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search FeedbackIf you have any suggestions, questions, or queries related to the .NET Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts. ","permalink":"https://blog.groupdocs.com/search/break-indexing-operation-manually-using-groupdocs.search-for-.net-18.6/","summary":"GroupDocs team is pleased to announce the monthly release of GroupDocs.Search for .NET 18.6. Using the latest version, you can now break indexing operation manually. Furthermore, obsolete Relevance property is removed from the DetailResultInfo method and ImportDictionary and ExportDictonary methods are added to index dictionaries. We would recommend you to install and use the latest version of API.\nBreak Indexing Operation ManuallyUsing GroupDocs.Search API you can break indexing operation manually.","title":"Break Indexing Operation Manually using GroupDocs.Search for .NET 18.6"},{"content":"\rShare this issue:\nMonthly NewsletterJuly 2018 Merge Word, PDF, Excel \u0026amp; PowerPoint Documents in .NET Join Multiple Documents of Same File Format into One\nGroupDocs.Merger for .NET - A native document manipulation API allowing to split, append, join, remove, reorder and combine pages of popular business documents formats into one. You can also manage document protection by setting up or removing passwords.\nCompany News\nGroupDocs Consulting Partners Program GroupDocs has recently started consulting partners program to provide professional consultancy services, implementation and unique solutions to help GroupDocs API users develop customized solutions according to the business needs. These third-party companies do not provide technical support, but they have deep working experience with GroupDocs products and we recommend them for discussing and execution of consulting projects only. If a company wants to join for becoming a part of this consulting partner program, then read out FAQs and register an official application there for further consideration.\nProduct News\nLaunching Soon: GroupDocs.Parser for Java GroupDocs.Viewer for .NET now supports the feature of setting output page size when rendering email messages as image and PDF. You can also change the field labels in the header of the email messages. The feature of rendering password protected documents has also been extended for ODT and OTT formats. Read more details here.\nGenerate Summary Pages to Image Streams in Java Applications GroupDocs.Comparison for Java is a Documents Comparison, Difference Checker and Documents Merging API. The latest version introduces new file formats (PNG, JPG, BMP and email) and allows generating summary page to images streams. The support of pivot table in Cells is also introduced in this release. Read more details here.\nDynamically Change Color of Chart Series and Individual Point Series in Business Documents GroupDocs.Assembly offers .NET and Java document automation and reports generation APIs to create custom documents from templates. The latest version now allows users to change the color of chart series and individual point series dynamically for word processing, spreadsheet and presentation formats.\nFrom the Library\nCode Example: Tiled Rendering of CAD Documents in .NET GroupDocs.Viewer for .NET now supports rendering DXF format as well as the tiled rendering of the CAD documents. Another feature of forced password validation for password protected documents is also introduced in this version. Read more details here.\nCode Example: Set Signature Position in .NET Excel Files GroupDocs.Signature for .NET API allows users to set position of signatures in Excel file formats with pixels. It also supports verifying encrypted QR-Code text within document formats as well as aligning text in text Signature for Words, Slides, Images and PDF documents. Read more details here.\nCode Example: Add Watermark Annotation in .NET Word and Diagram Documents GroupDocs.Annotation for .NET adds some more annotation types like Point, Polyline and Watermark for Word documents and Diagrams. Read more details here.\nCode Example: Sign Documents with Stamp Signatures GroupDocs.Signature for Java API now supports signing documents with stamp signatures either in a round or a square shape within all types of Java applications. This version allows working with new PowerPoint formats (OTP, POTX, POTM, PPSM) and enable users to add and search custom object to QR-Code signatures. Read more details here.\nCode Example: Update XMP Metadata of WAV File GroupDocs.Metadata APIs allow you to edit XMP metadata of WAV file format and update metadata properties of Microsoft Project (MPP) file format within .NET and Java applications. Moreover, memory consumption for loading and saving metadata is now reduced for MPP, WAV and AVI file formats.\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite. GroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite. GroupDocs.Viewer for .NET 18.6.1 – Issue of getting black images when rendering PDF documents is fixed now. GroupDocs.Conversion for .NET 18.6 – ITempDataHandler is Introduced in this release. GroupDocs.Comparison for .NET 18.6 – Style Comparison for HTML is Improved. Check out for more releases during last month\n","permalink":"https://blog.groupdocs.com/total/groupdocs-newsletter-july-2018-professional-document-manipulation-apis-for-.net-and-java/","summary":"Share this issue:\nMonthly NewsletterJuly 2018 Merge Word, PDF, Excel \u0026amp; PowerPoint Documents in .NET Join Multiple Documents of Same File Format into One\nGroupDocs.Merger for .NET - A native document manipulation API allowing to split, append, join, remove, reorder and combine pages of popular business documents formats into one. You can also manage document protection by setting up or removing passwords.\nCompany News\nGroupDocs Consulting Partners Program GroupDocs has recently started consulting partners program to provide professional consultancy services, implementation and unique solutions to help GroupDocs API users develop customized solutions according to the business needs.","title":"GroupDocs Newsletter July 2018 – Professional Document Manipulation APIs for .NET and Java"},{"content":"\rGroupDocs.Watermark for .NET 18.6 has been released and it is available for download. The latest version has come with the feature of locking watermarks in Word documents. Furthermore, it also provides the ability to protect/unprotect the Word documents. Please continue to read more about the features added in version 18.6.\nHow to Lock Watermark in Word Documents There might be the case when you need to lock the watermarks in a Word document to restrict the editing. To deal with such cases, GroupDocs.Watermark provides 5 variants of locking Word document after adding watermark.\nAllowOnlyRevisions: user can only add revision marks to the document. AllowOnlyComments: user can only modify comments in the document. AllowOnlyFormFields: the document is split into one-page sections and locked section with watermark is added between each two adjacent document sections. ReadOnly: the entire document is read-only. ReadOnlyWithEditableContent: the document is read-only, but all the content except the watermark is marked as editable. The following code sample shows how to lock watermark in a Word document.\nstring inputFileName = @\u0026#34;d:\\input.docx\u0026#34;; string outputFileName = @\u0026#34;d:\\output.docx\u0026#34;; using (WordsDocument doc = Document.Load(inputFileName)) { TextWatermark watermark = new TextWatermark(\u0026#34;Watermark text\u0026#34;, new Font(\u0026#34;Arial\u0026#34;, 19)); watermark.ForegroundColor = Color.Red; WordsShapeSettings settings = new WordsShapeSettings(); settings.IsLocked = true; settings.LockType = WordsLockType.AllowOnlyFormFields; settings.Password = \u0026#34;7654321\u0026#34;; doc.AddWatermark(watermark, settings); doc.Save(outputFileName); } For more details on this feature, please visit this documentation article.\nProtect/Unprotect Word Documents GroupDocs.Watermark provides a simplified way of protecting the Word documents with the password. You can protect as well as unprotect the Word documents. The following protection types are supported:\nAllowOnlyRevisions: user can only add revision marks to the document. AllowOnlyComments: user can only modify comments in the document. AllowOnlyFormFields: user can only enter data in the form fields in the document. ReadOnly: no changes are allowed to the document. Protect Word Document The following code sample shows how to protect a Word Document.\nusing (WordsDocument doc = Document.Load(@\u0026#34;D:\\test.doc\u0026#34;)) { doc.Protect(WordsProtectionType.ReadOnly, \u0026#34;7654321\u0026#34;); doc.Save(); } Unprotect Document The following code sample shows how to unprotect a Word Document.\nusing (WordsDocument doc = Document.Load(@\u0026#34;D:\\test.doc\u0026#34;)) { doc.Unprotect(); doc.Save(); } For more details on this feature, please visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Watermark:\nInstallation - Install GroupDocs.Watermark using NuGet Documentation - API Documentation Examples - Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum - Technical Support Forum for GroupDocs.Watermark Feedback As always, we would love to hear your queries and suggestions at our forum.\n","permalink":"https://blog.groupdocs.com/watermark/lock-watermark-in-word-documents-groupdocs.watermark-for-.net-18.6/","summary":"GroupDocs.Watermark for .NET 18.6 has been released and it is available for download. The latest version has come with the feature of locking watermarks in Word documents. Furthermore, it also provides the ability to protect/unprotect the Word documents. Please continue to read more about the features added in version 18.6.\nHow to Lock Watermark in Word Documents There might be the case when you need to lock the watermarks in a Word document to restrict the editing.","title":"Lock Watermark in Word Documents using GroupDocs Watermark API for .NET"},{"content":"\rAnother monthly release of GroupDocs.Watermark for Java is onboard. GroupDocs.Watermark for Java 18.6 supports locking of watermarks in Word documents. Furthermore, it also provides the ability to protect and unprotect the Word documents. Following are the details about the new features added in version 18.6.\nLock Watermark in Word Documents There might be the case when you need to lock the watermarks in a Word document to restrict the editing. To deal with such cases, GroupDocs.Watermark provides 5 variants of locking Word document after adding watermark.\nAllowOnlyRevisions: user can only add revision marks to the document. AllowOnlyComments: user can only modify comments in the document. AllowOnlyFormFields: the document is split into one-page sections and locked section with watermark is added between each two adjacent document sections. ReadOnly: the entire document is read-only. ReadOnlyWithEditableContent: the document is read-only, but all the content except the watermark is marked as editable. The following code sample shows how to lock watermark in a Word document.\nString inputFileName = \u0026#34;d:\\\\input.docx\u0026#34;; String outputFileName = \u0026#34;d:\\\\output.docx\u0026#34;; WordsDocument doc = Document.load(WordsDocument.class, inputFileName); TextWatermark watermark = new TextWatermark(\u0026#34;Watermark text\u0026#34;, new Font(\u0026#34;Arial\u0026#34;, 19)); watermark.setForegroundColor(Color.getRed()); WordsShapeSettings settings = new WordsShapeSettings(); settings.setLocked(true); settings.setLockType(WordsLockType.AllowOnlyFormFields); settings.setPassword(\u0026#34;7654321\u0026#34;); doc.addWatermark(watermark, settings); doc.save(outputFileName); doc.close(); For more details on this feature, please visit this documentation article.\nProtect/Unprotect Word Documents GroupDocs.Watermark provides a simplified way of protecting the Word documents with the password. You can protect as well as unprotect the Word documents. The following protection types are supported:\nAllowOnlyRevisions: user can only add revision marks to the document. AllowOnlyComments: user can only modify comments in the document. AllowOnlyFormFields: user can only enter data in the form fields in the document. ReadOnly: no changes are allowed to the document. Protect a Word Document The following code sample shows how to protect a Word Document.\nWordsDocument doc = Document.load(WordsDocument.class, \u0026#34;D:\\\\test.doc\u0026#34;); doc.protect(WordsProtectionType.ReadOnly, \u0026#34;7654321\u0026#34;); doc.save(\u0026#34;D:\\\\test.doc\u0026#34;); doc.close(); Unprotect a Word Document The following code sample shows how to unprotect a Word Document.\nWordsDocument doc = Document.load(WordsDocument.class, \u0026#34;D:\\\\test.doc\u0026#34;); doc.unprotect(); doc.save(\u0026#34;D:\\\\test.doc\u0026#34;); doc.close(); For more details on this feature, please visit this documentation article.\nAvailable Channels and Resources Installation - Install GroupDocs.Watermark from Maven Documentation - API Documentation Examples - Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Watermark Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/watermark/protect-word-documents-with-watermark-in-java/","summary":"Another monthly release of GroupDocs.Watermark for Java is onboard. GroupDocs.Watermark for Java 18.6 supports locking of watermarks in Word documents. Furthermore, it also provides the ability to protect and unprotect the Word documents. Following are the details about the new features added in version 18.6.\nLock Watermark in Word Documents There might be the case when you need to lock the watermarks in a Word document to restrict the editing.","title":"Protect and Unprotect Word Documents with Watermark in Java"},{"content":"\rGroupDocs team is introducing two new features and three enhancements in the monthly releaseof GroupDocs.Metadata for Java 18.6. The latest version allows you to edit XMP metadata of WAV file format and update metadata properties of MPP file format. Furthermore, memory consumption for loading and saving metadata is now reduced for MPP, WAV and AVI file formats. A bug related to removing XMP metadata in TIF file format is also resolved in the latest version. We recommend you to install the latest version of API for a better experience.\nFeatures IntroducedFollowing are the new features introduced in version 18.6. Ability to edit XMP metadata in WAV files Update properties of the Microsoft Project format For details about the features supported by the API, please visit Features Overview.\nEnhancementsFollowing are the enhancements introduced in version 18.6. Reduce memory consumption of MPP format metadata loading and saving Reduce memory consumption of WAV format metadata loading and saving Reduce memory consumption of AVI format metadata loading and saving Issues ResolvedThe following bug is resolved in version 18.6. TiffFormat.RemoveXmpData() turns Tiff Image into black Available Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Metadata for Java: Installation - Install GroupDocs.Metadata from Maven Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Metadata product family FeedbackWe always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Metadata for Java at our forum. ","permalink":"https://blog.groupdocs.com/metadata/update-metadata-of-mpp-format-using-groupdocs.metadata-for-java-18.6/","summary":"GroupDocs team is introducing two new features and three enhancements in the monthly releaseof GroupDocs.Metadata for Java 18.6. The latest version allows you to edit XMP metadata of WAV file format and update metadata properties of MPP file format. Furthermore, memory consumption for loading and saving metadata is now reduced for MPP, WAV and AVI file formats. A bug related to removing XMP metadata in TIF file format is also resolved in the latest version.","title":"Update metadata of MPP format using GroupDocs.Metadata for Java 18.6"},{"content":"\rGroupDocs team is introducing two new features and three enhancements in the monthly release of GroupDocs.Metadata for .NET 18.6. Using the latest version, you can now edit XMP metadata of WAV file format and update metadata properties of MPP file format. Furthermore, memory consumption for loading and saving metadata is now reduced for MPP, WAV and AVI file formats. A bug related to removing XMP metadata in Tiff file format is also resolved in the latest version. We recommend you to install and use the latest version of the API.\nFeatures IntroducedFollowing are the new features introduced in version 18.6. Edit XMP metadata in WAV files Update properties of the Microsoft Project format For details about the features supported by the API, please visit Features Overview.\nEnhancementsFollowing are the enhancements introduced in version 18.6. Reduce memory consumption of MPP format metadata loading and saving Reduce memory consumption of WAV format metadata loading and saving Reduce memory consumption of AVI format metadata loading and saving Issues ResolvedThe following bug is resolved in version 18.6. TiffFormat.RemoveXmpData() turns Tiff Image into black Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Installation - Install GroupDocs.Metadata using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/update-xmp-metadata-of-wav-file-using-groupdocs.metadata-for-.net-18.6/","summary":"GroupDocs team is introducing two new features and three enhancements in the monthly release of GroupDocs.Metadata for .NET 18.6. Using the latest version, you can now edit XMP metadata of WAV file format and update metadata properties of MPP file format. Furthermore, memory consumption for loading and saving metadata is now reduced for MPP, WAV and AVI file formats. A bug related to removing XMP metadata in Tiff file format is also resolved in the latest version.","title":"Update XMP Metadata of WAV File using GroupDocs.Metadata for .NET 18.6"},{"content":"\rA new release of GroupDocs.Conversion for .NET 18.6 is on-board. This release covers few improvements. Such as ConversionHandler constructors are reduced to one. Please visit the release notes. We\u0026rsquo;d recommend you to integrate latest version of the API in your application and share your feedback.\nImprovements Reducing ConversionHandler constructors to one ITempDataHandler for handling temp operations stream Introducing new properties in ConversionConfig for different handler types API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nNuGet - Nuget install Documentation - Product Wiki Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/itempdatahandler-is-introduced-in-groupdocs.conversion-for-.net-18.6/","summary":"A new release of GroupDocs.Conversion for .NET 18.6 is on-board. This release covers few improvements. Such as ConversionHandler constructors are reduced to one. Please visit the release notes. We\u0026rsquo;d recommend you to integrate latest version of the API in your application and share your feedback.\nImprovements Reducing ConversionHandler constructors to one ITempDataHandler for handling temp operations stream Introducing new properties in ConversionConfig for different handler types API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"ITempDataHandler is Introduced in GroupDocs.Conversion for .NET 18.6"},{"content":"\rWe have always been improving our APIs to meet the requirements of our customers. Therefore, we are pleased to announce the release of GroupDocs.Viewer for .NET 18.6.1. This is a hotfix release that contains the fix of the issue of getting black images when rendering PDF documents.\nBug FixesFollowing issue is fixed in this hotfix release. Black output image when rendering PDF document Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on our document viewer API. Installation - Install GroupDocs.Viewer using NuGet Documentation - Product Docs Video Tutorials - YouTube Videos Examples / Plugins - GitHub Source Code Examples Sample Front End Apps - Open Source Document Viewer Applications Technical Support Forum - Technical Support Forum for GroupDocs.Viewer FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/releasing-the-hotfix-groupdocs.viewer-for-.net-18.6.1/","summary":"We have always been improving our APIs to meet the requirements of our customers. Therefore, we are pleased to announce the release of GroupDocs.Viewer for .NET 18.6.1. This is a hotfix release that contains the fix of the issue of getting black images when rendering PDF documents.\nBug FixesFollowing issue is fixed in this hotfix release. Black output image when rendering PDF document Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on our document viewer API.","title":"Releasing the Hotfix - GroupDocs.Viewer for .NET 18.6.1"},{"content":"\rAt GroupDocs, we are always focused on improving our API’s. In this regard, we are announcing another monthly release of GroupDocs.Editor for .NET v18.6. In this release, we have extended the supported file formats by adding variety of Cells document formats. Furthermore, support for metered licence system is also introduced in this release. We’d recommend our users to download latest API and get benefits from new and enhanced API features.\nFeatures Introducing following features for Cells document\nConvertion to HTML format\nGeneration from input HTML\nAbility to specify a separator\nOpening encrypted documents with password\nEncrypting output Cells document with setting a password\nSupport of Metered license system\nImprovements Processing of multiple consequent spaces in Words processing module for roundtrip scenarios Space processing for bidirectional text List processing in round-trip scenarios For more details on the supported feature, please visit the article: Supported File Formats\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Editor: NuGet - Download Documentation - API Documentation API References - Annotation API References Examples- Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Editor FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/editor/document-editor-api-for-.net-v18.6/","summary":"At GroupDocs, we are always focused on improving our API’s. In this regard, we are announcing another monthly release of GroupDocs.Editor for .NET v18.6. In this release, we have extended the supported file formats by adding variety of Cells document formats. Furthermore, support for metered licence system is also introduced in this release. We’d recommend our users to download latest API and get benefits from new and enhanced API features.","title":"Add Metered Licence using GroupDocs.Editor for .NET 18.6"},{"content":"\rWe are excited to announce that GroupDocs.Parser is coming soon to Java platform as GroupDocs.Parser for Java. It will be an easy to use back-end API that will permit the users to extractraw and formattedtext from the supported document formats. Besides, it will also allow the users to extract the metadata from the popular document formats. GroupDocs.Parser for Java will soon be available for download.\nSalient Features of GroupDocs.Parser for Java GroupDocs.Parser for Java will come with all the features that are supported by GroupDocs.Parser product family. The most notable features of the API include:\nExtracting Text from Documents Extracting Formatted Text from Documents Extracting Highlights Extracting Structured Text from Documents Searching a Text Searching the Whole Word Searching Text with a Regular Expression Extracting Metadata from the Documents Working with Containers such as ZIP, OST and Email Containers Encoding Detector Loggers Media Type Detectors The API will initially support the following document types for text extraction:\nText Documents Spreadsheet Documents Presentation Documents PDF Documents Email Messages Markdown Documents Electronic Publication Documents FictionBook Documents Microsoft Compiled HTML Help OneNote Documents First Version Availability We are finalizing the first release of GroupDocs.Parser for Java and hoping that you will be able to grab it very soon. Please stay tuned for further updates. We would be happy to hear your queries or suggestions at GroupDocs.Parser forum.\n","permalink":"https://blog.groupdocs.com/parser/upcoming-release-of-groupdocs.parser-for-java/","summary":"We are excited to announce that GroupDocs.Parser is coming soon to Java platform as GroupDocs.Parser for Java. It will be an easy to use back-end API that will permit the users to extractraw and formattedtext from the supported document formats. Besides, it will also allow the users to extract the metadata from the popular document formats. GroupDocs.Parser for Java will soon be available for download.\nSalient Features of GroupDocs.Parser for Java GroupDocs.","title":"Upcoming Release of GroupDocs.Parser for Java"},{"content":"\rThis month\u0026rsquo;s release of GroupDocs.Comparison for .NET 18.6 covers few improvements and a new feature. Improvements such as aligner for Comparison.Diagrams and support of CompariosnSettings to Html are introduced. Please follow the release notes here for further details. We\u0026rsquo;d recommend you to try latest version of the API and share your feedback.\nFeatures Implement comparing connect on Diagrams Improvements Improve styles comparing for HTML Aligner for Comparison.Diagrams Introduced support CompariosnSettings to Html Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nNuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/style-comparison-for-html-is-improved-in-groupdocs.comparison-for-.net-18.6/","summary":"This month\u0026rsquo;s release of GroupDocs.Comparison for .NET 18.6 covers few improvements and a new feature. Improvements such as aligner for Comparison.Diagrams and support of CompariosnSettings to Html are introduced. Please follow the release notes here for further details. We\u0026rsquo;d recommend you to try latest version of the API and share your feedback.\nFeatures Implement comparing connect on Diagrams Improvements Improve styles comparing for HTML Aligner for Comparison.Diagrams Introduced support CompariosnSettings to Html Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Style Comparison for HTML is Improved in GroupDocs.Comparison for .NET 18.6"},{"content":"\rAt GroupDocs, we keep on updating our products for better user experience. In this regard, we are excitedly announcing the monthly release of GroupDocs.Assembly for Java 18.5. Using the latest version, you can now change color of chart series and individual point series dynamically for word processing, spreadsheet and presentation formats. We recommend you to install the latest version of API for a better experience.\nFeatures IntroducedFollowing new features are introduced in version 18.5 of the API. Chart Series Coloring in Word Processing Document Chart Series Coloring in Presentation Document Chart Series Coloring in Spreadsheet Document Individual Point Series Coloring in Word Processing Document Individual Point Series Coloring in Presentation Document Individual Point Series Coloring in Word Processing Document Dynamic Coloring of Chart SeriesFor a chart with dynamic data, you can set colors of chart series dynamically based upon expressions. To use the feature, do the following steps: Declare a chart with dynamic data in the usual way For chart series to be colored dynamically, define corresponding color expressions in names of these series using seriesColor tags having the following syntax: \u0026lt;\u0026lt;seriesColor[color_expression]\u0026gt;\u0026gt;\nDynamic Coloring of Individual Series PointFor a chart with dynamic data, you can set colors of individual chart series points dynamically based upon expressions. To use the feature, do the following steps: Declare a chart with dynamic data in the usual way For chart series with points to be colored dynamically, define corresponding color expressions in names of these series using pointColor tags having the following syntax: \u0026lt;\u0026lt;pointColor[color_expression]\u0026gt;\u0026gt;\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Assembly for Java: Installation - Install GroupDocs.Assembly from Maven Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Assembly product family FeedbackWe always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Assembly for Java at our forum. ","permalink":"https://blog.groupdocs.com/assembly/color-individual-chart-series-points-using-groupdocs.assembly-for-java-18.5/","summary":"At GroupDocs, we keep on updating our products for better user experience. In this regard, we are excitedly announcing the monthly release of GroupDocs.Assembly for Java 18.5. Using the latest version, you can now change color of chart series and individual point series dynamically for word processing, spreadsheet and presentation formats. We recommend you to install the latest version of API for a better experience.\nFeatures IntroducedFollowing new features are introduced in version 18.","title":"Color Individual Chart Series Points using GroupDocs.Assembly for Java 18.5"},{"content":"\rGroupDocs team is proudly announcing the monthly release of GroupDocs.Assembly for .NET 18.5. Using the latest version, you can now change the color of chart series and individual point series dynamically for word processing, spreadsheet and presentation formats. We recommend you to install and use the latest version of the API.\nFeatures IntroducedFollowing new features are introduced in version 18.5 of the API. Chart Series Coloring in Word Processing Document Chart Series Coloring in Presentation Document Chart Series Coloring in Spreadsheet Document Individual Point Series Coloring in Word Processing Document Individual Point Series Coloring in Presentation Document Individual Point Series Coloring in Word Processing Document Dynamic Coloring of Chart SeriesFor a chart with dynamic data, you can set colors of chart series dynamically based upon expressions. To use the feature, do the following steps: Declare a chart with dynamic data in the usual way For chart series to be colored dynamically, define corresponding color expressions in names of these series using seriesColor tags having the following syntax: \u0026lt;\u0026lt;seriesColor[color_expression]\u0026gt;\u0026gt;\nDynamic Coloring of Individual Series PointFor a chart with dynamic data, you can set colors of individual chart series points dynamically based upon expressions. To use the feature, do the following steps: Declare a chart with dynamic data in the usual way For chart series with points to be colored dynamically, define corresponding color expressions in names of these series using pointColor tags having the following syntax: \u0026lt;\u0026lt;pointColor[color_expression]\u0026gt;\u0026gt;\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly for .NET. Installation - Install GroupDocs.Assembly using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Assembly Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Assembly FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Assembly for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/assembly/color-chart-series-dynamically-using-groupdocs.assembly-for-.net-18.5/","summary":"GroupDocs team is proudly announcing the monthly release of GroupDocs.Assembly for .NET 18.5. Using the latest version, you can now change the color of chart series and individual point series dynamically for word processing, spreadsheet and presentation formats. We recommend you to install and use the latest version of the API.\nFeatures IntroducedFollowing new features are introduced in version 18.5 of the API. Chart Series Coloring in Word Processing Document Chart Series Coloring in Presentation Document Chart Series Coloring in Spreadsheet Document Individual Point Series Coloring in Word Processing Document Individual Point Series Coloring in Presentation Document Individual Point Series Coloring in Word Processing Document Dynamic Coloring of Chart SeriesFor a chart with dynamic data, you can set colors of chart series dynamically based upon expressions.","title":"Color Chart Series Dynamically using GroupDocs.Assembly for .NET 18.5"},{"content":"\rWe are pleased to announce the release of version 18.6 of GroupDocs.Viewer for .NET. The latest version provides the support of rendering DXF format as well as the tiled rendering of the CAD documents. Furthermore, we have added the feature of forced password validation for password protected documents. Along with the new features, there are 14 improvements and bug fixes in this monthly release. Below is the list of new features, improvements, and fixes added in GroupDocs.Viewer for .NET 18.6.\nSupported File Formats GroupDocs.Viewer for .NET 18.6 supports rendering of DXF file format. For a complete list of supported file formats, please visit this documentation article.\nForced Password Validation When password protected documents are rendered with the caching enabled, document password is validated only on the first call. All subsequent renderings provide output without checking the document password. In order to alter this behavior and let the API validate document password on each rendering, set ForcePasswordValidation property of the ViewerConfig as shown in the code snippet below.\n//Init viewer config ViewerConfig viewerConfig = new ViewerConfig(); viewerConfig.StoragePath = \u0026#34;c:\\\\storage\u0026#34;; //Set the password to be validated on every call viewerConfig.ForcePasswordValidation = true; // Init viewer html handler ViewerHtmlHandler viewerHtmlHandler = new ViewerHtmlHandler(viewerConfig); // Set the guid of the document you want to render string guid = \u0026#34;with-images.pdf\u0026#34;; //Set document password HtmlOptions htmlOptions = new HtmlOptions(); htmlOptions.Password = \u0026#34;documentpassword\u0026#34;; //Render document with specified options List pages = viewerHtmlHandler.GetPages(guid, htmlOptions); For more details on this feature, please visit this documentation article.\nTiled Rendering or Rendering by Coordinates of CAD Documents Tiled rendering (or rendering by coordinates) is the process of rendering CAD documents (into an image, HTML or PDF) by dividing into square parts and rendering each part (or tile) separately. In tiled rendering, the amount of memory involved is reduced as compared to rendering the entire document at once. Since the version 18.6, tiled rendering is available for rendering DWG file format into image and HTML. When the tiled rendering is enabled, only the Model is rendered, and every tile composes a separate page. You can add as many tiles as you need. The following code snippet demonstrates how to render DWG drawing into an image by dividing into four equal parts.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.StoragePath = @\u0026#34;C:\\storage\u0026#34;; // Create image handler ViewerImageHandler imageHandler = new ViewerImageHandler(config); string guid = \u0026#34;document.dwg\u0026#34;; // Get document width and height DocumentInfoContainer docInfo = imageHandler.GetDocumentInfo(guid); int width = docInfo.Pages[0].Width; int height = docInfo.Pages[0].Height; // Set tile width and height as a half of image total width int tileWidth = width / 2; int tileHeight = height / 2; int pointX = 0; int pointY = 0; //Create image options and add four tiles, one for each quarter ImageOptions options = new ImageOptions(); Tile tile = new Tile(pointX, pointY, tileWidth, tileHeight); options.CadOptions.Tiles.Add(tile); pointX += tileWidth; tile = new Tile(pointX, pointY, tileWidth, tileHeight); options.CadOptions.Tiles.Add(tile); pointX = 0; pointY += tileHeight; tile = new Tile(pointX, pointY, tileWidth, tileHeight); options.CadOptions.Tiles.Add(tile); pointX += tileWidth; tile = new Tile(pointX, pointY, tileWidth, tileHeight); options.CadOptions.Tiles.Add(tile); // The pages list will contain four images, one for each quarter List pages = imageHandler.GetPages(guid, options); foreach (PageImage page in pages) { Console.WriteLine(\u0026#34;Page number: {0}\u0026#34;, page.PageNumber); Stream imageContent = page.Stream; } For more details on this feature, please visit this documentation article.\nBug Fixes Following issues are fixed in version 18.6 of GroupDocs.Viewer for .NET.\nAccess to the path \u0026lsquo;c:\\windows\\system32\\inetsrv\\vs.bin\u0026rsquo; is denied Can\u0026rsquo;t set different default fonts when rendering PDF document Incorrect rendering of items with background color in Visio document GetFileList throws \u0026ldquo;Guid for file should contain extension\u0026rdquo; when file has no extension Some STL files are not supported Text color is incorrect when rendering PDF The content of the cell is hidden when rendering Excel to HTML Unable to render Presentation documents, after ViewerConfig.FontDirectories are added Wrong number of layouts in DXF Improvements Following are the improvements that we have made in version 18.6.\nExtended support for DefaultFontName setting to PDF documents when rendering into PDF Added new property EmbedResources which will replace IsResourcesEmbedded property in HtmlOptions class Support of empty string for ViewerConfig.CacheFolderName property Eliminated the gap between the list of tasks and footer when rendering MS Project documents Extended support for DefaultFontName option for CAD documents Related Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on our document viewer API.\nInstallation - Install GroupDocs.Viewer using NuGet Documentation - Product Docs Video Tutorials - YouTube Videos Examples / Plugins - GitHub Source Code Examples Sample Front End Apps - Open Source Document Viewer Applications Technical Support Forum - Technical Support Forum for GroupDocs.Viewer Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/tiled-rendering-of-cad-documents-using-groupdocs.viewer-for-.net-18.6/","summary":"We are pleased to announce the release of version 18.6 of GroupDocs.Viewer for .NET. The latest version provides the support of rendering DXF format as well as the tiled rendering of the CAD documents. Furthermore, we have added the feature of forced password validation for password protected documents. Along with the new features, there are 14 improvements and bug fixes in this monthly release. Below is the list of new features, improvements, and fixes added in GroupDocs.","title":"Tiled Rendering of CAD Documents using GroupDocs.Viewer for .NET 18.6"},{"content":"\rThis month\u0026rsquo;s release of GroupDocs.Comparison for Java 18.6 comes with multitude of new features, improvements and bug fixes. New formats are introduced in this release such as PNG, JPG, BMP and email. Aside this, you can generate summary page to images streams and supports of pivot table in Cells is introduced as well. Document comparison performance is improved. Bug such as returning null in ICompareResult is fixed. For further details included in this month’s release, please visit the release notes. We\u0026rsquo;d recommend you to Download the new release and enhance your document comparison experience.\nFeatures Ability of comparing DICOM documents by Comparison.Imaging Apply/Discard changes for DICOM format Add support for headers and footers for pivot tables Groupdocs.Comparison: Add setting for cloning metadata GroupDocs.Comparison.Words: Add ability of applying or discarding for category of changes UpdateChanges Model for Imaging Setting for cloning passwords for all formats GroupDocs.Comparison: All formats: Add support of style settings: bold, italic, underline and strike through GroupDocs.Comparison all formats: Add support of Check Box and Page in Change Info GroupDocs.Comparison.Words: Add support of setting for cloning document metadata See complete list of new features introduced here.\nImprovements Implement the process absorbing of tables with merged cells Improved public API Add ability for comparison of result and original files in Imaging.Tests Comparison.PDF: Improve comparison changes detection for Paragraphs GroupDocs.Comparison.Text: Improve comparison performance Fix the support of new settings for PDF Add styles change detection for Comparison.Imaging (height, width) Implement the process absorbing of tables with merged cells Bug Fixes No style changes are detected in PDF comparison and PDF is also truncated in multiple places Output of PDF comparison is not as expected, all the text exceeding first line is missing Comparer is not comparing any format and returning null in ICompareResult PDF Comparison - scrambled/text overlapped output HTML Comparison is not working Comparing a file with itself, gives poor result Invalid comparison for PDF documents API ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison: Product Home – GroupDocs.Comparison for Java Documentation – Product Documentations Examples/Plugins/Showcases – Github source code examples Product Support Forum – Technical Support Forum for GroupDocs.Comparison FeedbackWe always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/add-summary-page-to-image-stream-in-groupdocs.comparison-for-java-18.6/","summary":"This month\u0026rsquo;s release of GroupDocs.Comparison for Java 18.6 comes with multitude of new features, improvements and bug fixes. New formats are introduced in this release such as PNG, JPG, BMP and email. Aside this, you can generate summary page to images streams and supports of pivot table in Cells is introduced as well. Document comparison performance is improved. Bug such as returning null in ICompareResult is fixed. For further details included in this month’s release, please visit the release notes.","title":"Add Summary Page to Image Stream in GroupDocs.Comparison for Java 18.6"},{"content":"\rTeam GroupDocs is excited to release version 18.6 of GroupDocs.Signature for Java API. This latest version supports to sign documents with stamp signatures either in a round or a square shape. Apart from that, few fixes are also introduced in this release of the API. We would recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\nFeatures Encode and Search Custom Object to QR-Code SignatureNow users of this API can add and search custom object to QR-Code signatures. Following code sample shows how to add a custom object to QR-Code signatures: // setup custom object instance with required data DocumentSignature docSignature =new DocumentSignature(); docSignature.setID(UUID.randomUUID().toString()); docSignature.setAuthor(\u0026#34;Mr.Sherlock\u0026#34;); docSignature.setSigned(new java.util.Date()); docSignature.setDataFactor(new java.math.BigDecimal(\u0026#34;0.67\u0026#34;)); // setup options PdfQRCodeSignOptions signOptions = new PdfQRCodeSignOptions(); // QR-code type signOptions.setEncodeType(QRCodeTypes.QR); // setup Data property with custom object signOptions.setData(docSignature); Square type for Stamp SignaturesUser can sign documents with stamp signatures either in a square or a round shape. Following code sample shows how to sign document with square type stamp signature: ImagesStampSignOptions signOptions = new ImagesStampSignOptions(); // setup stamp type signOptions.setStampType(StampTypes.SQUARE); // sign document with square stamp String signedPath = (String)handler.sign(\u0026#34;invoice.png\u0026#34;, signOptions,saveOptions); New Slides File FormatsFollowing are the new slides file formats introduced in this release of the API: otp potx potm ppsm QR-Code Embedded ClassesNew embedded classes introduced for QR-Code are as follow: VCard Email Bug Fixes Signed .doc files have .docx extension and .ppt files have .pps extension Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for Java:\nDownload – JAR Files Documentation – API Docs Product Support Forum – Technical Support Forum for GroupDocs.Signature Examples – GitHub source code examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/java-e-signing-api-v18.6/","summary":"Team GroupDocs is excited to release version 18.6 of GroupDocs.Signature for Java API. This latest version supports to sign documents with stamp signatures either in a round or a square shape. Apart from that, few fixes are also introduced in this release of the API. We would recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\nFeatures Encode and Search Custom Object to QR-Code SignatureNow users of this API can add and search custom object to QR-Code signatures.","title":"Introducing Stamp Types in GroupDocs.Signature for Java 18.6"},{"content":"\rWe are pleased to announce GroupDocs.Merger for .NET 18.5. A back-end document manipulation API that allows to split, remove or reorder pages in a document of supported format. Pages could be swapped or trimmed. You can also manage documents protection. GroupDocs.Merger for .NET allows to check document protection and then set, remove or update password. Aside this, API permits to join two or more documents of same file format into one.\nPurpose Behind GroupDocs.Merger for .NET API GroupDocs.Merger for .NET is an organized API, using that you can manipulate a document programatically in different ways. For instance, see how simply you can trim a document:\nPagesOptions pagesOptions = new PagesOptions(FileFormat.Pdf, password, pages); Stream openFile = new FileStream(sourceFile, FileMode.Open); // Main method. DocumentResult result = new DocumentHandler().Trim(openFile, pagesOptions); API is designed to facilitate users to move, remove and swap pages within a document using simplified calls.\nSupported Features and Formats GroupDocs.Merger for .NET supports a lot of document formats and many document manipulation features.\nSupported Document Formats Word PDF Cell Slide In order to see file format extensions please visit this article.\nFeatures offered by GroupDocs.Merger for .NET Combine and merge multiple files into one document Split document to multiple files Arrange documents in any order Check document protection Remove pages from document See all API features here.\nAvailable Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Merger:\nNuGet - NuGet Install Documentation - API Documentation API Reference - GroupDocs.Merger for .NET API Reference Examples- Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Merger queries Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/merger/releasing-groupdocs.merger-for-.net-api-reorder-or-split-document-pages/","summary":"We are pleased to announce GroupDocs.Merger for .NET 18.5. A back-end document manipulation API that allows to split, remove or reorder pages in a document of supported format. Pages could be swapped or trimmed. You can also manage documents protection. GroupDocs.Merger for .NET allows to check document protection and then set, remove or update password. Aside this, API permits to join two or more documents of same file format into one.","title":"Releasing GroupDocs.Merger for .NET API - Reorder or Split Document Pages"},{"content":"\rShare this issue:\nMonthly NewsletterJune 2018 Documents Viewer APIs for .NET and Java Applications View over 50 Document \u0026amp; Image formats without External Viewer\nGroupDocs.Viewer product family offers powerful files viewer APIs for .NET and Java applications. It rasterizes documents and images both, renders text and converts them to SVG, HTML and CSS – thus offering a high-fidelity true-text, document rendering. Developers can work with all popular business and image file formats including: Microsoft Office, Visio, Project, Outlook, PDF, HTML, OpenDocument, AutoCad, Metafiles, JPEG, TIFF, GIF, BMP etc.\nCompany News\nPrivacy and Terms and Conditions Changes In line with EU data protection law changes we’ve updated our Privacy Policy and Terms of Use. We’ve made these updates to ensure our terms are easier to understand, more transparent and in keeping with international privacy standards. There is no action required from your end, we just wanted to let you know about these changes. As always, to update your newsletter preferences either change the settings against your GroupDocs account or use the unsubscribe link at the bottom of this email. If you have any questions about these changes, please reach out to us through the contact information homepage.\nProduct News\nSupport of Setting Output Page Size when Rendering Email Messages GroupDocs.Viewer for .NET now supports the feature of setting output page size when rendering email messages as image and PDF. You can also change the field labels in the header of the email messages. The feature of rendering password protected documents has also been extended for ODT and OTT formats. Read more details here.\nFrom the Library\nHow to: Change Highlight Color of Fonts in Word Documents using .NET Annotation API? GroupDocs.Annotation for .NET now comes up with a feature to change highlight color of fonts for Text Annotation in Word documents. Apart from that – few fixes like cleanup in PDF files that doesn’t remove watermarks are also introduced. Read more details here.\nHow to: Search and Replace Metadata using Regular Expression in .NET and Java? Using GroupDocs.Metadata APIs – now search and replace metadata using a regular expression, read DublinCore metadata using a unified approach, and edit ZIP archive comments within .NET and Java based applications. Furthermore, memory consumption is now reduced for ZIP, torrent, and EPUB file formats.\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite. GroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite. GroupDocs.Comparison for .NET 18.5 – HTML comparison is improved by increasing comparison speed and precision. GroupDocs.Conversion for .NET 18.5 – DOCX to TIFF G3 conversion with shading option and code coverage is improved. Check out for more releases during last month\n","permalink":"https://blog.groupdocs.com/total/updates-to-groupdocs-privacy-policy-groupdocs-newsletter-june-2018/","summary":"Share this issue:\nMonthly NewsletterJune 2018 Documents Viewer APIs for .NET and Java Applications View over 50 Document \u0026amp; Image formats without External Viewer\nGroupDocs.Viewer product family offers powerful files viewer APIs for .NET and Java applications. It rasterizes documents and images both, renders text and converts them to SVG, HTML and CSS – thus offering a high-fidelity true-text, document rendering. Developers can work with all popular business and image file formats including: Microsoft Office, Visio, Project, Outlook, PDF, HTML, OpenDocument, AutoCad, Metafiles, JPEG, TIFF, GIF, BMP etc.","title":"Updates to GroupDocs Privacy Policy – GroupDocs Newsletter June 2018"},{"content":"\rWe are about to release GroupDocs.Merger for .NET, a full featured, back-end API that could easily be utilized by .NET developers in their projects. It will allow trimming and swapping of pages. Document protection will be managed by GroupDocs.Merger for .NET. Moreover, API will allow to merge two documents of same format into single.\nFeatures Offered by GroupDocs.Merger for .NETGroupDocs will keep on updating this API with new features. An initial list of features offered by the API will be: Move/reorder pages Remove and swap document pages Trim and split document Document protection management Join Document First Version AvailabilityWe are finalizing the first release of GroupDocs.Merger for .NET and hope that you will be able to avail it very soon. Please stay tuned for further updates. We would be happy to hear your queries or suggestions at GroupDocs.Merger forum. ","permalink":"https://blog.groupdocs.com/merger/upcoming-release-of-groupdocs.merger-for-.net/","summary":"We are about to release GroupDocs.Merger for .NET, a full featured, back-end API that could easily be utilized by .NET developers in their projects. It will allow trimming and swapping of pages. Document protection will be managed by GroupDocs.Merger for .NET. Moreover, API will allow to merge two documents of same format into single.\nFeatures Offered by GroupDocs.Merger for .NETGroupDocs will keep on updating this API with new features. An initial list of features offered by the API will be: Move/reorder pages Remove and swap document pages Trim and split document Document protection management Join Document First Version AvailabilityWe are finalizing the first release of GroupDocs.","title":"Upcoming Release of GroupDocs.Merger for .NET"},{"content":"\rWe are pleased to announce that GroupDocs.Text for .NET has been renamed to GroupDocs.Parser for .NET. We have published the first monthly release as GroupDocs.Parser for .NET 18.5 after renaming of the API. The latest release has come with a few changes and a couple of enhancements. Please continue to read about the changes and the enhancements that we have made in version 18.5.\nImportant to KnowIt is important to inform you that the renaming of the API will not disturb your existing code and the API structure still remains the same. You will only have to make the following changes in your code: All the namespaces that started with GroupDocs.Text have been renamed and now they start with GroupDocs.Parser, e.g. GroupDocs.Text.Containers namespace has been renamed to GroupDocs.Parser.Containers. GroupDocsTextException class has been renamed to GroupDocsParserException. EnhancementsFollowing are the enhancements that we have made in GroupDocs.Parser for .NET 18.5: Added the support for GitHub Markdown syntax Standard extract mode is set as default text extraction mode Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Parser: Installation - Install GroupDocs.Parser using NuGet Documentation - Product Docs Examples - GitHub Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Parser Have Queries?If you have got any queries or have any concerns about the API, please feel free to get in touch with us over the forum. We’ll be glad to address your concerns. ","permalink":"https://blog.groupdocs.com/parser/groupdocs.text-for-.net-has-been-renamed-to-groupdocs.parser-for-.net/","summary":"We are pleased to announce that GroupDocs.Text for .NET has been renamed to GroupDocs.Parser for .NET. We have published the first monthly release as GroupDocs.Parser for .NET 18.5 after renaming of the API. The latest release has come with a few changes and a couple of enhancements. Please continue to read about the changes and the enhancements that we have made in version 18.5.\nImportant to KnowIt is important to inform you that the renaming of the API will not disturb your existing code and the API structure still remains the same.","title":"GroupDocs.Text for .NET has been Renamed to GroupDocs.Parser for .NET"},{"content":"\rThis month\u0026rsquo;s release of GroupDocs.Conversion for .NET 18.5 covers some bug fixes and improvements. Docx to Tiff G3 conversion with shading option and code coverage is improved. For further details included in this month’s release, please visit the release notes. We\u0026rsquo;d recommend you to integrate latest version of the API in your application and share your feedback.\nImprovements Docx to Tiff G3 conversion with shading option Improved code coverage Bug Fixes Eml to tiff conversion issue with stream parameters System.ArgumentOutOfRangeException occurred Tiff to Html conversion is not rendered properly in Chrome API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nNuGet - Nuget install Documentation - Product Wiki Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/eml-to-tiff-conversion-is-fixed-in-groupdocs.conversion-for-.net-18.5/","summary":"This month\u0026rsquo;s release of GroupDocs.Conversion for .NET 18.5 covers some bug fixes and improvements. Docx to Tiff G3 conversion with shading option and code coverage is improved. For further details included in this month’s release, please visit the release notes. We\u0026rsquo;d recommend you to integrate latest version of the API in your application and share your feedback.\nImprovements Docx to Tiff G3 conversion with shading option Improved code coverage Bug Fixes Eml to tiff conversion issue with stream parameters System.","title":"EML to TIFF Conversion is Fixed in GroupDocs.Conversion for .NET 18.5"},{"content":"\rGroupDocs team is introducing a bunch of enhancements in this monthly release of GroupDocs.Metadata for .NET 18.5. Using the latest version, you can now search and replace metadata using a regular expression, read DublinCore metadata using a unified approach, and edit ZIP archive comments. Furthermore, memory consumption is now reduced for ZIP, torrent, and EPUB file formats. We recommend you to install and use the latest version of the API.\nEnhancementsFollowing are the enhancements introduced in version 18.5. Ability to search and replace metadata using regular expressions Unified DublinCore metadata reader for all formats that support XMP Reduce memory consumption of ZIP format metadata Ability to edit the ZIP archive comment Reduce memory consumption of EPUB format metadata Reduce memory consumption of Torrent format metadata For details about the features supported by the API, please visit Features Overview.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Installation - Install GroupDocs.Metadata using NuGet Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/search-and-replace-metadata-using-regular-expression-in-groupdocs.metadata-for-.net-18.5/","summary":"GroupDocs team is introducing a bunch of enhancements in this monthly release of GroupDocs.Metadata for .NET 18.5. Using the latest version, you can now search and replace metadata using a regular expression, read DublinCore metadata using a unified approach, and edit ZIP archive comments. Furthermore, memory consumption is now reduced for ZIP, torrent, and EPUB file formats. We recommend you to install and use the latest version of the API.","title":"Search and Replace Metadata using Regular Expression in GroupDocs.Metadata for .NET 18.5"},{"content":"\rA new update for Java users! We are announcing a number of enhancements in the monthly release of GroupDocs.Metadata for Java 18.5. The latest version allows you to search and replace metadata using a regular expression, read DublinCore metadata using a unified approach, and edit ZIP archive comments. Furthermore, memory consumption is now reduced for ZIP, torrent, and EPUB file formats. We recommend you to install the latest version of API for a better experience.\nEnhancementsFollowing are the enhancements introduced in version 18.5. Ability to search and replace metadata using regular expressions Unified DublinCore metadata reader for all formats that support XMP Reduce memory consumption of ZIP format metadata Ability to edit the ZIP archive comment Reduce memory consumption of EPUB format metadata Reduce memory consumption of Torrent format metadata For details about the features supported by the API, please visit Features Overview.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Metadata for Java: Installation - Install GroupDocs.Metadata from Maven Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Metadata product family FeedbackWe always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Metadata for Java at our forum. ","permalink":"https://blog.groupdocs.com/metadata/working-with-regular-expression-in-groupdocs.metadata-for-java-18.5/","summary":"A new update for Java users! We are announcing a number of enhancements in the monthly release of GroupDocs.Metadata for Java 18.5. The latest version allows you to search and replace metadata using a regular expression, read DublinCore metadata using a unified approach, and edit ZIP archive comments. Furthermore, memory consumption is now reduced for ZIP, torrent, and EPUB file formats. We recommend you to install the latest version of API for a better experience.","title":"Working with Metadata using Regular Expression in GroupDocs.Metadata for Java 18.5"},{"content":"\rGroupDocs.Comparison for .NET 18.5 comes with a new feature, improvement and a bug fix. It supports comparison of diagrams. Furthermore, HTML comparison is improved by increasing comparison speed and precision. Please follow the release notes here for further details. We\u0026rsquo;d recommend you to try latest version of the API and share your feedback.\nFeatures Introduced Implement Comparison of Diagrams Improvements Improve Comparison.HTML Bug Fixes Comparison.Notes: Wrong count of changes in SummaryPage Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nNuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/html-comparison-is-improved-in-groupdocs.comparison-for-.net-18.5/","summary":"GroupDocs.Comparison for .NET 18.5 comes with a new feature, improvement and a bug fix. It supports comparison of diagrams. Furthermore, HTML comparison is improved by increasing comparison speed and precision. Please follow the release notes here for further details. We\u0026rsquo;d recommend you to try latest version of the API and share your feedback.\nFeatures Introduced Implement Comparison of Diagrams Improvements Improve Comparison.HTML Bug Fixes Comparison.Notes: Wrong count of changes in SummaryPage Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"HTML Comparison is improved in GroupDocs.Comparison for .NET 18.5"},{"content":"\rWe have released version 18.5 of GroupDocs.Viewer for .NET with a couple of new features as well as 12 improvements and bug fixes. The latest version includes the feature of setting output page size when rendering email messages as image and PDF. Furthermore, you can now change the field labels in the header of the email messages. The feature of rendering password protected documents has also been extended for ODT and OTT formats. Below is the list of new features, improvements, and fixes added in GroupDocs.Viewer for .NET 18.5.\nSetting Output Page Size when Rendering Email Messages Since the version 18.5, it is possible to set output page size when rendering Email messages as PDF and images. To enable this feature, set the _PageSize_property of the EmailOptions class as shown in the following code snippet.\nstring guid = \u0026#34;long-email.msg\u0026#34;; //Instantiate Viewer Hanlder ViewerImageHandler imageHandler = new ViewerImageHandler(); //Set page size ImageOptions imageOptions = new ImageOptions(); imageOptions.EmailOptions.PageSize = PageSize.A4; //Render document with custom page size List pages = imageHandler.GetPages(guid, imageOptions); //Use Stream property of the PageImage class, to get output image. foreach (PageImage page in pages) { Console.WriteLine(page.Stream.Length); } For more details on this feature, please visit this documentation article.\nChanging Field Labels in Email\u0026rsquo;s Header When rendering email messages, by default the API uses the English language to render field labels such as From, To, Subject etc.. Starting from 18.5, GroupDocs.Viewer provides a new property _FieldLabels _in _EmailOptions _class to change the field labels. Following code snippet shows how to use custom field labels.\nstring guid = \u0026#34;email.msg\u0026#34;; //Instantiate Viewer Hanlder ViewerHtmlHandler htmlHandler = new ViewerHtmlHandler(); //Set field labels HtmlOptions htmlOptions = new HtmlOptions(); htmlOptions.EmailOptions.FieldLabels[EmailField.From] = \u0026#34;Sender\u0026#34;; htmlOptions.EmailOptions.FieldLabels[EmailField.To] = \u0026#34;Receiver\u0026#34;; htmlOptions.EmailOptions.FieldLabels[EmailField.Sent] = \u0026#34;Date\u0026#34;; htmlOptions.EmailOptions.FieldLabels[EmailField.Subject] = \u0026#34;Topic\u0026#34;; //Render document with custom field labels List pages = htmlHandler.GetPages(guid, htmlOptions); For more details on this feature, please visit this documentation article.\nBug Fixes Following issues are fixed in version 18.5 of GroupDocs.Viewer for .NET.\nThe voluminous email is not fully rendered into image Images and diagrams are missing when rendering OTS file Text\u0026rsquo;s shadow appears in the output HTML Issues when rendering Excel document with vertical Japanese writing Text overlaps when viewing HTML in Mozilla Firefox Content is missing when rendering PDF document into HTML Link with external URL in PDF document is not rendered as the hyperlink The output image is cropped when rendering HTML as image Improvements Following are the improvements that we have made in version 18.5.\nAddition of new property EnableCaching which will replace UseCache property in ViewerConfig class Support of rendering password protected ODT and OTT formats Support of setting JpegQuality option when rendering OneNote documents into PDF Extended support for DefaultFontName option for MS Project documents when rendering into PDF Related Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on our document viewer API.\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - GitHub Source Code Examples Sample Front End Apps - Open Source Document Viewer Applications Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/support-of-setting-output-page-size-when-rendering-email-messages-in-groupdocs.viewer-for-.net-18.5/","summary":"We have released version 18.5 of GroupDocs.Viewer for .NET with a couple of new features as well as 12 improvements and bug fixes. The latest version includes the feature of setting output page size when rendering email messages as image and PDF. Furthermore, you can now change the field labels in the header of the email messages. The feature of rendering password protected documents has also been extended for ODT and OTT formats.","title":"Support of Setting Output Page Size when Rendering Email Messages in GroupDocs.Viewer for .NET 18.5"},{"content":"\rShare this issue:\nMonthly Newsletter May 2018\nProfessional APIs for Creating Document Management Applications\nManipulate 100+ Business File Formats in .NET and Java Apps\nGroupDocs offers feature-rich document manipulation APIs for .NET and Java developers to build web, mobile or desktop apps with the capability to view, annotate, convert, e-sign, compare, assemble, and watermark document formats. You can also extract text, retrieve metadata information and manipulate documents using HTML.\nProduct News\nRead and Update BitTorrent File Format Metadata in .NET and Java GroupDocs.Metadata now support BitTorrent format within .NET and Java applications. Using a unified approach - read DublinCore metadata in EPUB, DOCX, and PDF file formats, and get Image Cover metadata for EPUB, MP3, Word, and Excel file formats.\nWatermark Images, Specify Bookmarks and Headings while Converting Word to PDF GroupDocs.Conversion allows .NET developers to specify bookmark, headings and expanded level when converting from Word documents to PDF and XPS file formats. Grayscale PDF conversion along with a new property byte[] Image is also supported for watermarking images. Read more details here.\nAdd Annotation in Header \u0026amp; Footer of .NET Word document Applications GroupDocs.Annotation for .NET supports a new feature to annotate header and footer of Word documents in any type of .NET application. An existing feature of annotating PDF file format using metadata information is also improved in this release. Read more details here.\nFrom the Library\nHow to: Import distance annotation for Word Documents and Add Text Redaction Annotation in PowerPoint Slides? GroupDocs.Annotation for Java APIs enable you to programmatically annotate Microsoft Office, PDF and image file formats within any Java based application. Now it supports importing distance annotation for Word documents as well as adding text redaction annotation in PowerPoint presentations. Read more details here.\nHow to: Render Print Area in .NET Excel Worksheets? GroupDocs.Viewer for .NET now allows rendering print area, and to include or exclude hidden columns and rows in the Excel documents. Programmers can also render POTX, PPTM, and EPS file formats within any .NET application. Read more details here.\nHow to: Search Optical Signatures in Java Applications? GroupDocs.Signature for Java now supports searching QR Code and Barcode signatures from PDF, Microsoft Word, Excel, PowerPoint and image file formats. You can also obtain search progress in Java apps while searching barcode signatures with search process events. Read more details here.\nHow to: Edit Watermark Objects in PDF and Replace Text and Images for Found Watermarks? GroupDocs.Watermark now allows replacing text and image for found watermarks that we get in a search result. It also supports replacing text for XObjects, artifacts and annotations in a PDF document within .NET and Java-based applications.\nHow to: Extract TOC from EPUB Documents in .NET? GroupDocs.Text for .NET now allows extracting table of contents from EPUB documents within .NET applications. To access the TOC, TableOfContents property of EpubPackage class is used. Once you get the TOC from the document, access the following properties of TOC items using TableOfContentsItem class. Read more details here.\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite.\nGroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite.\nGroupDocs.Comparison for .NET 18.4 – Comparison of HTML documents as well as comparing data in tables is improved.\nGroupDocs.Conversion for .NET 18.3 – Set default zoom when converting to Excel, Word and PowerPoint documents.\nGroupDocs.Signature for .NET 18.3 – Add and search custom object to QR-Code signatures.\nGroupDocs.Search for .NET 18.4 – Perform indexing of text documents of more than 1 TB in size.\nGroupDocs.Text for .NET 18.3 - Provide support for extracting formatted text from CHM documents.\nCheck out for more releases during last month\n","permalink":"https://blog.groupdocs.com/total/groupdocs-newsletter-may-2018-document-manipulation-apis-for-business-apps-development/","summary":"Share this issue:\nMonthly Newsletter May 2018\nProfessional APIs for Creating Document Management Applications\nManipulate 100+ Business File Formats in .NET and Java Apps\nGroupDocs offers feature-rich document manipulation APIs for .NET and Java developers to build web, mobile or desktop apps with the capability to view, annotate, convert, e-sign, compare, assemble, and watermark document formats. You can also extract text, retrieve metadata information and manipulate documents using HTML.","title":"GroupDocs Newsletter May 2018 – Document Manipulation APIs for Business Applications Development"},{"content":"\rGroupDocs team is proudly announcing the monthly release of GroupDocs.Metadata for .NET 18.4. Using the latest release, you can now read and update BitTorrent file format metadata, read DublinCore metadata and get **Image Cover **metadata using a unified approach. Furthermore, a couple of bugs found in the earlier version of the API are now resolved. We recommend you to download and use the latest version of the API.\nFeatures IntroducedFollowing are the new features introduced in version 18.4. Working with BitTorrent File Metadata Using unified approach for reading DublinCore metadata in EPUB, DOCX, and PDF file formats Using unified approach for getting image cover for EPUB, MP3, Word, and Excel file formats For details about the features supported by the API, please visit Features Overview.\nIssues ResolvedFollowing are the bugs resolved in version 18.4. GIF and PNG file\u0026rsquo;s size increases after removing metadata The JpegFormat() method in GroupDocs.Metadata.dll isn\u0026rsquo;t safe on MTA EnhancementsFollowing is the enhancement included in version 18.4. Move GroupDocsException class to GroupDocs.Shared.Exceptions namespace Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Download - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/support-for-bittorrent-format-in-groupdocs.metadata-for-.net-18.4/","summary":"GroupDocs team is proudly announcing the monthly release of GroupDocs.Metadata for .NET 18.4. Using the latest release, you can now read and update BitTorrent file format metadata, read DublinCore metadata and get **Image Cover **metadata using a unified approach. Furthermore, a couple of bugs found in the earlier version of the API are now resolved. We recommend you to download and use the latest version of the API.\nFeatures IntroducedFollowing are the new features introduced in version 18.","title":"Support for BitTorrent Format in GroupDocs.Metadata for .NET 18.4"},{"content":"\rGood news for Java users! We are delighted to announce the monthly release of GroupDocs.Metadata for Java 18.4. The latest version allows you to read and update BitTorrent file format metadata, read DublinCore metadata and get **Image Cover **metadata using a unified approach. Furthermore, a couple of bugs found in the earlier version of the API are now fixed. We recommend you to download the latest version for a better experience.\nFeatures IntroducedFollowing are the new features introduced in version 18.4. Working with BitTorrent File Metadata Using unified approach for reading DublinCore metadata in EPUB, DOCX, and PDF file formats Using unified approach for getting image cover for EPUB, MP3, Word, and Excel file formats For details about the features supported by the API, please visit Features Overview.\nIssues ResolvedFollowing are the bugs that are fixed in version 18.4. GIF and PNG file\u0026rsquo;s size increases after removing metadata The JpegFormat() method in GroupDocs.Metadata.dll isn\u0026rsquo;t safe on MTA Available Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Metadata for Java: Download - Zipped assemblies Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Metadata product family FeedbackWe always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Metadata for Java at our forum. ","permalink":"https://blog.groupdocs.com/metadata/read-and-update-bittorrent-metadata-using-groupdocs.metadata-for-java-18.4/","summary":"Good news for Java users! We are delighted to announce the monthly release of GroupDocs.Metadata for Java 18.4. The latest version allows you to read and update BitTorrent file format metadata, read DublinCore metadata and get **Image Cover **metadata using a unified approach. Furthermore, a couple of bugs found in the earlier version of the API are now fixed. We recommend you to download the latest version for a better experience.","title":"Read and Update BitTorrent Metadata using GroupDocs.Metadata for Java 18.4"},{"content":"\rFollowing our monthly release process, GroupDocs.Conversion for .NET 18.4 has been released and available for download. This release covers some new features, one improvement and a bug fix. You can specify bookmark, headings and expanded level when converting from Words to PDF and XPS. Grayscale PDF conversion is introduced. Aside these, HTML 5 compliant markup generation is improved. For further details included in this month’s release, please visit the release notes. We\u0026rsquo;d recommend you to integrate latest version of the API in your application and share your feedback.\nFeatures Specify bookmark, headings and expanded levelAPI allows to specify bookmark, headings and expanded level when converting from Words to PDF and XPS formats. Option for creating Linearize PDF when converting to PDF var saveOptions = new PdfSaveOptions(); saveOptions.PdfOptions.Linearize = true; Implement option for converting to grayscale PDF var saveOptions = new PdfSaveOptions(); saveOptions.PdfOptions.Grayscale = true; Resource optimization when converting to PDF var saveOptions = new PdfSaveOptions(); // all images in the document are re-compressed. The compression is defined by the ImageQuality property. saveOptions.PdfOptions.OptimizationOptions.CompressImages = true; // value in percent where 100% is unchanged quality and image size. To decrease the image size, use ImageQuality less than 100 saveOptions.PdfOptions.OptimizationOptions.ImageQuality = 50; // Link duplcate streams saveOptions.PdfOptions.OptimizationOptions.LinkDuplcateStreams = true; // Remove unused objects saveOptions.PdfOptions.OptimizationOptions.RemoveUnusedObjects = true; // Remove unused streams saveOptions.PdfOptions.OptimizationOptions.RemoveUnusedStreams = true; // Make fonts not embedded if set to true saveOptions.PdfOptions.OptimizationOptions.UnembedFonts = true; Image watermarkA new property byte[] Image is introduced. byte[] image = System.IO.File.ReadAllBytes ( \u0026#34;image.jpg\u0026#34; ); var saveOptions = new PdfSaveOptions(); saveOptions.WatermarkOptions.Image = image; Improvements Create HTML 5 compliant markup when converting to html Bug Fixes Index was outside the bound of the array, when cache is enabled and watermarks are applied API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Wiki Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/image-watermark-is-now-supported-in-groupdocs.conversion-for-.net-18.4/","summary":"Following our monthly release process, GroupDocs.Conversion for .NET 18.4 has been released and available for download. This release covers some new features, one improvement and a bug fix. You can specify bookmark, headings and expanded level when converting from Words to PDF and XPS. Grayscale PDF conversion is introduced. Aside these, HTML 5 compliant markup generation is improved. For further details included in this month’s release, please visit the release notes.","title":"Image Watermark is now Supported in GroupDocs.Conversion for .NET 18.4"},{"content":"\rAt GroupDocs, we are always focused on delivering the best to our customers. In this regard, we are excitedly announcing another monthly release of Java Annotation API v18.4. Using this latest version, now users can import distance annotation for Words and also able to add text redaction annotation in Slides. Aside this, multitude fixes and improvements are also introduced in this release. We therefore recommend you to download this latest release for a better API experience.\nGroupDocs.Annotation for Java v18.4 - Features Import of distance annotation for Words Add text redaction annotation in Slides Document Annotation API - Improvements Merge similar annotations when importing from Words Import of text annotation for Words Replacement annotation for text in different paragraphs Point with text for text annotation Export of text annotation in Slides Annotation export for big font sizes for Slides Accepting SVG path also with spaces not only with commas Improve CleanUp for Diagrams Java Annotation API - Fixes Export distance annotation in PDF Import distance,text and arrow annotation from PDF AnnotationImageHandler.getPages does not respect ImageOptions.setWidth Text in TextField annotations when import from Diagrams Import of arrow annotations in Words Polyline and distance structure after export in Diagrams Coordinates of annotations after exporting Images Point annotation in Slides Opacity value for import in Diagrams Import text field for Diagrams Arrow annotation doesn\u0026rsquo;t create for Diagrams Slides bug with coordinates of paragraph and portion Cleanup for text redaction annotation in Words Transparent colors for Words and Images Underline annotation doesn\u0026rsquo;t set on text and table in Words Export adds extra comment for every shape in Diagrams The align of text for textfield of annotation is wrong in Words After export strikeout annotation in Words When importing text for textfield annotation in Diagrams Importing from Words resource redaction annotation does not have color The sample hangs while importing distance annotation for Slides Underline property does not work in text replace functional (Incorrect removing of underline text via Strikeout annotation) Annotation comments are not added while importing and exporting document Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Documentation Annotation API: Download - Zipped JARs Documentation - API Documentation Examples/Showcases - GitHub source code examples Product Support Forum - Technical Support Forum for GroupDocs.Annotation FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/java-annotation-api-v18.4/","summary":"At GroupDocs, we are always focused on delivering the best to our customers. In this regard, we are excitedly announcing another monthly release of Java Annotation API v18.4. Using this latest version, now users can import distance annotation for Words and also able to add text redaction annotation in Slides. Aside this, multitude fixes and improvements are also introduced in this release. We therefore recommend you to download this latest release for a better API experience.","title":"Add Text Redaction Annotation using Java Annotation API v18.4"},{"content":"\rMonthly release of GroupDocs.Comparison for .NET 18.4 comes with some major bug fixes. Issues such as comparing data in tables and comparison of table of contents are resolved. This release implements comparison of HTML documents as well. Please follow the release notes here for further details. We\u0026rsquo;d recommend you to download latest version of the API and share your feedback.\nFeatures Implement Comparison.Html Bug Fixes Issues in comparison of table of contents Fatal error in ParagraphDiffIndex Issues with comparing data in tables PPTX comparison output is hidden under some panel PDF Comparison - scrambled/text overlapped output API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nDownloads - MSI Package and Zipped Format Nuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/scrambled-output-issue-is-resolved-in-groupdocs.comparison-for-.net-18.4/","summary":"Monthly release of GroupDocs.Comparison for .NET 18.4 comes with some major bug fixes. Issues such as comparing data in tables and comparison of table of contents are resolved. This release implements comparison of HTML documents as well. Please follow the release notes here for further details. We\u0026rsquo;d recommend you to download latest version of the API and share your feedback.\nFeatures Implement Comparison.Html Bug Fixes Issues in comparison of table of contents Fatal error in ParagraphDiffIndex Issues with comparing data in tables PPTX comparison output is hidden under some panel PDF Comparison - scrambled/text overlapped output API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Scrambled output issue is resolved in GroupDocs.Comparison for .NET 18.4"},{"content":"\rIt gives us immense pleasure to announce the release of version 18.4 of GroupDocs.Text for .NET. The latest version allows extracting the table of contents from the EPUB documents. Furthermore, we have added the feature of detecting media type of .one file. Following sections provide details about the newly added features.\nExtracting TOC from EPUB Documents Using version 18.4, you can now extract TOC from the EPUB documents. To access the TOC, TableOfContents property of **EpubPackage **class is used. Once you get the TOC from the document, you can access the following properties of TOC items using TableOfContentsItem class:\nText - the text of the item (usually, it is a chapter’s title) PageIndex - the page index of the text (null if it is just a node without content) Count - the number of sub-items (zero if the item hasn’t sub-items) this[int index] - gets a sub-item ExtractPage - extracts a text of the item Following code snippet shows how to extract TOC from EPUB document.\n// Create a text extractor using (EpubTextExtractor extractor = new EpubTextExtractor(@\u0026#34;document.epub\u0026#34;)) { // Print TOC on the screen PrintToc(extractor[0].TableOfContents, 0); } private static void PrintToc(IEnumerable tableOfContents, int depth) { // Use spaces to indicate the depth of the TOC item string spaces = new string(\u0026#39; \u0026#39;, depth); // Iterate over items foreach (TableOfContentsItem item in tableOfContents) { System.Console.Write(spaces); // Print the item\u0026#39;s text System.Console.Write(item.Text); // If item has a text (it\u0026#39;s not just a node) if (item.PageIndex.HasValue) { // Print the text length System.Console.Write(string.Format(\u0026#34; ({0})\u0026#34;, item.ExtractPage().Length)); } System.Console.WriteLine(); // If the item has children if (item.Count \u0026gt; 0) { // Print them PrintToc(item, depth + 1); } } } Media Type Detector for .one Files This feature allows detecting the media type of OneNote sections using NoteMediaTypeDetector class. Following code snippet shows how to use this feature.\n// Create a media type detector var detector = new NoteMediaTypeDetector(); // Detect a media type by the file name Console.WriteLine(detector.Detect(\u0026#34;section.one\u0026#34;); // Detect a media type by the content Console.WriteLine(detector.Detect(stream)); Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Text:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples - Github Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Text Feedback As always, you are welcome to share your feedback or suggestions to improve this product. Just create a new topic at our forum and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/parser/extract-toc-from-epub-documents-using-groupdocs.text-for-.net-18.4/","summary":"It gives us immense pleasure to announce the release of version 18.4 of GroupDocs.Text for .NET. The latest version allows extracting the table of contents from the EPUB documents. Furthermore, we have added the feature of detecting media type of .one file. Following sections provide details about the newly added features.\nExtracting TOC from EPUB Documents Using version 18.4, you can now extract TOC from the EPUB documents. To access the TOC, TableOfContents property of **EpubPackage **class is used.","title":"Extract TOC from EPUB Documents using GroupDocs.Text for .NET 18.4"},{"content":"\rGroupDocs team is pleased to announce the monthly release of GroupDocs.Search for .NET 18.4. Using the latest version, you can now perform indexing of more than 1 TB of text documents. We would recommend you to download the latest version for better user experience.\nSupport for Indexing of more than 1 TB of Text DocumentsUsing GroupDocs.Search for .NET version 18.4, you can now implement indexing of text documents of more than 1 TB in size. This enhancement increases the capabilities of API to handle huge text documents. Available Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search: Download - MSI Package NuGet - NuGet Install Documentation - API docs Examples/Plugins/Showcases - Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search FeedbackIf you have any suggestions, questions, or queries related to the .NET Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts. ","permalink":"https://blog.groupdocs.com/search/indexing-of-more-than-1-tb-of-text-documents-in-groupdocs.search-for-.net-18.4/","summary":"GroupDocs team is pleased to announce the monthly release of GroupDocs.Search for .NET 18.4. Using the latest version, you can now perform indexing of more than 1 TB of text documents. We would recommend you to download the latest version for better user experience.\nSupport for Indexing of more than 1 TB of Text DocumentsUsing GroupDocs.Search for .NET version 18.4, you can now implement indexing of text documents of more than 1 TB in size.","title":"Indexing of more than 1 TB of Text Documents in GroupDocs.Search for .NET 18.4"},{"content":"\rWe are delighted to announce the another monthly release of GroupDocs.Signature for Java v18.4. This release comes up with many features like searching QRCode and Barcode signatures in supported documents. Aside this, few improvements and fixes are also introduced in this version of the API. We would recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\neSignature API for Java v18.4 - Features Obtain Search ProgressObtain search progress while searching signatures in the documents. Following code sample shows how to obtain search progress: SignatureHandler handler = new SignatureHandler(signConfig); handler.SearchStarted.add(new ProcessStartEventHandler() { public void invoke(Object sender, ProcessStartEventArgs args) { System.out.println(\u0026#34;Search started for \u0026#34;+args.getTotalSignatures()+\u0026#34;-page(s) in Document \u0026#34;+args.getGuid()+\u0026#34; started at \u0026#34; +String.valueOf(args.getStarted())); } }); Search QR-Code and Barcode SignaturesSearch QR-Code and Barcode Signatures in following documents: PDF Cells Slides Words Image Following code sample shows how to search Barcode signature in the PDF document:\nPdfSearchBarcodeOptions searchOptions = new PdfSearchBarcodeOptions(); searchOptions.setText(\u0026#34;12345678\u0026#34;); // specify text math type searchOptions.setMatchType(TextMatchType.Contains); // search document SearchResult result = handler.search(\u0026#34;SignedBarCode.pdf\u0026#34;, searchOptions); Rectangle Property for Radial Gradient BrushRectangle property to set borders of ellipse for Radial Gradient Brush is introduced. Java eSignature API v18.4 - Improvements Separate Brush classes for following brush styles:\nSolid\nTexture\nRadial Gradient\nLinear Gradient\nUpdate dynamic Metered library with latest changes\nMark Brush property as Obsolete\ne-Signing API for Java 18.4 - Bug Fixes Multiple options on pages setup give duplicate page numbers Result of signing methods when document provided by URL Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for Java:\nDownload – JAR Files Documentation – API Docs Product Support Forum – Technical Support Forum for GroupDocs.Signature Examples – GitHub source code examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/java-e-signing-api-v18.4/","summary":"We are delighted to announce the another monthly release of GroupDocs.Signature for Java v18.4. This release comes up with many features like searching QRCode and Barcode signatures in supported documents. Aside this, few improvements and fixes are also introduced in this version of the API. We would recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\neSignature API for Java v18.","title":"Search Optical Signatures using Java E-Signing API v18.4"},{"content":"\rHere we go! Another monthly release of GroupDocs.Viewer for .NET is out now. In the current release, you will find new options to render print area and to include or exclude hidden columns and rows in the Cells documents. Furthermore, we have added the support of rendering POTX, PPTM, and EPS file formats. Below you find the list of new features, improvements, and fixes added in GroupDocs.Viewer for .NET 18.4.\nSupported File Formats We have added the support of following file formats in this version.\nPOTX (PowerPoint Open XML Presentation Template) PPTM (PowerPoint Open XML Macro-Enabled Presentation) EPS (Encapsulated PostScript) Managing Text Overflow when Rendering Cells Documents When cells documents are rendered into HTML, overflowed text inside the cell overlays subsequent cells until it meets non-empty cell. To expand the cell width to fit the overflowed text, we have added a new option TextOverflowMode.AutoFitColumn for CellsOptions.TextOverflowMode property of HtmlOptions, ImageOptions or PdfOptions classes. The following code sample shows how to use this feature.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.StoragePath = @\u0026#34;C:\\storage\u0026#34;; // Create html handler ViewerHtmlHandler htmlHandler = new ViewerHtmlHandler(config); string guid = \u0026#34;document.xlsx\u0026#34;; // Set Cells options to hide overflowing text HtmlOptions options = new HtmlOptions(); options.CellsOptions.TextOverflowMode = TextOverflowMode._AutoFitColumn_; // Get pages List pages = htmlHandler.GetPages(guid, options); foreach (PageHtml page in pages) { Console.WriteLine(\u0026#34;Page number: {0}\u0026#34;, page.PageNumber); Console.WriteLine(\u0026#34;Html content: {0}\u0026#34;, page.HtmlContent); } For more details on this feature, please visit this documentation article.\nRendering Print Area in Cells Documents Starting from 18.4, GroupDocs.Viewer provides a new option _RenderPrintAreaOnly _in _GroupDocs.Viewer.Converter.Options.CellsOptions_class which enables rendering sections of the worksheet(s) defined as print area. GroupDocs.Viewer renders each print area in a worksheet as a separate page. The following code sample shows how to use this feature.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.StoragePath = @\u0026#34;C:\\storage\u0026#34;; // Create html handler ViewerHtmlHandler htmlHandler = new ViewerHtmlHandler(config); string guid = \u0026#34;document.xlsx\u0026#34;; // Enable redering of print area HtmlOptions options = new HtmlOptions(); options.CellsOptions.RenderPrintAreaOnly = true; // Get pages List pages = htmlHandler.GetPages(guid, options); foreach (PageHtml page in pages) { Console.WriteLine(\u0026#34;Page number: {0}\u0026#34;, page.PageNumber); Console.WriteLine(\u0026#34;Html content: {0}\u0026#34;, page.HtmlContent); } For more details on this feature, please visit this documentation article.\nRendering Hidden Rows and Columns Sometimes cells document may contain hidden columns and rows. By default, hidden columns and rows are not rendered by the API. However, you can now control the inclusion of hidden content in the rendering results using _ShowHiddenRows _and ShowHiddenColumns properties of _GroupDocs.Viewer.Converter.Options.CellsOptions_class as shown in the following code sample.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.StoragePath = @\u0026#34;C:\\storage\u0026#34;; // Create html handler ViewerHtmlHandler htmlHandler = new ViewerHtmlHandler(config); string guid = \u0026#34;document.xlsx\u0026#34;; // Enable redering of hidden rows and columns HtmlOptions options = new HtmlOptions(); options.CellsOptions.ShowHiddenRows = true; options.CellsOptions.ShowHiddenColumns = true; // Get pages List pages = htmlHandler.GetPages(guid, options); foreach (PageHtml page in pages) { Console.WriteLine(\u0026#34;Page number: {0}\u0026#34;, page.PageNumber); Console.WriteLine(\u0026#34;Html content: {0}\u0026#34;, page.HtmlContent); } For more details on this feature, please visit this documentation article.\nSimple File Storage Interface Starting from v18.4, GroupDocs.Viewer provides the simple interface IFileStorage to implement custom file storage. This interface is an alternative to complex and overloaded ICacheDataHandler and IInputDataHandler interfaces. For sample implementations of custom file storage, please visit this documentation article.\nBug Fixes Following issues are fixed in version 18.4 of GroupDocs.Viewer for .NET.\nInvalid PDF when rendering Excel document with multiple pages per sheet DefaultFontName setting is not working for rendering Text documents into PDF and image Incorrect rendering of the content in header and footer of Word document Local links are ignored when rendering PDF to HTML Discrepancy when rendering as JPEG and HTML Improvements Following are the improvements that we have made in version 18.4.\nAdded prefix for CSS classes when rendering Email messages Minified CSS content when rendering into HTML with EnableMinification is set to true Improved rendering comments from Presentation documents Added support JpegQuality option when rendering Microsoft Project documents Extended support for DefaultFontName setting to PDF documents when rendering into HTML Responsive HTML output required in the case of HTML representation Related Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on our document viewer API.\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - GitHub Source Code Examples Sample Front End Apps - Open Source Document Viewer Applications Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/render-print-area-in-worksheets-groupdocs.viewer-for-.net-18.4/","summary":"Here we go! Another monthly release of GroupDocs.Viewer for .NET is out now. In the current release, you will find new options to render print area and to include or exclude hidden columns and rows in the Cells documents. Furthermore, we have added the support of rendering POTX, PPTM, and EPS file formats. Below you find the list of new features, improvements, and fixes added in GroupDocs.Viewer for .NET 18.","title":"Render Print Area in Worksheets using GroupDocs.Viewer for .NET 18.4"},{"content":"\rWe are excited to announce that we have released version 18.3 of GroupDocs.Watermark for Java. The latest version supports replacing text and image for the found watermarks across all the supported formats. It also allows editing of the objects that can be considered as the watermark in PDF documents. Following are some salient features of GroupDocs.Watermark for Java 18.3\nReplacing Text and Image for Found Watermarks The latest version allows replacing text and image for the found possible watermarks that we get in a search result. Following sections demonstrate how to replace text and image for the found watermarks.\nReplacing Text Document doc = Document.load(\u0026#34;D:\\\\input.pptx\u0026#34;); TextSearchCriteria searchCriteria = new TextSearchCriteria(\u0026#34;test\u0026#34;, false); PossibleWatermarkCollection watermarks = doc.findWatermarks(searchCriteria); for (PossibleWatermark watermark : watermarks) { try { watermark.setText(\u0026#34;passed\u0026#34;); } catch (Exception e) { // Found entity may not support text editing // Passed argument can have inappropriate value // Process such cases here } } doc.save(\u0026#34;D:\\\\output.pptx\u0026#34;); doc.close(); Replacing Image String imagePath = \u0026#34;D:\\\\test.png\u0026#34;; File imageFile = new File(imagePath); byte[] imageBytes = new byte[(int)imageFile.length()]; InputStream imageInputStream = new FileInputStream(imageFile); imageInputStream.read(imageBytes); imageInputStream.close(); Document doc = Document.load(\u0026#34;D:\\\\input.pdf\u0026#34;); SearchCriteria searchCriteria = new ImageDctHashSearchCriteria(\u0026#34;D:\\\\logo.bmp\u0026#34;); PossibleWatermarkCollection watermarks = doc.findWatermarks(searchCriteria); for (PossibleWatermark watermark : watermarks) { try { watermark.setImageData(imageBytes); } catch (Exception e) { // Found entity may not support image replacing // Passed image can have inappropriate format // Process such cases here } } doc.save(\u0026#34;D:\\\\output.pdf\u0026#34;); doc.close(); For more details on this feature, please visit this documentation article.\nEditing Watermark Objects in PDF Documents Replacing Text for Particular ObjectsYou can now replace text for the particular XObjects, artifacts and the annotations in a PDF document. Furthermore, replacing text with formatting is also supported. Following sections demonstrate this feature with code samples. Replacing Text PdfDocument doc = Document.load(PdfDocument.class, \u0026#34;D:\\\\sample.pdf\u0026#34;); // Replace text for XObjects for (PdfXObject xObject : doc.getPages().get_Item(0).getXObjects()) { if (xObject.getText().contains(\u0026#34;Test\u0026#34;)) { xObject.setText(\u0026#34;Passed\u0026#34;); } } // Replace text for artifacts for (PdfArtifact artifact : doc.getPages().get_Item(0).getArtifacts()) { if (artifact.getText().contains(\u0026#34;Test\u0026#34;)) { artifact.setText(\u0026#34;Passed\u0026#34;); } } // Replace text for annotations for (PdfAnnotation annotation : doc.getPages().get_Item(0).getAnnotations()) { if (annotation.getText().contains(\u0026#34;Test\u0026#34;)) { annotation.setText(\u0026#34;Passed\u0026#34;); } } doc.save(\u0026#34;D:\\\\output.pdf\u0026#34;); doc.close(); Replacing Text with Formatting PdfDocument doc = Document.load(PdfDocument.class, \u0026#34;D:\\\\sample.pdf\u0026#34;); // Replace text for XObjects for (PdfXObject xObject : doc.getPages().get_Item(0).getXObjects()) { if (xObject.getText().contains(\u0026#34;Test\u0026#34;)) { xObject.getFormattedTextFragments().clear(); xObject.getFormattedTextFragments().add(\u0026#34;Passed\u0026#34;, new Font(\u0026#34;Calibri\u0026#34;, 19, FontStyle.Bold), Color.getRed(), Color.getAqua()); } } // Replace text for artifacts for (PdfArtifact artifact : doc.getPages().get_Item(0).getArtifacts()) { if (artifact.getText().contains(\u0026#34;Test\u0026#34;)) { artifact.getFormattedTextFragments().clear(); artifact.getFormattedTextFragments().add(\u0026#34;Passed\u0026#34;, new Font(\u0026#34;Calibri\u0026#34;, 19, FontStyle.Bold), Color.getRed(), Color.getAqua()); } } // Replace text for annotations for (PdfAnnotation annotation : doc.getPages().get_Item(0).getAnnotations()) { if (annotation.getText().contains(\u0026#34;Test\u0026#34;)) { annotation.getFormattedTextFragments().clear(); annotation.getFormattedTextFragments().add(\u0026#34;Passed\u0026#34;, new Font(\u0026#34;Calibri\u0026#34;, 19, FontStyle.Bold), Color.getRed(), Color.getAqua()); } } doc.save(\u0026#34;D:\\\\output.pdf\u0026#34;); doc.close(); Replacing Image for Particular Objects The version 18.3 also supports replacing image for the particular XObjects, artifacts and the annotations as shown in the following code sample.\nString imagePath = \u0026#34;D:\\\\test.png\u0026#34;; File imageFile = new File(imagePath); byte[] imageBytes = new byte[(int)imageFile.length()]; InputStream imageInputStream = new FileInputStream(imageFile); imageInputStream.read(imageBytes); imageInputStream.close(); PdfDocument doc = Document.load(PdfDocument.class, \u0026#34;D:\\\\sample.pdf\u0026#34;); // Replace image for XObjects for (PdfXObject xObject : doc.getPages().get_Item(0).getXObjects()) { if (xObject.getImage() != null) { xObject.setImage(new PdfWatermarkableImage(imageBytes)); } } // Replace image for artifacts for (PdfArtifact artifact : doc.getPages().get_Item(0).getArtifacts()) { if (artifact.getImage() != null) { artifact.setImage(new PdfWatermarkableImage(imageBytes)); } } // Replace image for annotations for (PdfAnnotation annotation : doc.getPages().get_Item(0).getAnnotations()) { if (annotation.getImage() != null) { annotation.setImage(new PdfWatermarkableImage(imageBytes)); } } doc.save(\u0026#34;D:\\\\output.pdf\u0026#34;); doc.close(); For more details on this feature, please visit this documentation article.\nAvailable Channels and Resources Download - JAR Documentation - API Documentation Examples - Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Watermark Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/watermark/edit-watermark-text-and-image-using-groupdocs.watermark-for-java-18.3/","summary":"We are excited to announce that we have released version 18.3 of GroupDocs.Watermark for Java. The latest version supports replacing text and image for the found watermarks across all the supported formats. It also allows editing of the objects that can be considered as the watermark in PDF documents. Following are some salient features of GroupDocs.Watermark for Java 18.3\nReplacing Text and Image for Found Watermarks The latest version allows replacing text and image for the found possible watermarks that we get in a search result.","title":"Edit Watermark's Text and Image using GroupDocs.Watermark for Java 18.3"},{"content":"\rShare this issue:\nMonthly Newsletter April 2018\nJava APIs to Add \u0026amp; Remove Watermarks from\nPDF, Microsoft Office, Email and Image File Formats\nPerform complex watermarking operations with simple syntax, easy to use methods and a few lines of code within Java applications.\nGroupDocs.Watermark for Java is a powerful document watermarking API to add, search and remove watermarks in popular business and image file formats. The watermarks added by the API are hard to be automatically removed by third-party tools, while it can be easily used for searching and removing previously added watermarks of popular types.\nAvailable for: .NET\nProduct News\nASP.NET MVC Modern UI Document Viewer with File Management Support GroupDocs.Viewer for .NET announces ASP.NET MVC Modern UI Document Viewer that comes up with new features and improvements for Paging, .MSG Attachments and File Manager to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments. Read more details here.\nDocument Viewer Java Servlets App with File Manager Search and Print Features GroupDocs.Viewer for Java announces Document Viewer App (Modern UI) that comes up with new features and improvements for Search, Print and File Manager to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments. Read more details here.\nRead and Remove Metadata of Business Documents and Image formats in .NET GroupDocs.Metadata for .NET announces ASP.NET WebForms Document Metadata Editor app that provides easy ways to manage metadata in various formats. Users can read and remove metadata of documents (Words, Spreadsheet, Presentation, PDF, CAD, MSG, EML) and images (JPEG, PNG, GIF) with download the original or updated document. Read more details here.\nAdd Single-Column Table-Row Data Bands in Document and Emails GroupDocs.Assembly extends abilities to work with single-column table-row data bands in word processing, spreadsheet, presentation, and email messages with HTML and RTF bodies within .NET and Java applications of all types.\nAdd User-Wise Permission with Annotations in .NET GroupDocs.Annotation for .NET API supports adding user wise permission with annotations within all types of .NET applications. Many other features like export of strikeout and underline annotation for PDF are also improved in this version. Read more details here.\nFrom the Library\nHow to: Control Image Quality when Rendering PDF Document as HTML in .NET? GroupDocs.Viewer for .NET now supports rendering XLTM and XLTX file formats. Users can also control the image quality when rendering PDF documents as HTML within .NET applications. Read more details here.\nHow to: Convert to/from POTX and POTM in Java? GroupDocs.Conversion for Java supports PPTM and PPSM formats, and allows converting between new document formats such as POTX and POTM. Some major improvements like Cells to SVG conversion, Words to GIF and setting up custom font directories are also announced. Read more details here.\nHow to: Set Text Shadow in Text Signatures in Business Documents? Docs.Signature for Java allows users to set text shadow in text signatures for Slides, Words and Cells documents. It also supports setting text shadow effect for text as image signature for all document types. Read more details here.\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite.\nGroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite.\nGroupDocs.Comparison for .NET 18.3 – ColumnMerger problem while comparing documents in fixed.\nGroupDocs.Annotation for Java 17.10.3 - Import added annotations from exported PDF document.\nCheck out for more releases during last month\n","permalink":"https://blog.groupdocs.com/total/groupdocs-newsletter-april-2018-document-manipulation-api-updates/","summary":"Share this issue:\nMonthly Newsletter April 2018\nJava APIs to Add \u0026amp; Remove Watermarks from\nPDF, Microsoft Office, Email and Image File Formats\nPerform complex watermarking operations with simple syntax, easy to use methods and a few lines of code within Java applications.\nGroupDocs.Watermark for Java is a powerful document watermarking API to add, search and remove watermarks in popular business and image file formats. The watermarks added by the API are hard to be automatically removed by third-party tools, while it can be easily used for searching and removing previously added watermarks of popular types.","title":"GroupDocs Newsletter April 2018 – Document Manipulation API Updates and Code Examples"},{"content":"\rWe are really delighted to announce the release of version 18.3 of GroupDocs.Watermark for .NET. The latest version supports editing of the objects that can be considered as the watermark in PDF documents. Furthermore, the feature of replacing text and image for the found watermarks is also added for all the supported formats. Following are some highlighted features of version 18.3.\nEditing Watermark Objects in PDF Documents Replacing Text for Particular Objects You can replace text for the particular XObjects, artifacts and the annotations in a PDF document. Furthermore, replacing text with formatting is also supported. Following sections demonstrate this feature with code samples.\nReplacing Text using (PdfDocument doc = Document.Load(@\u0026#34;D:\\xobjects.pdf\u0026#34;)) { // Replace text for XObjects foreach (PdfXObject xObject in doc.Pages[0].XObjects) { if (xObject.Text.Contains(\u0026#34;Test\u0026#34;)) { xObject.Text = \u0026#34;Passed\u0026#34;; } } // Replace text for artifacts foreach (PdfArtifact artifact in doc.Pages[0].Artifacts) { if (artifact.Text.Contains(\u0026#34;Test\u0026#34;)) { artifact.Text = \u0026#34;Passed\u0026#34;; } } // Replace text for annotations foreach (PdfAnnotation annotation in doc.Pages[0].Annotations) { if (annotation.Text.Contains(\u0026#34;Test\u0026#34;)) { annotation.Text = \u0026#34;Passed\u0026#34;; } } doc.Save(@\u0026#34;D:\\output.pdf\u0026#34;); } Replacing Text with Formatting using (PdfDocument doc = Document.Load(@\u0026#34;D:\\xobjects.pdf\u0026#34;)) { // Replace text for XObjects foreach (PdfXObject xObject in doc.Pages[0].XObjects) { if (xObject.Text.Contains(\u0026#34;Test\u0026#34;)) { xObject.FormattedTextFragments.Clear(); xObject.FormattedTextFragments.Add(\u0026#34;Passed\u0026#34;, new Font(\u0026#34;Calibri\u0026#34;, 19, FontStyle.Bold), Color.Red, Color.Aqua); } } // Replace text for artifacts foreach (PdfArtifact artifact in doc.Pages[0].Artifacts) { if (artifact.Text.Contains(\u0026#34;Test\u0026#34;)) { artifact.FormattedTextFragments.Clear(); artifact.FormattedTextFragments.Add(\u0026#34;Passed\u0026#34;, new Font(\u0026#34;Calibri\u0026#34;, 19, FontStyle.Bold), Color.Red, Color.Aqua); } } // Replace text for annotations foreach (PdfAnnotation annotation in doc.Pages[0].Annotations) { if (annotation.Text.Contains(\u0026#34;Test\u0026#34;)) { annotation.FormattedTextFragments.Clear(); annotation.FormattedTextFragments.Add(\u0026#34;Passed\u0026#34;, new Font(\u0026#34;Calibri\u0026#34;, 19, FontStyle.Bold), Color.Red, Color.Aqua); } } doc.Save(@\u0026#34;D:\\output.pdf\u0026#34;); } Replacing Image for Particular ObjectsThe version 18.3 also supports replacing image for the particular XObjects, artifacts and the annotations as shown in the following code sample. using (PdfDocument doc = Document.Load(@\u0026#34;D:\\xobjects.pdf\u0026#34;)) { // Replace image for XObjects foreach (PdfXObject xObject in doc.Pages[0].XObjects) { if (xObject.Image != null) { xObject.Image = new PdfWatermarkableImage(File.ReadAllBytes(@\u0026#34;D:\\test.png\u0026#34;)); } } // Replace image for artifacts foreach (PdfArtifact artifact in doc.Pages[0].Artifacts) { if (artifact.Image != null) { artifact.Image = new PdfWatermarkableImage(File.ReadAllBytes(@\u0026#34;D:\\test.png\u0026#34;)); } } // Replace image for annotations foreach (PdfAnnotation annotation in doc.Pages[0].Annotations) { if (annotation.Image != null) { annotation.Image = new PdfWatermarkableImage(File.ReadAllBytes(@\u0026#34;D:\\test.png\u0026#34;)); } } doc.Save(@\u0026#34;D:\\output.pdf\u0026#34;); } Replacing Text and Image for Found Watermarks The latest version allows replacing text and image for the found possible watermarks that we get in a search result. Following sections demonstrate how to replace text and image for the found watermarks.\nReplacing Text using (Document doc = Document.Load(@\u0026#34;D:\\input.pptx\u0026#34;)) { TextSearchCriteria searchCriteria = new TextSearchCriteria(\u0026#34;test\u0026#34;, false); PossibleWatermarkCollection watermarks = doc.FindWatermarks(searchCriteria); foreach (PossibleWatermark watermark in watermarks) { try { watermark.Text = \u0026#34;passed\u0026#34;; } catch (Exception e) { // Found entity may not support text editing // Passed argument can have inappropriate value // Process such cases here } } doc.Save(@\u0026#34;D:\\output.pptx\u0026#34;); } Replacing Image byte[] imageData = File.ReadAllBytes(@\u0026#34;D:\\new_logo.png\u0026#34;); using (Document doc = Document.Load(@\u0026#34;D:\\input.pdf\u0026#34;)) { SearchCriteria searchCriteria = new ImageDctHashSearchCriteria(@\u0026#34;D:\\logo.bmp\u0026#34;); PossibleWatermarkCollection watermarks = doc.FindWatermarks(searchCriteria); foreach (PossibleWatermark watermark in watermarks) { try { watermark.ImageData = imageData; } catch (Exception e) { // Found entity may not support image replacing // Passed image can have inappropriate format // Process such cases here } } doc.Save(@\u0026#34;D:\\output.pdf\u0026#34;); } For more details on this feature, please visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Watermark:\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples - Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum - Technical Support Forum for GroupDocs.Watermark Feedback As always, we would love to hear your queries and suggestions at our forum.\n","permalink":"https://blog.groupdocs.com/watermark/edit-watermark-objects-in-pdf-documents-using-groupdocs.watermark-for-.net-18.3/","summary":"We are really delighted to announce the release of version 18.3 of GroupDocs.Watermark for .NET. The latest version supports editing of the objects that can be considered as the watermark in PDF documents. Furthermore, the feature of replacing text and image for the found watermarks is also added for all the supported formats. Following are some highlighted features of version 18.3.\nEditing Watermark Objects in PDF Documents Replacing Text for Particular Objects You can replace text for the particular XObjects, artifacts and the annotations in a PDF document.","title":"Edit Watermark Objects in PDF Documents using GroupDocs.Watermark for .NET 18.3"},{"content":"\rWe keep looking forward to bringing you more features and therefore, we have released version 18.3 of GroupDocs.Text for .NET providing the support of extracting formatted text from CHM documents. The latest version also allows you to extract text by pages and extract table of content from CHM documents. The following sections will provide you the details about the new features of the API.\nExtracting Formatted Text from CHM Documents GroupDocs.Text provides a couple of ways to extract formatted text from CHM documents. You can extract the text line by line or as a whole as described below.\nExtracting Line of Characters Following code sample shows how to extract a line of characters from a CHM document.\n// Create a text extractor for chm documents using (var extractor = new ChmFormattedTextExtractor(stream)) { // Extract a line of the text string line = extractor.ExtractLine(); // If the line is null, then the end of the file is reached while (line != null) { // Print a line to the console Console.WriteLine(line); // Extract another line line = extractor.ExtractLine(); } } Extracting all Characters Following code sample shows how to extract all characters at once from a CHM document.\n// Create a text extractor for chm documents using (var extractor = new ChmFormattedTextExtractor(stream)) { // Extract a text Console.WriteLine(extractor.ExtractAll()); } You can also use a document formatter to extract text in a particular format. For more details, please visit this documentation article.\nExtracting Text by Pages from CHM Documents Using version 18.3, you can also extract text by pages from the CHM documents. For page by page text extraction, we have added the implementation of IPageTextExtractor interface to ChmTextExtractor class. For more details on this feature, please visit this documentation article.\nExtracting TOC from CHM Documents We have also added a useful feature of extracting the table of content from CHM documents. To access the TOC, TableOfContents property of ChmTextExtractor class is used. Following code sample shows how to extract the table of content from a CHM document.\n// Create a text extractor using (ChmTextExtractor extractor = new ChmTextExtractor(@\u0026#34;C:\\Sources\\GroupDocs.Text\\TestData\\unit\\chm\\VBOB6.CHM\u0026#34;)) { // Print TOC on the screen PrintToc(extractor.TableOfContents, 0); } private static void PrintToc(IEnumerable tableOfContents, int depth) { // Use spaces to indicate the depth of the TOC item string spaces = new string(\u0026#39; \u0026#39;, depth); // Iterate over items foreach (TableOfContentsItem item in tableOfContents) { System.Console.Write(spaces); // Print the item\u0026#39;s text System.Console.Write(item.Text); // If item has a text (it\u0026#39;s not just a node) if (item.PageIndex.HasValue) { // Print the text length System.Console.Write(string.Format(\u0026#34; ({0})\u0026#34;, item.ExtractPage().Length)); } System.Console.WriteLine(); // If the item has children if (item.Count \u0026gt; 0) { // Print them PrintToc(item, depth + 1); } } } For more details on this feature, please visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Text:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples - Github Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Text Feedback As always, you are welcome to share your feedback or suggestions to improve this product. Just create a new topic at our forum and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/parser/extract-formatted-text-from-chm-documents-using-groupdocs.text-for-.net-18.3/","summary":"We keep looking forward to bringing you more features and therefore, we have released version 18.3 of GroupDocs.Text for .NET providing the support of extracting formatted text from CHM documents. The latest version also allows you to extract text by pages and extract table of content from CHM documents. The following sections will provide you the details about the new features of the API.\nExtracting Formatted Text from CHM Documents GroupDocs.","title":"Extract Formatted Text from CHM Documents using GroupDocs.Text for .NET 18.3"},{"content":"\rAnother monthly release of GroupDocs.Conversion for .NET 18.3 is on-board. This release covers some new features, few improvement and a bug fix. API allows developers to set default zoom when converting to Cells, Words and Slides. However, zoom option for PDF conversion is improved, PSD to PDF conversion is improved and XPS to PDF conversion issue is fixed. For further details included in this month’s release, please visit the release notes\nFeatures Set default zoom when converting to Cells, Words and Slides Specific options for converting CSV documents New Properties Introduced DefaultFont in CellsLoadOptions Class var config = new ConversionConfig(); var conversionHandler = new ConversionHandler(config); var loadOptions = new CellsLoadOptions(); loadOptions.DefaultFont = \u0026#34;Verdana\u0026#34;; var saveOptions = new PdfSaveOptions(); var convertedDocument = conversionHandler.Convert(\u0026#34;source.xlsx\u0026#34;, loadOptions, saveOptions); Detect page orientation for the supported formats var documentInfo = conversionHandler.GetDocumentInfo(\u0026#34;source.docx\u0026#34;); Console.Write(documentInfo.PageOrientation); Show watermark behind the text var saveOptions = new PdfSaveOptions(); saveOptions.WatermarkOptions.Background = true; Improvements Set zoom when converting to Pdf document Update API for getting document info to detect page orientation for the supported formats Set default font to replace all missing fonts when converting Words and Cells document Conversion improvement when converting Psd and Odg to Pdf Bug Fixes XPS to PDF conversion failed API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Wiki Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/set-default-zoom-when-converting-to-word-in-groupdocs.conversion-for-.net-18.3/","summary":"Another monthly release of GroupDocs.Conversion for .NET 18.3 is on-board. This release covers some new features, few improvement and a bug fix. API allows developers to set default zoom when converting to Cells, Words and Slides. However, zoom option for PDF conversion is improved, PSD to PDF conversion is improved and XPS to PDF conversion issue is fixed. For further details included in this month’s release, please visit the release notes","title":"Set a Watermark as Background in GroupDocs.Conversion for .NET 18.3"},{"content":"\rGroupDocs team is pleased to announce another release of ASP.NET WebForms Document Metadata Editor App using GroupDocs.Metadata for .NET API. This release v2.0.0 comes up with features to provide easy ways to manage metadata in various formats. It enables user to read and remove the metadata of documents (Words, Spreadsheet, Presentation, PDF, CAD, MSG, EML) and images (JPEG, PNG, GIF) with download the original or updated document and many more features. We recommend you to download and explore this version.\nMetadata Editing API Features - OverviewFollowing are the features introduced in this version v2.0.0. View CAD (DWG, DXF) Metadata information View Email (EML, MSG) Metadata information Clean CAD (DWG, DXF) Metadata information Clean Email (EML, MSG) Metadata and Attachments information Export metadata to excel (XLSX) Export metadata to CSV Improved download feature of original and cleaned metadata files Updated and Improved UI For details about the features supported by the app, please visit the Features Overview.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Download - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins - Source Code Examples, Plugins ASP.NET WebForms Document Metadata Editor App- Source Code Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/asp.net-webforms-document-metadata-editor-app-with-groupdocs.metadata-api-dotnet/","summary":"GroupDocs team is pleased to announce another release of ASP.NET WebForms Document Metadata Editor App using GroupDocs.Metadata for .NET API. This release v2.0.0 comes up with features to provide easy ways to manage metadata in various formats. It enables user to read and remove the metadata of documents (Words, Spreadsheet, Presentation, PDF, CAD, MSG, EML) and images (JPEG, PNG, GIF) with download the original or updated document and many more features.","title":"ASP.NET WebForms Document Metadata Editor App using Metadata Editing API for .NET"},{"content":"\rGroupDocs team is proudly announcing the support for single-column table-row data bands in monthly release of GroupDocs.Assembly for .NET 18.2. Using the latest version, you can now add single-column table-row data bands in word processing, spreadsheet, presentation, and email messages with HTML and RTF bodies. We recommend you to download and use the latest version of API.\nFeatures IntroducedGroupDocs.Assembly for .NET extends abilities to work with single-column table-row data bands and conditional blocks. Following new features are introduced in version 18.2 of the API. Single-Column Table-Row data bands for Word Processing documents Single-Column Table-Row data bands for Spreadsheet documents Single-Column Table-Row data bands for Presentation documents Single-Column Table-Row data bands for Email Messages with HTML and RTF bodies Working with Table-Row Data BandsA table-row data band is a data band whose body occupies single or multiple rows of a single document table. The body of such a band starts at the beginning of the first occupied row and ends at the end of the last occupied row as follows: Working with Table-Row Conditional BlocksA table-row conditional block is a conditional block whose body occupies single or multiple rows of a single document table. The body of such a block (as well as the body of its every template option) starts at the beginning of the first occupied row and ends at the end of the last occupied row as follows: Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly for .NET: Download - MSI Package as well as Zipped DLLs NuGet - Nuget Installation Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly FeedbackWe will be happy to know your thoughts and we will try to enhance your experience with the GroupDocs.Assembly for .NET API. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/assembly/support-for-single-column-table-row-data-bands-in-groupdocs.assembly-for-.net-18.2/","summary":"GroupDocs team is proudly announcing the support for single-column table-row data bands in monthly release of GroupDocs.Assembly for .NET 18.2. Using the latest version, you can now add single-column table-row data bands in word processing, spreadsheet, presentation, and email messages with HTML and RTF bodies. We recommend you to download and use the latest version of API.\nFeatures IntroducedGroupDocs.Assembly for .NET extends abilities to work with single-column table-row data bands and conditional blocks.","title":"Support for Single-Column Table-Row Data Bands in GroupDocs.Assembly for .NET 18.2"},{"content":"\rAt GroupDocs, we keep on updating our products for better user experience. In this regard, we are excitedly announcing another monthly release of GroupDocs.Assembly for Java 18.2. Using the latest version, you can now add single-column table-row data bands in word processing, spreadsheet, presentation, and email messages with HTML and RTF bodies. We would recommend you to download and integrate this latest release.\nFeatures IntroducedGroupDocs.Assembly for Java extends abilities to work with single-column table-row data bands and conditional blocks. Following new features are introduced in version 18.2 of the API. Single-Column Table-Row data bands for Word Processing documents Single-Column Table-Row data bands for Spreadsheet documents Single-Column Table-Row data bands for Presentation documents Single-Column Table-Row data bands for Email Messages with HTML and RTF bodies Working with Table-Row Data BandsA table-row data band is a data band whose body occupies single or multiple rows of a single document table. The body of such a band starts at the beginning of the first occupied row and ends at the end of the last occupied row as follows: Working with Table-Row Conditional BlocksA table-row conditional block is a conditional block whose body occupies single or multiple rows of a single document table. The body of such a block (as well as the body of its every template option) starts at the beginning of the first occupied row and ends at the end of the last occupied row as follows: Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly: Download - JAR File Documentation - API Documentation Examples/Plugins/Showcases - Github source code examples Product Support Forum - Technical support forum for GroupDocs.Assembly FeedbackWe\u0026rsquo;d like to hear your valuable feedback. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/assembly/work-with-table-row-data-bands-and-conditional-blocks-in-groupdocs.assembly-for-java-18.2/","summary":"At GroupDocs, we keep on updating our products for better user experience. In this regard, we are excitedly announcing another monthly release of GroupDocs.Assembly for Java 18.2. Using the latest version, you can now add single-column table-row data bands in word processing, spreadsheet, presentation, and email messages with HTML and RTF bodies. We would recommend you to download and integrate this latest release.\nFeatures IntroducedGroupDocs.Assembly for Java extends abilities to work with single-column table-row data bands and conditional blocks.","title":"Work with Table-Row Data Bands and Conditional Blocks in GroupDocs.Assembly for Java 18.2"},{"content":"\rGroupDocs is pleased to announce another release of ASP.NET MVC Modern UI Document Viewer v1.5.0 using GroupDocs.Viewer for .NET 18.3. This release v1.5.0 comes up with new features and improvements for Paging, .MSG Attachments and File Manager to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments and many more features.\nLet\u0026rsquo;s have a look at it.\nWe recommend you to download and explore this new version.\nFeatures Overview Following are the features introduced in this version v1.5.0.\nUpload Document View List of Uploaded Documents Select Document from Available Documents List Improved Paging for Thumbnails and MSG File Attachments Improved \u0026amp; Optimized the UI, Scripts and Controller/API\u0026rsquo;s Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer.\nDownload - MSI Package as well as Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum for GroupDocs.Viewer for .NET Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this front-end application. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs.viewer-.net-asp.net-mvc-document-viewer-app-v1.5.0-file-manager/","summary":"GroupDocs is pleased to announce another release of ASP.NET MVC Modern UI Document Viewer v1.5.0 using GroupDocs.Viewer for .NET 18.3. This release v1.5.0 comes up with new features and improvements for Paging, .MSG Attachments and File Manager to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments and many more features.\nLet\u0026rsquo;s have a look at it.\nWe recommend you to download and explore this new version.","title":"GroupDocs.Viewer for .NET - ASP.NET MVC Document Viewer App v1.5.0 with File Manager"},{"content":"\rWe are excited to announce that the first version of GroupDocs.Watermark for Java has been released. GroupDocs.Watermark for Java makes it simple to perform watermarking operations in various document and image formats. The API facilitates the Java developers with simple syntax, easy to use methods and a few lines of code to perform any watermarking operation. Using GroupDocs.Watermark, you can add, search, and remove watermark from many popular document and image formats. Continue to read more about the API\u0026rsquo;s features.\nGroupDocs.Watermark for Java - Supported Features Following are the salient features exposed by GroupDocs.Watermark for Java.\nAdding text/image watermark to supported document formats Searching and removing text/image watermark in supported document formats Searching watermarks in particular objects Adding watermark to images inside a document Working with existing watermark objects in supported document formats Extracting information of watermark objects in a document PDF document rasterization Getting document information Searching watermarks by text formatting (font, color etc.) Working with hyperlinks associated with document entities (all formats) Setting background image for charts in Excel and PowerPoint document Working with PDF and email attachments Using Dynabic.Metered account to use API in licensed mode GroupDocs.Watermark for Java also provides features that are specific to the Word, Excel, Powerpoint, Visio, PDF and Email formats.\nWorking with Word formats Working with Excel formats Working with PowerPoint formats Working with Visio formats Working with PDF documents Working with Email formats For more details on the supported feature, please visit the article: GroupDocs.Watermark Features\nJava Watermarking API - Supported File Formats The following is the list of file formats supported by GroupDocs.Watermark.\nPDF (pdf) Word (doc, docx, dot, odt, dotx, docm, dotm, rtf) Excel (xls, xlsx, xlt, xltx, xlsm, xltm) PowerPoint (ppt, pptx, pps, ppsx, potx, pptm, ppsm, potm) Visio (vsdx, vstx, vssx, vsdm, vssm, vstm, vdx, vsx, vtx) PNG (png) BMP (bmp) GIF (gif) JPEG (jpg, jpeg) TIFF (tif, tiff) JPEG2000 (jp2) WEBP (webp) Email (eml, msg, emlx, oft) For more details on supported feature, please visit the article: Supported File Formats\nExample Business Cases There might be the case that a company has changed its name and logo and most of the working documents still contain the watermark with old name and logo. In this case, if the CEO wants to remove the watermark from the documents, GroupDocs.Watermark will be helpful.\nIn order to elaborate real life needs, we have envisaged some real life cases. Please feel free to visit the article: Working with Business Cases.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Watermark:\nDownload - JAR Documentation - API Documentation Examples - Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Watermark Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/watermark/introducing-groupdocs.watermark-for-java-a-convenient-watermarking-api/","summary":"We are excited to announce that the first version of GroupDocs.Watermark for Java has been released. GroupDocs.Watermark for Java makes it simple to perform watermarking operations in various document and image formats. The API facilitates the Java developers with simple syntax, easy to use methods and a few lines of code to perform any watermarking operation. Using GroupDocs.Watermark, you can add, search, and remove watermark from many popular document and image formats.","title":"Convenient Watermarking for Documents and Images using Java"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Conversion for Java 17.12. This release comes with support of new document formats such as POTX and POTM. Multitude of improvements and bug fixes are also introduced in this release. Improvements such as Cells to SVG conversion, Words to Gif and setting up custom font directories are in the list. Moreover, issues like file reading error and saving complete multipage document to single image are resolved. Please take a look over the release notes to get an idea about the new features, improvements and bug fixes.\nFeatures Conversion from/to POTX and POTM Support of PPTM and PPSM Back and forth conversion for XLTX and XLTM Implement conversion from/to Jpeg2000 Improvements Check for unsupported Excel 95 XLS file format and throw an exception Cells to SVG conversion improvement Diagram to SVG conversion improvement Set custom font directories Possibility to convert one sheet per page or depending on print area when converting Cells to Pdf Implement possibility to optimize target Pdf for minimum file size when converting Cells to Pdf Image to SVG conversion improvement Words to Gif conversion improvement Bug Fixes Conversion for Doc with macro to Docx failed System.ArgumentException when converting Mobi to Ppt or Pps Conversion of specific pptx to jpg results wrong output PDF to TIF conversion, InvalidValueFormatException Index was outside the bounds of the array, while Converting .xlsx File To PDF Numerous new exceptions when using Conversion 17.3.0 The protected presentation throws some other exception than PasswordProtectedException Certain presentation slide is not converting properly to any output format File reading error Does the API supports output HTML styles Performance issue while converting PDF files Getting file\u0026rsquo;s metadata using Document Conversion API Saving complete multipage document to image is not supported Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nAPI Home - GroupDocs.Conversion for Java Download - GroupDocs.Conversion for Java Download Documentation - Product Documentation Examples/Plugins/Showcases - GitHub source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion ","permalink":"https://blog.groupdocs.com/conversion/conversion-potx-format-supported-groupdocs.conversion-java-17.12/","summary":"We are pleased to announce another monthly release of GroupDocs.Conversion for Java 17.12. This release comes with support of new document formats such as POTX and POTM. Multitude of improvements and bug fixes are also introduced in this release. Improvements such as Cells to SVG conversion, Words to Gif and setting up custom font directories are in the list. Moreover, issues like file reading error and saving complete multipage document to single image are resolved.","title":"Conversion to POTX is supported in GroupDocs.Conversion for Java 17.12"},{"content":"\rThis month\u0026rsquo;s release of GroupDocs.Comparison for .NET 18.3 covers some improvements and one bug fix. Features like Comparison.Imaging and registration of changes by groups are improved. ColumnMerger problem is now fixed. You can follow release notes here. We\u0026rsquo;d recommend you to download latest version of the API and share your feedback.\nGroupDocs Document Comparison API - Improvements Image update changes by shapes, zone and groups Comparison.Imaging GroupDocs.Comparison for .NET 18.3 – Bug Fixes Fix ColumnMerger problem Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nDownloads - MSI Package and Zipped Format Nuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/columnmerger-problem-is-fixed-in-groupdocs.comparison-for-.net-18.3/","summary":"This month\u0026rsquo;s release of GroupDocs.Comparison for .NET 18.3 covers some improvements and one bug fix. Features like Comparison.Imaging and registration of changes by groups are improved. ColumnMerger problem is now fixed. You can follow release notes here. We\u0026rsquo;d recommend you to download latest version of the API and share your feedback.\nGroupDocs Document Comparison API - Improvements Image update changes by shapes, zone and groups Comparison.Imaging GroupDocs.Comparison for .NET 18.","title":"ColumnMerger problem is fixed in GroupDocs.Comparison for .NET 18.3"},{"content":"\rWe are pleased to announce the release of version 18.3 of GroupDocs.Viewer for .NET. Using the latest version, you can now render XLTM and XLTX file formats. We have also added settings to control the image quality when rendering PDF documents as HTML. Furthermore, this version came up with 11 improvements and bug fixes. Let’s have a quick overview of GroupDocs.Viewer for .NET 18.3.\nSupported File Formats We have added the support of following file formats in version 18.3 of GroupDocs.Viewer for .NET.\nXLTM (Excel Open XML Macro-Enabled Spreadsheet) XLTX (Excel Open XML Spreadsheet Template) Specifying Image Quality when Rendering PDF Documents as HTML When rendering PDF documents as HTML, GroupDocs.Viewer creates a single image resource which contains all the images from the PDF document page. The API uses this image as the background for output HTML document. Since version 18.3, we have added the settings that are used to control the quality of the image resource. Following code sample shows how to get the best quality images when rendering PDF document as HTML.\n//Init viewer configuration ViewerConfig viewerConfig = new ViewerConfig(); viewerConfig.StoragePath = \u0026#34;c:\\\\storage\u0026#34;; // Init ViewerHtmlHandler ViewerHtmlHandler viewerHtmlHandler = new ViewerHtmlHandler(viewerConfig); // Set the guid of the document you want to render string guid = \u0026#34;with-images.pdf\u0026#34;; //Set desired image quality in the output HTML document HtmlOptions htmlOptions = new HtmlOptions(); htmlOptions.PdfOptions.ImageQuality = ImageQuality.High; //Render document with specified options List pages = viewerHtmlHandler.GetPages(guid, htmlOptions); foreach (PageHtml page in pages) { //.. } For more details on this feature, please visit this documentation article.\nBug Fixes Following issues are fixed in version 18.3 of GroupDocs.Viewer for .NET.\nText is garbled when rendering Arabic PDF Blur output when rendering PDF as HTML Printable HTML gets messy when adding watermark Content minification prevents styles loading Access to the path \u0026ldquo;../../fd.xml\u0026rdquo; is denied ViewerConfig.FontDirectories property is not working for Presentation documents Converting DNG image into JPG provides output with light spots Improvements Following are the improvements that we have made in version 18.3.\nExtended support of HtmlOptions.ExcludeFonts option for Text documents Improved rendering of MS OneNote documents into HTML by providing pure HTML and SVG Exporting contained images when rendering SVG to HTML Extended support of ShowHiddenSlides option for Open Document Presentation Improved rendering of metafile images into HTML Related Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on our document viewer API.\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - GitHub Source Code Examples Sample Front End Apps - Open Source Document Viewer Applications Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/control-image-quality-when-rendering-pdf-document-as-html-using-groupdocs.viewer-for-.net-18.3/","summary":"We are pleased to announce the release of version 18.3 of GroupDocs.Viewer for .NET. Using the latest version, you can now render XLTM and XLTX file formats. We have also added settings to control the image quality when rendering PDF documents as HTML. Furthermore, this version came up with 11 improvements and bug fixes. Let’s have a quick overview of GroupDocs.Viewer for .NET 18.3.\nSupported File Formats We have added the support of following file formats in version 18.","title":"Control Image Quality when Rendering PDF Document as HTML using GroupDocs.Viewer for .NET 18.3"},{"content":"\rGroupDocs pleased to announce another release of Java Document Viewer App (Modern UI) v3.2.0 using GroupDocs.Viewer for Java version 17.5.0. This release v3.2.0 comes up with new features and improvements for Search, Print and File Manager to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments and many more features.\nLet\u0026rsquo;s have a look at it.\nWe recommend you to download and explore this new version.\nLet\u0026rsquo;s explore new features in more detail.\nFeatures Overview Following are the features introduced in this version v3.2.0.\nUpload Document View List of Uploaded Documents Select Document from Available Documents List Improved Paging for Thumbnails and MSG File Attachments Print Original Document Print Document with Watermark Search \u0026amp; Highlight Text Move to Next \u0026amp; Previous Search Terms Improved \u0026amp; Optimized the UI, Scripts and Controller/API\u0026rsquo;s Let\u0026rsquo;s explore the major features in more detail.\nSearch Text in HTML Representation Search Text feature enable user to search and highlight the all text results while viewing the document in HTML representation along with move to Next \u0026amp; Previous search terms with focusing and scrolling to the specific page and paragraph with features as:\nSearch Text \u0026amp; Highlight all Occurrences Move to Next Search Term Move to Previous Search Term Clear Search File Manager File Manager feature enable user to manage documents to view by uploading and selection documents from the documents repository as:\nUpload Document View List of Available Documents Select Document from Available Documents List Print Document Print Document feature is enabled for both HTML \u0026amp; Image mode rendering and now users can print the document as:\nPrint Original Document Print Document with Watermark Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer.\nDownload - API Package Documentation - Product Docs Forum - Technical Support Forum for GroupDocs.Viewer for Java Example - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this front-end application. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs.viewer-java-document-viewer-java-servlets-app-v3.2.0-file-manager-search-print-features/","summary":"GroupDocs pleased to announce another release of Java Document Viewer App (Modern UI) v3.2.0 using GroupDocs.Viewer for Java version 17.5.0. This release v3.2.0 comes up with new features and improvements for Search, Print and File Manager to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments and many more features.\nLet\u0026rsquo;s have a look at it.\nWe recommend you to download and explore this new version.","title":"GroupDocs.Viewer for Java - Document Viewer Java Servlets App v3.2.0 with File Manager Search and Print Features"},{"content":"\rShare this issue:\nMonthly NewsletterMarch 2018 Edit Business Documents in Java by Loading in HTML Save Back to HTML, Word, ODT, XML \u0026amp; Text File Formats\nEdit and transform documents using HTML Editor or by any UI-less service within any Java based application.\nGroupDocs.Editor for Javais a powerful document editing API that allows converting supported document format into HTML and apply changes in any WYSIWYG HTML Editor, it also provide facility to convert back HTML document in same format or in other supported document format with changes made Easily manage complex documents editing operations by adding just a few lines of code within any type of Java application.\nAlso available for: .NET\nProduct News\nChange Chart Axis Title Dynamically in .NET and Java Applications GroupDocs.Assembly now supports inserting chart axis title dynamically in Excel spreadsheets, PowerPoint presentations and email document formats within .NET and Java applications. Just add a single line of expression tag to get it done.\nMulti-Threaded Indexing Support in Documents Searching GroupDocs.Search for .NET allows to perform indexing in multiple threads using multi-threaded indexing feature. It is faster but uses more memory and may cause memory overflow error in some cases. With 8 or 16 GB of RAM installed, it is recommended to use no more than 2 and 4 threads for indexing respectively. Read more details here.\nLoad and Save EXIF Metadata for JPEG and TIFF formats in .NET GroupDocs.Metadata for .NET API allows you to load and save EXIF metadata for JPEG and TIFF formats with a better speed. .NET programmers can validate input metadata before saving; read additional properties from ID3v2; update ID3v1/ID3v2 tag using properties and read/update/remove image cover tag in MP3 file format. Read more details here.\nFrom the Library\nHow to: Search Barcode and QR-Code Signatures in Business Documents? GroupDocs.Signature for .NET API now supports searching Barcode and QR-Code signatures in all popular business document formats like: PDF, Word, Excel, PowerPoint and image files. Read more details here.\nHow to: Convert Specific Range When Converting Excel Documents? GroupDocs.Conversion for .NET introduces conversion from PostScript documents as well as Convert specific range of cells (D1:F8) when converting to other than cells format. Blank rows and columns could be skipped when converting Cells document. Read more details here.\nHow to: Edit Watermark Objects in Word Documents in .NET? GroupDocs.Watermark for .NET allows you to modify the objects that can be considered as watermark in Word documents. Text of particular shapes with formatted text will be replaced within document along with modifying shape’s properties. Read more details here.\nHow to: Extract Text from Markdown Documents in .NET? GroupDocs.Text for .NET API provides support of text extraction from Markdown documents. You can extract raw text, formatted text and the structured text from the document. Read more details here.\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite. GroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite. ASP.NET WebForms Modern UI Document Viewer 2.1 – Search, Print and File Manager to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments. GroupDocs.Comparison for .NET 18.2 – Accepting SVG path with spaces besides commas. GroupDocs.Annotation for .NET 18.2 - The issue with classes with similar names were overwritten when API was loaded. Noe this issue is fixed. GroupDocs.Metadata for Java 18.1 – Detect EPUB file format and read its metadata and DublinCore information. Check out for more releases during last month\n","permalink":"https://blog.groupdocs.com/total/groupdocs-newsletter-march-2018-document-manipulation-api-updates-code-examples/","summary":"Share this issue:\nMonthly NewsletterMarch 2018 Edit Business Documents in Java by Loading in HTML Save Back to HTML, Word, ODT, XML \u0026amp; Text File Formats\nEdit and transform documents using HTML Editor or by any UI-less service within any Java based application.\nGroupDocs.Editor for Javais a powerful document editing API that allows converting supported document format into HTML and apply changes in any WYSIWYG HTML Editor, it also provide facility to convert back HTML document in same format or in other supported document format with changes made Easily manage complex documents editing operations by adding just a few lines of code within any type of Java application.","title":"GroupDocs Newsletter March 2018 – Document Manipulation API Updates and Code Examples"},{"content":"\rThe team GroupDocs is really excited to announce the another monthly release of GroupDocs.Signature for Java v18.1. This release comes up with a feature of setting Text Shadow for Slides, Words and Cells documents. Furthermore, many improvements and fixes are also introduced in this version of the API. We would recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\neSignature API for Java v18.1 - Features Ability to set Text Shadow in text signaturesUsing version 18.1, users can set Text Shadow in text signatures for Slides, Words and Cells documents. Following code sample shows how to set Text Shadow in text signatures for Slides: SlidesSignTextOptions signOptions = new SlidesSignTextOptions(\u0026#34;John Smith\u0026#34;); // set up shadow options for text TextShadow shadow = new TextShadow(); shadow.setColor(Color.ORANGE); shadow.setAngle(135); shadow.setBlur(5); shadow.setDistance(4); shadow.setTransparency(0.2); //add text shadow to signature extensions signOptions.getExtensions().add(shadow); Set Text Shadow effect for text as image signatureUsers can set Text Shadow effect for text as image signature for all document types. Java eSignature API v18.1 - Improvements Signature and Verification events arguments with additional properties Information of URL provided document with corrected value Verification of result with additional properties Result of Signing methods when Document provided by URL TextShadow class implementation and namespace e-Signing API for Java 18.1 - Bug Fixes Output file name has no extension for Stream and URL Document source Update result Stream of Sign methods Loading Documents from URL without target filename Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for Java:\nDownload – JAR Files Documentation – API Docs Product Support Forum – Technical Support Forum for GroupDocs.Signature Examples – GitHub source code examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/java-e-signing-api-v18.1/","summary":"The team GroupDocs is really excited to announce the another monthly release of GroupDocs.Signature for Java v18.1. This release comes up with a feature of setting Text Shadow for Slides, Words and Cells documents. Furthermore, many improvements and fixes are also introduced in this version of the API. We would recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.","title":"Set Text Shadow in Text Signatures using Java E-Signing API v18.1"},{"content":"\rWe have been improving our APIs to meet the requirements of our customers. Therefore, we are pleased to announce Java Annotation API v17.10.3. In previous version of the API, there was a issue in importing annotations from PDF. But now this issue has been fixed in this release. We therefore recommend you to download this latest release for a better API experience.\nJava Annotation API v17.10.3 - Fixes Import added annotations from exported PDF document Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Documentation Annotation API: Download - Zipped JARs Documentation - API Documentation Examples/Showcases - GitHub source code examples Product Support Forum - Technical Support Forum for GroupDocs.Annotation FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/java-annotation-api-17.10.3/","summary":"We have been improving our APIs to meet the requirements of our customers. Therefore, we are pleased to announce Java Annotation API v17.10.3. In previous version of the API, there was a issue in importing annotations from PDF. But now this issue has been fixed in this release. We therefore recommend you to download this latest release for a better API experience.\nJava Annotation API v17.10.3 - Fixes Import added annotations from exported PDF document Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Documentation Annotation API: Download - Zipped JARs Documentation - API Documentation Examples/Showcases - GitHub source code examples Product Support Forum - Technical Support Forum for GroupDocs.","title":"Introducing Hotfix release of Java Annotation API 17.10.3"},{"content":"\rGroupDocs team is pleased to announce three enhancements in GroupDocs.Search for .NET 18.2. Using the latest version, you can now perform indexing in multiple threads using multi-threaded indexing. Furthermore, you can now implement compact indexing that consumes up to 5 times less disk space. We would recommend you to download the latest version for better user experience.\nMulti-Threaded Indexing in C# In this enhancement, you can perform indexing in multiple threads. Multi-threaded indexing is faster but uses more memory and may cause memory overflow error. If you have only 8 GB of RAM installed, it is recommended to use not more than 2 threads for indexing. If you have 16 GB of RAM installed, you can use 4 threads for indexing. Following code sample shows how to use multi-threaded indexing.\nstring indexFolder = @\u0026#34;c:\\\\MyIndex\u0026#34;; string documentsFolder = @\u0026#34;c:\\\\MyDocuments\u0026#34;; // Creating index Index index = new Index(indexFolder); // Indexing in 2 threads index.AddToIndex(documentsFolder, 2); // Searching SearchResults result = index.Search(\u0026#34;Einstein\u0026#34;); You can also run multi-threaded indexing using the asynchronous method as shown in the following code sample.\nstring indexFolder = @\u0026#34;c:\\\\MyIndex\u0026#34;; string documentsFolder = @\u0026#34;c:\\\\MyDocuments\u0026#34;; // Creating index Index index = new Index(indexFolder); // Indexing in 2 threads index.AddToIndexAsync(documentsFolder, 2); // User can perform a search after the completion of the indexing operation Compact Indexing This enhancement allows you to create an index that consumes up to 5 times less disk space. This is possible for the reason of containing only number of word occurrences without positions. For the same reason, index of this type does not support phrase search and date range search.\nstring indexFolder = @\u0026#34;c:\\\\MyIndex\u0026#34;; string documentsFolder = @\u0026#34;c:\\\\MyDocuments\u0026#34;; // Creating indexing settings object IndexingSettings indexingSettings = new IndexingSettings(); // Setting compact index type indexingSettings.IndexType = IndexType.CompactIndex; // Creating index Index index = new Index(indexFolder, indexingSettings); // Indexing index.AddToIndex(documentsFolder); // Searching SearchResults result = index.Search(\u0026#34;Einstein\u0026#34;); Improved Index Structure to Increase Indexing Speed This enhancement is implemented to increase indexing performance. As a result, the performance of single-threaded indexing has been improved by around 8%.\nAvailable Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search:\nDownload - MSI Package NuGet - NuGet Install Documentation - API docs Examples/Plugins/Showcases - Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to the .NET Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/multi-threaded-and-compact-indexing-in-csharp/","summary":"GroupDocs team is pleased to announce three enhancements in GroupDocs.Search for .NET 18.2. Using the latest version, you can now perform indexing in multiple threads using multi-threaded indexing. Furthermore, you can now implement compact indexing that consumes up to 5 times less disk space. We would recommend you to download the latest version for better user experience.\nMulti-Threaded Indexing in C# In this enhancement, you can perform indexing in multiple threads.","title":"Multi-Threaded \u0026 Compact Indexing with Less Storage"},{"content":"\rGroupDocs team is proudly announcing the monthly release of GroupDocs.Metadata for Java 18.2. Three **enhancements **and six **new features **are introduced in this release. You can now load and save EXIF metadata for JPEG and TIFF formats with a better speed. You can also validate input metadata before saving, read additional properties from ID3v2, update ID3v1/ID3v2 tag using properties, and read/update/remove image cover tag in MP3 file format. Furthermore, you can read image cover and version of EPUB file format as well. We recommend you to download the latest version for a better experience.\nEnhancementsFollowing are the enhancements introduced in version 18.2. Loading and Saving EXIF Metadata with Better Speed Validating ID3 Input Metadata Before Saving Reading Additional Properties from MP3 File Format Features IntroducedFollowing are the new features introduced in version 18.2. Updating ID3v2 Tag Using Properties Updating IDv21 Tag Using Properties Reading Image Cover from ID3v2 Tag Updating or Removing Image Cover from ID3v2 Tag Reading Image Cover from EPUB File Format Reading Version of EPUB Package For details about the features supported by the API, please visit Features Overview.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Metadata for Java: Download - Zipped assemblies Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Metadata product family FeedbackWe always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Metadata for Java at our forum. ","permalink":"https://blog.groupdocs.com/metadata/update-id3v1-and-id3v2-tag-using-properties-in-groupdocs.metadata-for-java-18.2/","summary":"GroupDocs team is proudly announcing the monthly release of GroupDocs.Metadata for Java 18.2. Three **enhancements **and six **new features **are introduced in this release. You can now load and save EXIF metadata for JPEG and TIFF formats with a better speed. You can also validate input metadata before saving, read additional properties from ID3v2, update ID3v1/ID3v2 tag using properties, and read/update/remove image cover tag in MP3 file format. Furthermore, you can read image cover and version of EPUB file format as well.","title":"Update ID3v1 and ID3v2 Tag Using Properties with GroupDocs.Metadata for Java 18.2"},{"content":"\rGroupDocs team is proudly announcing three enhancements and six new features in this monthly release of GroupDocs.Metadata for .NET** 18.2**. Using the latest release, you can now load and save EXIF metadata for JPEG and TIFF formats with a better speed. You can also validate input metadata before saving, read additional properties from ID3v2, update ID3v1/ID3v2 tag using properties, and read/update/remove image cover tag in MP3 file format. Furthermore, you can read image cover and version of EPUB file format as well. We recommend you to download and use the latest version of the API.\nEnhancementsFollowing are the enhancements that are included in version 18.2. Loading and Saving EXIF Metadata with Better Speed Validating ID3 Input Metadata Before Saving Reading Additional Properties from MP3 File Format Features IntroducedFollowing are the new features introduced in version 18.2. Updating ID3v2 Tag Using Properties Updating IDv21 Tag Using Properties Reading Image Cover from ID3v2 Tag Updating or Removing Image Cover from ID3v2 Tag Reading Image Cover from EPUB File Format Reading Version of EPUB Package For details about the features supported by the API, please visit Features Overview.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Download - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/improved-performance-of-loading-and-saving-exif-metadata-in-groupdocs.metadata-for-.net-18.2/","summary":"GroupDocs team is proudly announcing three enhancements and six new features in this monthly release of GroupDocs.Metadata for .NET** 18.2**. Using the latest release, you can now load and save EXIF metadata for JPEG and TIFF formats with a better speed. You can also validate input metadata before saving, read additional properties from ID3v2, update ID3v1/ID3v2 tag using properties, and read/update/remove image cover tag in MP3 file format. Furthermore, you can read image cover and version of EPUB file format as well.","title":"Improved Performance of Loading and Saving EXIF Metadata in GroupDocs.Metadata for .NET 18.2"},{"content":"\rWe are pleased to announce our next version GroupDocs.Conversion for .NET 18.2. This release covers two new features, one improvement and a bug fix. Blank rows and columns could be skipped when converting Cells document. For further details included in this month’s release, please visit the release notes. Following sections will provide you the details about the new features of the API.\n.NET Document Conversion API – New Features Convert specific range when converting cells documentConvert specific range when converting to other than cells format. Example: \u0026ldquo;D1:F8\u0026rdquo; Following code sample shows how to convert specific range: var saveOptions = new PdfSaveOptions(); saveOptions.CellsOptions.ConvertRange = \u0026#34;D1:F8\u0026#34;; Conversion from PostScriptConversion from PostScript document is introduced. GroupDocs Document Conversion API - Improvements Implement configuration option for selecting if blank rows and columns should be skipped when converting Cells document GroupDocs.Conversion for .NET 18.2 - Bug Fixes Just print area is getting converted, not the entire spreadsheet API Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Wiki Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/implement-conversion-from-postscript-is-introduced-in-groupdocs.conversion-for-.net-18.2/","summary":"We are pleased to announce our next version GroupDocs.Conversion for .NET 18.2. This release covers two new features, one improvement and a bug fix. Blank rows and columns could be skipped when converting Cells document. For further details included in this month’s release, please visit the release notes. Following sections will provide you the details about the new features of the API.\n.NET Document Conversion API – New Features Convert specific range when converting cells documentConvert specific range when converting to other than cells format.","title":"Implement conversion from PostScript documents using GroupDocs.Conversion for .NET 18.2"},{"content":"\rFollowing our monthly release process, we are pleased to introduce some new features, one improvement and bug fixes in GroupDocs.Comparison for .NET 18.2. New image formats are introduced for images comparing such as gif, png, bmp and jpeg. Page mapper in PDF is improved. You can follow release notes here. We\u0026rsquo;d recommend you to download latest version of the API and share your feedback.\nDocument Comparison API for .NET - Features Implement Comparison Imaging Absorbing of tables with merged cells GroupDocs Document Comparison API - Improvements Improve displaying of tables in PDF GroupDocs.Comparison for .NET 18.2 – Bug Fixes Fix issue with filled cells on PDF PDF Comparison issue Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nDownloads - MSI Package and Zipped Format Nuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/pdf-tables-display-is-improved-in-groupdocs.comparison-for-.net-18.2/","summary":"Following our monthly release process, we are pleased to introduce some new features, one improvement and bug fixes in GroupDocs.Comparison for .NET 18.2. New image formats are introduced for images comparing such as gif, png, bmp and jpeg. Page mapper in PDF is improved. You can follow release notes here. We\u0026rsquo;d recommend you to download latest version of the API and share your feedback.\nDocument Comparison API for .NET - Features Implement Comparison Imaging Absorbing of tables with merged cells GroupDocs Document Comparison API - Improvements Improve displaying of tables in PDF GroupDocs.","title":"PDF tables display is improved in GroupDocs.Comparison for .NET 18.2"},{"content":"\rGroupDocs is pleased to announce another release of ASP.NET WebForms Modern UI Document Viewer v2.1.0 using GroupDocs.Viewer for .NET 18.1. This release v2.1.0 comes up with new features and improvements for Search, Print and File Manager to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments and many more features.\nLet\u0026rsquo;s have a look at it.\nWe recommend you to download and explore this new version.\nFeatures Overview Following are the features introduced in this version v2.1.0.\nUpload Document View List of Uploaded Documents Select Document from Available Documents List Search \u0026amp; Highlight Text Move to Next \u0026amp; Previous Search Terms Print Original Document Print Document with Watermark Improved Paging for Thumbnails and MSG File Attachments Improved \u0026amp; Optimized the UI, Scripts and Controller/API\u0026rsquo;s Let\u0026rsquo;s explore the major features in more detail.\nFile Manager File Manager feature enable user to manage documents to view by uploading and selection documents from the documents repository as:\nUpload Document View List of Available Documents Select Document from Available Documents List Search Text in HTML Representation Search Text feature enable user to search and highlight the all text results while viewing the document in HTML representation along with move to Next \u0026amp; Previous search terms with focusing and scrolling to the specific page and paragraph with features as:\nSearch Text \u0026amp; Highlight all Occurrences Move to Next Search Term Move to Previous Search Term Clear Search Print Document Print Document feature is enabled for both HTML \u0026amp; Image mode rendering and now users can print the document as:\nPrint Original Document Print Document with Watermark Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer.\nDownload - MSI Package as well as Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum for GroupDocs.Viewer for .NET Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples ASP.NET Webforms Modern UI - Open Source Document Viewer Applications Feedback We always appreciate and welcome our valuable users to share their feedback to improve this front-end application. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/viewer/asp.net-webforms-modern-ui-document-viewer-v2.1.0-search-print-file-manager-features-using-groupdocs.viewer-.net/","summary":"GroupDocs is pleased to announce another release of ASP.NET WebForms Modern UI Document Viewer v2.1.0 using GroupDocs.Viewer for .NET 18.1. This release v2.1.0 comes up with new features and improvements for Search, Print and File Manager to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments and many more features.\nLet\u0026rsquo;s have a look at it.\nWe recommend you to download and explore this new version.","title":"ASP.NET WebForms Modern UI Document Viewer v2.1.0 with Search Print and File Manager Features using GroupDocs.Viewer for .NET"},{"content":"\rGood news for Java users. GroupDocs team is proudly announcing the first release for this year with the support for **EPUB file format\u0026rsquo;s **metadata operations. Using the GroupDocs.Metadata for Java 18.1, you can now detect EPUB file format and read its metadata and **DublinCore **information. We recommend you to download the latest version for a better experience.\nFeatures IntroducedFollowing are the new features introduced in version 18.1. Detecting EPUB Document File Format Getting Metadata in EPUB File Format Getting DublinCore Metadata in EPUB File Format For details about the features supported by the API, please visit Features Overview.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Metadata for Java: Download - Zipped assemblies Documentation – API docs Examples – Source code examples Product Support Forum – Technical support forum for GroupDocs.Metadata product family FeedbackWe always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Metadata for Java at our forum. ","permalink":"https://blog.groupdocs.com/metadata/read-dublincore-information-in-epub-file-using-groupdocs.metadata-for-java18.1/","summary":"Good news for Java users. GroupDocs team is proudly announcing the first release for this year with the support for **EPUB file format\u0026rsquo;s **metadata operations. Using the GroupDocs.Metadata for Java 18.1, you can now detect EPUB file format and read its metadata and **DublinCore **information. We recommend you to download the latest version for a better experience.\nFeatures IntroducedFollowing are the new features introduced in version 18.1. Detecting EPUB Document File Format Getting Metadata in EPUB File Format Getting DublinCore Metadata in EPUB File Format For details about the features supported by the API, please visit Features Overview.","title":"Read DublinCore Information in EPUB File using GroupDocs.Metadata for Java 18.1"},{"content":"\rAt GroupDocs we keep on updating our API\u0026rsquo;s for better user experience. In this regard, we are proudly announcing the monthly release of GroupDocs.Assembly for .NET 18.1. Using the latest version, you can now change chart axis title dynamically in the spreadsheet, presentation, and email documents. We recommend you to download and use the latest version of API.\nInsert Chart Axis Title DynamicallyYou can now insert chart axis title dynamically in spreadsheet, presentation, and email documents. Dynamic chart axis title setting for Spreadsheet documents Dynamic chart axis title setting for Presentation documents Dynamic chart axis title setting for emails with HTML and RTF bodies Change Chart Axis Title DynamicallyFrom now, template syntax expressions are supported in chart axis titles. Thus, to set a chart axis title dynamically, you can put an expression tag into it as shown in the following sample: \u0026lt;\u0026lt;[axis_title_expression]\u0026gt;\u0026gt; Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly for .NET: Download - MSI Package as well as Zipped DLLs NuGet - Nuget Installation Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly FeedbackWe will be happy to know your thoughts and we will try to enhance your experience with the GroupDocs.Assembly for .NET API. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/assembly/change-chart-axis-title-dynamically-using-groupdocs.assembly-for-.net-18.1/","summary":"At GroupDocs we keep on updating our API\u0026rsquo;s for better user experience. In this regard, we are proudly announcing the monthly release of GroupDocs.Assembly for .NET 18.1. Using the latest version, you can now change chart axis title dynamically in the spreadsheet, presentation, and email documents. We recommend you to download and use the latest version of API.\nInsert Chart Axis Title DynamicallyYou can now insert chart axis title dynamically in spreadsheet, presentation, and email documents.","title":"Change Chart Axis Title Dynamically using GroupDocs.Assembly for .NET 18.1"},{"content":"\rAt GroupDocs, we are always focused on improving our API\u0026rsquo;s. In this regard, we are excitedly announcing another monthly release of GroupDocs.Assembly for Java 18.1. Using the latest version, you can now change chart axis title dynamically in the spreadsheet, presentation, and email documents. We would recommend you to download and integrate this latest release.\nInsert Chart Axis Title DynamicallyGroupDocs.Assembly for Java 18.1 provides support for inserting chart axis title in spreadsheet, presentation, and email documents. Dynamic insertion of chart axis title for Spreadsheet documents Dynamic insertion of chart axis title for Presentation documents Dynamic insertion of chart axis title for emails with HTML and RTF bodies Change Chart Axis Title DynamicallyFrom now, template syntax expressions are supported in chart axis titles. Thus, to set a chart axis title dynamically, you can put an expression tag into it as shown in the following sample: \u0026lt;\u0026lt;[axis_title_expression]\u0026gt;\u0026gt; Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly: Download - JAR File Documentation - API Documentation Examples/Plugins/Showcases - Github source code examples Product Support Forum - Technical support forum for GroupDocs.Assembly FeedbackWe\u0026rsquo;d like to hear your valuable feedback. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/assembly/dynamic-chart-axis-title-in-groupdocs.assembly-for-java-18.1/","summary":"At GroupDocs, we are always focused on improving our API\u0026rsquo;s. In this regard, we are excitedly announcing another monthly release of GroupDocs.Assembly for Java 18.1. Using the latest version, you can now change chart axis title dynamically in the spreadsheet, presentation, and email documents. We would recommend you to download and integrate this latest release.\nInsert Chart Axis Title DynamicallyGroupDocs.Assembly for Java 18.1 provides support for inserting chart axis title in spreadsheet, presentation, and email documents.","title":"Insert Chart Axis Title Dynamically using GroupDocs.Assembly for Java 18.1"},{"content":"\rWe are pleased to announce the release of version 18.2 of GroupDocs.Watermark for .NET. The latest version allows you to edit the objects that can be considered as watermark in Word documents. Following are the features that are introduced in GroupDocs.Watermark for .NET 18.2.\nEditing Watermark Objects in Word Documents Replacing text for particular shapesWe have added the support of replacing text for particular shapes in a Word document. Following code sample shows how to use this feature. using (WordsDocument doc = Document.Load(@\u0026#34;D:\\input.docx\u0026#34;)) { foreach (WordsShape shape in doc.Sections[0].Shapes) { if (shape.Text.Contains(\u0026#34;Some text\u0026#34;)) { shape.Text = \u0026#34;Another text\u0026#34;; } } doc.Save(@\u0026#34;D:\\output.docx\u0026#34;); } Replacing shape\u0026rsquo;s text with formattingUsing GroupDocs.Watermark for .NET 18.2, you can replace the text of the shapes with formatted text by specifying font family, font size, font style, font color etc.. Following code sample shows how to replace shape\u0026rsquo;s text with formatted text. using (WordsDocument doc = Document.Load(@\u0026#34;D:\\input.docx\u0026#34;)) { foreach (WordsShape shape in doc.Sections[0].Shapes) { if (shape.Text.Contains(\u0026#34;Some text\u0026#34;)) { shape.FormattedTextFragments.Clear(); shape.FormattedTextFragments.Add(\u0026#34;Another text\u0026#34;, new Font(\u0026#34;Calibri\u0026#34;, 19, FontStyle.Bold), Color.Red, Color.Aqua); } } doc.Save(@\u0026#34;D:\\output.docx\u0026#34;); } Replacing shape\u0026rsquo;s imageIn version 18.2, we have also added the feature of replacing image of the shape in a Word document. Following code sample shows how to set the image of a shape. using (WordsDocument doc = Document.Load(@\u0026#34;D:\\input.doc\u0026#34;)) { foreach (WordsShape shape in doc.Sections[0].Shapes) { if (shape.Image != null) { shape.Image = new WordsWatermarkableImage(File.ReadAllBytes(@\u0026#34;D:\\test.png\u0026#34;)); } } doc.Save(@\u0026#34;D:\\output.doc\u0026#34;); } Modifying shape\u0026rsquo;s propertiesUsing version 18.2, you can also modify the properties of a shape in Word documents. The following code sample shows the properties that can be modified using GroupDocs.Watermark. using (WordsDocument doc = Document.Load(@\u0026#34;D:\\input.docx\u0026#34;)) { foreach (WordsShape shape in doc.Sections[0].Shapes) { if (shape.Text.Contains(\u0026#34;Some text\u0026#34;)) { shape.AlternativeText = \u0026#34;watermark\u0026#34;; shape.RotateAngle = 30; shape.X = 200; shape.Y = 200; shape.Height = 100; shape.Width = 400; shape.BehindText = false; } } doc.Save(@\u0026#34;D:\\output.docx\u0026#34;); } Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Watermark:\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples - Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum - Technical Support Forum for GroupDocs.Watermark Feedback As always, we would love to hear your queries and suggestions at our forum.\n","permalink":"https://blog.groupdocs.com/watermark/edit-watermark-objects-in-word-documents-groupdocs.watermark-for-.net-18.2/","summary":"We are pleased to announce the release of version 18.2 of GroupDocs.Watermark for .NET. The latest version allows you to edit the objects that can be considered as watermark in Word documents. Following are the features that are introduced in GroupDocs.Watermark for .NET 18.2.\nEditing Watermark Objects in Word Documents Replacing text for particular shapesWe have added the support of replacing text for particular shapes in a Word document. Following code sample shows how to use this feature.","title":"Edit Watermark Objects in Word Documents using GroupDocs.Watermark for .NET 18.2"},{"content":"\rShare this issue:\nMonthly Newsletter February 2018\n.NET Document Viewer APIs for C#, WPF and ASPdotNET Applications\nRender PDF, Word, Excel, Outlook, HTML and Image formats within\nGroupDocs.Viewer for .NET is a powerful file viewer API for rendering over 50 documents and image file formats within .NET applications. It rasterizes documents and images both, renders text and converts them to SVG + HTML + CSS – offering a high-fidelity true-text, native document rendering.\nGroupDocs document viewer APIs are reliable and quickly display different document formats by adding just a few lines of simple code in your .NET applications.\nAvailable for: Java\nProduct News\npare PDF Annotations in .NET Applications GroupDocs.Annotation for .NET APIs allow PDF annotations comparison features now. Some other important improvements like public bool property LicenseChecker, page mapper for PDF and comparison of tables are also introduced in this release. Read more details here.\nManipulate Watermark Objects in PowerPoint and Visio Documents in .NET GroupDocs.Watermark for .NET now adds the support of editing the objects that can be considered as watermark in Microsoft PowerPoint and MS Visio documents. For PowerPoint, this feature is supported for the shapes currently. Read more details here.\nShow or Hide Tracked Changes in Word Documents in Java Applications GroupDocs.Viewer for Java adds support of viewing new file formats like VSTX and VSSX (Microsoft Visio), ONE (OneNote) and DjVu (multi-layer raster image). The document viewer API has added a setting to override the default behavior of the API. If you want to see tracked changes in your rendering result, use getWordsOptions.setShowTrackedChanges method of RenderOptions (ImageOptions, HtmlOptions or PdfFileOptions) and pass it to corresponding ViewerHandler (ViewerImageHandler or ViewerHtmlHandler). Read more details here.\nAdd Text Signatures with Shadow for Business Document Formats Using GroupDocs.Signature for .NET, users can set text signatures with shadow in any popular business document format like: Word, Excel and PowerPoint Slides. Many important feature improvements are also made in this release. Read more details here.\nFrom the Library\nHow to: Render Notes in Presentation Documents in .NET? GroupDocs.Viewer for .NET announces the support of rendering Jpeg2000, PostScript, POTM and PPSM file formats. It also adds the option to show or hide the notes when rendering Presentation documents. .NET developers can also work with the layers in CAD documents. Read more details here.\nHow to: Convert from DWF Format in .NET? GroupDocs.Conversion for .NET now supports DWF (Design Web Format). Caching with provided LocalCacheDataHandler is improved and issues like conversion from ODG, IFC are also resolved. Read more details here.\nHow to: Change Title and Text Background Color Dynamically from Word and Email File Formats? Using GroupDocs.Assembly users can now change text background color dynamically in word processing and email documents within .NET and Java applications. It allows changing chart axis title dynamically in word processing documents as well as inserting images and barcodes dynamically in email messages (msg) with RTF body.\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite.\nGroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite.\nASP.NET WebForms Document Metadata Editor App 1.0 – Read and remove the metadata of documents (Words, Spreadsheet, Presentation, PDF) and images (JPEG, PNG, GIF) with downloading the original or updated documents.\nGroupDocs.Signature for .NET 18.1 – Users can add text Shadow in Text Signatures using improved TextShadow class.\nGroupDocs.Comparison for Java 17.3.2 - The issue with classes with similar names were overwritten when API was loaded. Noe this issue is fixed.\nGroupDocs.Annotation for Java 17.10.2 – Change position, visibility and color behavior of added annotation.\nGroupDocs.Comparison for Java 17.3.1 – Validate API license using isValidLicense() method.\nGroupDocs.Annotation for Java 17.10.1 – Exception generated while downloading annotated pdf document is now fixed.\nCheck out for more releases during last month\n","permalink":"https://blog.groupdocs.com/total/groupdocs-newsletter-february-2018-document-manipulation-apis-code-examples/","summary":"Share this issue:\nMonthly Newsletter February 2018\n.NET Document Viewer APIs for C#, WPF and ASPdotNET Applications\nRender PDF, Word, Excel, Outlook, HTML and Image formats within\nGroupDocs.Viewer for .NET is a powerful file viewer API for rendering over 50 documents and image file formats within .NET applications. It rasterizes documents and images both, renders text and converts them to SVG + HTML + CSS – offering a high-fidelity true-text, native document rendering.","title":"GroupDocs Newsletter February 2018 – Document Manipulation APIs and Code Examples"},{"content":"\rWe are pleased to announce the release of GroupDocs.Search for .NET 18.1. Using the latest version, you can **cancel search operation **at runtime. Furthermore, you can search with a query in the form of object tree as a parameter, search with the **wildcard **in phrase search, use **ISO 8610 **date format in date range search, and use **collection **of date formats for range search. We would recommend you to enhance your applications using this latest version.\nFeatures IntroducedFollowing are the new features introduced in version 18.1. Cancelling search operation at runtime Searching in query in form of object tree Searching with wildcard in phrase search Date range search with ISO 8610 format Collection of date formats for range search Available Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search: Download - MSI Package NuGet - NuGet Install Documentation - API docs Examples/Plugins/Showcases - Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search FeedbackIf you have any suggestions, questions, or queries related to the .NET Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts. ","permalink":"https://blog.groupdocs.com/search/cancel-search-operation-at-runtime-using-groupdocs.search-for-.net-18.1/","summary":"We are pleased to announce the release of GroupDocs.Search for .NET 18.1. Using the latest version, you can **cancel search operation **at runtime. Furthermore, you can search with a query in the form of object tree as a parameter, search with the **wildcard **in phrase search, use **ISO 8610 **date format in date range search, and use **collection **of date formats for range search. We would recommend you to enhance your applications using this latest version.","title":"Cancel Search Operation at Runtime using GroupDocs.Search for .NET 18.1"},{"content":"\rWe are pleased to announce the release of GroupDocs.Editor for Java API version 17.9 which makes it easier to perform document editing operations and conversion of edited document with simple line of code with various supported document formats. Document Editing API allows user to convert supported document format into HTML and apply changes in any WYSIWYG HTML Editor, it also provide facility to convert back HTML document in same format or in other supported document format with changes made. Its simple syntax, easy to use methods and a short lines of code to perform many document editing operations make it different and unique. Continue to read more about the API\u0026rsquo;s features.\nPurpose Behind GroupDocs.Editor for Java APIDocument editing and conversion into other document formats is a tough job specially when you need to add/edit, convert different documents (text, images, styles etc.) in a huge file with redundant changes. GroupDocs.Editor for Java API is designed to facilitate user to edit any supported document using automated system approach with simplest and largely used editing environment \u0026ldquo;HTML Editor\u0026rdquo; and convert back edited document in same format or any other supported document format. HTML editor provides platform independent approach to edit document with fast and effective way. GroupDocs.Editor- Supported FeaturesFollowing are the salient features exposed by GroupDocs.Editor for Java. GroupDocs.Editor for Java is currently providing features that are specific to the Words format only, other different files format will be available in upcoming releases. Features Overview Java Document Editing API - Supported File FormatsGroupDocs.Editor for Java API supports document editing operations for following file formats: DOCX DOC DOCM ODT OTT RTF HTML MHTML WordML FlatOpc MOBI DOTX For more details on the supported feature, please visit the article: Supported File Formats\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.editor: Download – Zipped JAR Documentation – API Documentation Examples – GitHub source code examples Product Support Forum - Technical Support Forum for GroupDocs.Editor FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/editor/releasing-groupdocs.editor-java-api-v17.9/","summary":"We are pleased to announce the release of GroupDocs.Editor for Java API version 17.9 which makes it easier to perform document editing operations and conversion of edited document with simple line of code with various supported document formats. Document Editing API allows user to convert supported document format into HTML and apply changes in any WYSIWYG HTML Editor, it also provide facility to convert back HTML document in same format or in other supported document format with changes made.","title":"Releasing GroupDocs.Editor for Java API- Performs Various Document Editing Operations"},{"content":"\rWe are extremely excited to announce that GroupDocs.Watermark is coming soon to Java platform. It will be an easy to use back-end API for adding text and image watermark to the popular document formats. GroupDocs.Watermark for Java will allow you to add watermarks that are hard to be automatically removed by third-party tools. The API also aims to search and remove previously added watermarks of popular types (including watermarks added by third-party tools) in a document. GroupDocs.Watermark for Java will soon be available for download.\nSalient Features of GroupDocs.Watermark for Java GroupDocs.Watermark for Java will come with all the watermarking features that are supported by GroupDocs.Watermark product family. The most notable features of the API include:\nAdding text/image watermark to supported document formats Searching and removing text/image watermark in supported document formats Searching watermarks in particular objects Adding watermark to images inside a document Working with existing watermark objects in supported document formats Extracting information of watermark objects in a document PDF document rasterization Getting document information Searching watermarks by text formatting (font, color etc.) Working with hyperlinks associated with document entities (all formats) Setting background image for charts in Excel and PowerPoint document Working with PDF and email attachments Using Dynabic.Metered account to use API in licensed mode First Version Availability We are finalizing the first release of GroupDocs.Watermark for Java and hoping that you will be able to grab it very soon. Please stay tuned for further updates. We would be happy to hear your queries or suggestions at GroupDocs.Watermark forum.\n","permalink":"https://blog.groupdocs.com/watermark/upcoming-release-of-groupdocs.watermark-for-java/","summary":"We are extremely excited to announce that GroupDocs.Watermark is coming soon to Java platform. It will be an easy to use back-end API for adding text and image watermark to the popular document formats. GroupDocs.Watermark for Java will allow you to add watermarks that are hard to be automatically removed by third-party tools. The API also aims to search and remove previously added watermarks of popular types (including watermarks added by third-party tools) in a document.","title":"Upcoming Release of GroupDocs.Watermark for Java"},{"content":"\rGroupDocs team is proudly announcing the support for **Epub file format\u0026rsquo;s **metadata operations in the monthly release of GroupDocs.Metadata for .NET 18.1. Using the latest release, you can now detect Epub file format and read its metadata and **DublinCore **information. We recommend you to download and use the latest version of the API.\nFeatures IntroducedFollowing are the new features introduced in version 18.1. Getting Metadata in Epub File Format Getting DublinCore Metadata in Epub File Format Detecting Epub Document File Format For details about the features supported by the API, please visit Features Overview.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Download - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/read-metadata-in-epub-file-using-groupdocs.metadata-for-.net-18.1/","summary":"GroupDocs team is proudly announcing the support for **Epub file format\u0026rsquo;s **metadata operations in the monthly release of GroupDocs.Metadata for .NET 18.1. Using the latest release, you can now detect Epub file format and read its metadata and **DublinCore **information. We recommend you to download and use the latest version of the API.\nFeatures IntroducedFollowing are the new features introduced in version 18.1. Getting Metadata in Epub File Format Getting DublinCore Metadata in Epub File Format Detecting Epub Document File Format For details about the features supported by the API, please visit Features Overview.","title":"Read Metadata in EPUB File using GroupDocs.Metadata for .NET 18.1"},{"content":"\rWe are delighted to announce the release of version 18.1 of GroupDocs.Viewer for .NET. The latest version includes the support of rendering Jpeg2000, PostScript, POTM and PPSM file formats. Furthermore, we have added the option to show or hide the notes when rendering Presentation documents. This version also allows you to work with the layers in CAD documents. Let’s have a quick overview of GroupDocs.Viewer for .NET 18.1.\nSupported File Formats We have added the support of following file formats in version 18.1 of GroupDocs.Viewer for .NET.\nPOTM (Microsoft PowerPoint Macro-Enabled Template) PPSM (Microsoft PowerPoint Macro-Enabled Show) JPEG2000 (JP2, J2C, J2K, JPF, JPX, JPM) PS (PostScript) Showing/Hiding Notes in Presentation Document The Presentation document may also contain the notes. By default, the notes are not included in the rendering results. However, using version 18.1, you can choose between to show or hide the notes in the output. If you want to show notes in your rendering result, use SlidesOptions.RenderNotes property of RenderOptions (ImageOptions or HtmlOptions) as shown in sample code.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.StoragePath = @\u0026#34;C:\\storage\u0026#34;; // Create image handler ViewerImageHandler imageHandler = new ViewerImageHandler(config); string guid = \u0026#34;document.pptx\u0026#34;; // Set slides options to render notes ImageOptions options = new ImageOptions(); options.SlidesOptions.RenderNotes = true; // Default value is false // Get pages List pages = imageHandler.GetPages(guid, options); foreach (PageImage page in pages) { //... } For more details on this feature, please visit this documentation article.\nGetting List of Layers in CAD Document Using layers in CAD documents is a way of organizing objects in the drawing by associating them with a specific function or a purpose. GroupDocs.Viewer for .NET 18.1 allows you to get the list of layers\u0026rsquo; names from the drawing. Just cast the DocumentInfoContainer object returned by GetDocumentInfo method of the ViewerHandler and use Layers property, as shown in the example below.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.StoragePath = @\u0026#34;C:\\storage\u0026#34;; config.UseCache = true; // Create image handler ViewerImageHandler imageHandler = new ViewerImageHandler(config); string guid = \u0026#34;withLayers.dwg\u0026#34;; CadDocumentInfoContainer documentInfo = (CadDocumentInfoContainer) imageHandler.GetDocumentInfo(guid); // Loop through all layers contained in the drawing foreach (string layer in documentInfo.Layers) Console.WriteLine(\u0026#34;Layer name: {0}\u0026#34;, layer); For more details on this feature, please visit this documentation article.\nRendering Specific Layers of CAD Document Using version 18.1, you can specify the layers that you want to render by adding layer names into the CadOptions.Layers property of corresponding RenderOptions (ImageOptions or HtmlOptions) as shown in the example below.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.StoragePath = @\u0026#34;C:\\storage\u0026#34;; // Create image handler ViewerImageHandler imageHandler = new ViewerImageHandler(config); string guid = \u0026#34;document.dwg\u0026#34;; // Set CAD options to render two Layers ImageOptions options = new ImageOptions(); options.CadOptions.Layers.Add(\u0026#34;electrical\u0026#34;); options.CadOptions.Layers.Add(\u0026#34;walls\u0026#34;); // Get pages List pages = imageHandler.GetPages(guid, options); foreach (PageImage page in pages) { Console.WriteLine(\u0026#34;Page number: {0}\u0026#34;, page.PageNumber); Stream imageStream = page.Stream; } For more details on this feature, please visit this documentation article.\nBug Fixes Following issues are fixed in version 18.1 of GroupDocs.Viewer for .NET.\nHeader contains error message when rendering Word document as PDF API is not creating cache files in CachePath when rendering document from network path Improvements Following are the improvements that we have made in version 18.1.\nSet output page height and width (for image and HTML) depending on the rendered DWF document\u0026rsquo;s page size Create single styles resource when rendering Text documents as HTML Improve exporting and embedding HTML resources when rendering SVG and Presentation documents Related Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on our document viewer API.\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - GitHub Source Code Examples Sample Front End Apps - Open Source Document Viewer Applications Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/render-slide-notes-in-presentation-document-groupdocs.viewer-for-.net-18.1/","summary":"We are delighted to announce the release of version 18.1 of GroupDocs.Viewer for .NET. The latest version includes the support of rendering Jpeg2000, PostScript, POTM and PPSM file formats. Furthermore, we have added the option to show or hide the notes when rendering Presentation documents. This version also allows you to work with the layers in CAD documents. Let’s have a quick overview of GroupDocs.Viewer for .NET 18.1.\nSupported File Formats We have added the support of following file formats in version 18.","title":"Render Notes in Presentation Document using GroupDocs.Viewer for .NET 18.1"},{"content":"\rWe are pleased to announce the release of GroupDocs.Conversion for .NET 18.1. This release comes with support of DWG format. One improvement and few bug fixes are also introduced. Caching with provided LocalCacheDataHandler is improved and issues like conversion from ODG, IFC are resolved. For further details included in this month’s release, please visit the release notes. We\u0026rsquo;d recommend you to download the latest release of the API and share your experience.\nDocument Conversion API for .NET - Feature Implement conversion from DWF GroupDocs Document Conversion API - Improvements Improve caching with provided LocalCacheDataHandler GroupDocs.Conversion for .NET 18.1 - Bug Fixes Unable to set watermark text Converting specific DOCX document fails with Value cannot be null, parameter trueTypeFont Fix failing conversion from ODG Failing conversion from IFC Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion: Downloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Wiki Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/conversion-dwf-format-supported-groupdocs.conversion-.net-18.1/","summary":"We are pleased to announce the release of GroupDocs.Conversion for .NET 18.1. This release comes with support of DWG format. One improvement and few bug fixes are also introduced. Caching with provided LocalCacheDataHandler is improved and issues like conversion from ODG, IFC are resolved. For further details included in this month’s release, please visit the release notes. We\u0026rsquo;d recommend you to download the latest release of the API and share your experience.","title":"Conversion from DWF format is supported in GroupDocs.Conversion for .NET 18.1"},{"content":"\rAnother monthly release of GroupDocs.Comparison for .NET 18.1 in on-board and ready for download. This release covers a new feature and some improvements. API allows annotations comparison and improvements like public bool property LicenseChecker, page mapper for PDF and comparison of table are intorduced. You can follow release notes here. We\u0026rsquo;d recommend you to download latest version of the API and share your document comparison experience.\nDocument Conversion API for .NET - Features Comparison.PDF: Implement annotations comparing GroupDocs Document Conversion API - Improvements Add public bool property LicenseChecker Improve displaying of tables in PDF Page mapper for PDF Comparison.PDF: fix filled cells on tables Add page mapper for Note format Comparison.Note: Improve comparison of table Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nDownloads - MSI Package and Zipped Format Nuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/annotations-comparison-implemented-groupdocs.comparison-.net-18.1/","summary":"Another monthly release of GroupDocs.Comparison for .NET 18.1 in on-board and ready for download. This release covers a new feature and some improvements. API allows annotations comparison and improvements like public bool property LicenseChecker, page mapper for PDF and comparison of table are intorduced. You can follow release notes here. We\u0026rsquo;d recommend you to download latest version of the API and share your document comparison experience.\nDocument Conversion API for .","title":"Annotations comparison is implemented in GroupDocs.Comparison for .NET 18.1"},{"content":"\rWe are happy to announce that GroupDocs.Watermark for .NET 18.1 has been released and it is available for download. In this release, we have added the support of editing the objects that can be considered as watermark in MS PowerPoint and MS Visio documents. Please continue to read more about this latest release.\nEditing Watermark Objects in MS PowerPoint DocumentsGroupDocs.Watermark for .NET 18.1 allows you to edit the objects that can be considered as watermark in PowerPoint documents. Currently, this feature is supported for the shapes. Following is the list of operations that can be performed on the existing shapes in a PowerPoint document. Replacing text for particular shapes Replacing shape\u0026rsquo;s text with formatted text Replacing shape\u0026rsquo;s image Setting background image for particular shapes Modifying other shape properties Editing Watermark Objects in MS Visio DocumentsUsing GroupDocs.Watermark for .NET 18.1, you can edit the existing objects that can be used as watermark in MS Visio documents. Following is the list of supported operations. Replacing text for particular shapes Replacing shape image Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Watermark: Download - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples - Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum - Technical Support Forum for GroupDocs.Watermark FeedbackAs always, we would love to hear your queries and suggestions at our forum. ","permalink":"https://blog.groupdocs.com/watermark/edit-watermark-objects-in-powerpoint-and-visio-documents-using-groupdocs.watermark-for-.net-18.1/","summary":"We are happy to announce that GroupDocs.Watermark for .NET 18.1 has been released and it is available for download. In this release, we have added the support of editing the objects that can be considered as watermark in MS PowerPoint and MS Visio documents. Please continue to read more about this latest release.\nEditing Watermark Objects in MS PowerPoint DocumentsGroupDocs.Watermark for .NET 18.1 allows you to edit the objects that can be considered as watermark in PowerPoint documents.","title":"Edit Watermark Objects in PowerPoint and Visio Documents using GroupDocs.Watermark for .NET 18.1"},{"content":"\rKeeping customers feedback in view, we are pleased to announce GroupDocs.Comparison for Java 17.3.2. In earlier version of the API, there were classes with similar names. Hence, in some applications, when API was loaded, classes with similar names were overwritten. This issue is now resolved. We\u0026rsquo;d recommend you to Download the new release and enhance your document comparison experience.\nGroupDocs.Comparison for Java 17.3.2 - Bug Fixes Classes with similar names are overwritten Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison: Product Home – GroupDocs.Comparison for Java Documentation – Product Documentations Product Support Forum – Technical Support Forum for GroupDocs.Comparison Examples/Plugins/Showcases – Github source code examples FeedbackWe always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/classes-with-similar-names-are-not-overwritten-in-groupdocs.comparison-for-java-17.3.2/","summary":"Keeping customers feedback in view, we are pleased to announce GroupDocs.Comparison for Java 17.3.2. In earlier version of the API, there were classes with similar names. Hence, in some applications, when API was loaded, classes with similar names were overwritten. This issue is now resolved. We\u0026rsquo;d recommend you to Download the new release and enhance your document comparison experience.\nGroupDocs.Comparison for Java 17.3.2 - Bug Fixes Classes with similar names are overwritten Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Classes with similar names are not overwritten in GroupDocs.Comparison for Java 17.3.2"},{"content":"\rGroupDocs team is proudly announcing the monthly release of GroupDocs.Assembly for .NET API version 17.12. Using the latest version, you can change text **background color **dynamically in word processing and email documents. You can also change chart axis title dynamically in word processing documents. Furthermore, you can insert images and barcodes dynamically in email messages (.msg) with RTF body. We recommend you to download and use the latest version of API.\nDocument Generation API for .NET - New Features GroupDocs.Assembly for .NET introduces the following new features in version 17.12 of the API:\nSupport dynamic insertion of images for MSG messages with RTF body Support dynamic shape fill color setting for Word Processing documents Support dynamic shape fill color setting for email messages with HTML body Support dynamic shape fill color setting for email messages with RTF body Support dynamic chart axis title setting for Word Processing documents Change chart axis title dynamically in Word Processing documentsFrom now, template syntax expressions are supported in chart axis titles. Thus, to set a chart axis title dynamically, you can put an expression tag into it like in the following example: \u0026lt;\u0026lt;[axis_title_expression]\u0026gt;\u0026gt; Change text background color dynamically in Word Processing and Email file formatsYou can set text background color for document contents dynamically using backColor tags. The syntax of a backColor tag is defined as follows: \u0026lt;\u0026lt;backColor[color_expression]\u0026gt;\u0026gt; content_to_be_colored \u0026lt;\u0026lt;/backColor\u0026gt;\u0026gt; Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly for .NET:\nDownload - MSI Package as well as Zipped DLLs NuGet - Nuget Installation Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly Feedback We observe your feedback carefully, please share your feedback about GroupDocs.Assembly for .NET API. We will be happy to know your thoughts and we will try to enhance your experience with the API. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/assembly/change-text-background-color-dynamically-using-groupdocs.assembly-for-.net-17.12/","summary":"GroupDocs team is proudly announcing the monthly release of GroupDocs.Assembly for .NET API version 17.12. Using the latest version, you can change text **background color **dynamically in word processing and email documents. You can also change chart axis title dynamically in word processing documents. Furthermore, you can insert images and barcodes dynamically in email messages (.msg) with RTF body. We recommend you to download and use the latest version of API.","title":"Change Text Background Color Dynamically using GroupDocs.Assembly for .NET 17.12"},{"content":"\rAt GroupDocs, we are always focused on delivering the best to our customers. In this regard, we are excitedly announcing another monthly release of GroupDocs.Assembly for Java v17.12. Using the latest version, you can now change text **background color **dynamically in word processing and email documents. You can also change chart axis title dynamically in word processing documents. Furthermore, you can **insert images and barcodes **dynamically in email messages (msg) with RTF body. We would recommend you to download and integrate this latest release.\nJava Document Assembly API - New Features This latest release provides support for:\nSupport dynamic insertion of images for MSG messages with RTF body Support dynamic shape fill color setting for Word Processing documents Support dynamic shape fill color setting for email messages with HTML body Support dynamic shape fill color setting for email messages with RTF body Support dynamic chart axis title setting for Word Processing documents Change chart axis title dynamically in Word Processing documentsFrom now, template syntax expressions are supported in chart axis titles. Thus, to set a chart axis title dynamically, you can put an expression tag into it like in the following example: \u0026lt;\u0026lt;[axis_title_expression]\u0026gt;\u0026gt; Change text background color dynamically in Word Processing and Email file formatsYou can set text background color for document contents dynamically using backColor tags. The syntax of a backColor tag is defined as follows: \u0026lt;\u0026lt;backColor[color_expression]\u0026gt;\u0026gt; content_to_be_colored \u0026lt;\u0026lt;/backColor\u0026gt;\u0026gt; Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly:\nDownload - Jar File Documentation - API Documentation Examples/Plugins/Showcases - Github source code examples Product Support Forum - Technical Support Forum for GroupDocs.Assembly Feedback We\u0026rsquo;d like to hear your valuable feedback. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/assembly/change-title-and-background-color-dynamically-using-groupdocs.assembly-for-java-17.12/","summary":"At GroupDocs, we are always focused on delivering the best to our customers. In this regard, we are excitedly announcing another monthly release of GroupDocs.Assembly for Java v17.12. Using the latest version, you can now change text **background color **dynamically in word processing and email documents. You can also change chart axis title dynamically in word processing documents. Furthermore, you can **insert images and barcodes **dynamically in email messages (msg) with RTF body.","title":"Change Title and Background Color Dynamically using GroupDocs.Assembly for Java 17.12"},{"content":"\rKeeping feedback of our valuable customers in view, we are pleased to announce a new version of GroupDocs.Annotation for Java 17.10.2. This release comes up with number of bug fixes. The main fix introduced in this release is visibility and color behavior of added annotation. We therefore recommend you to download this latest release for a better API experience.\nJava Annotation API v17.10.2 - Fixes Area annotation is invisible on adding Unable to change position of the annotation Annotation properties are not behaving same in Java as in .NET Wrong color behavior Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Documentation Annotation API: Download - Zipped JARs Documentation - API Documentation Examples/Showcases - GitHub source code examples Product Support Forum - Technical Support Forum for GroupDocs.Annotation FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/bug-fixes-in-java-annotation-api-v17.10.2/","summary":"Keeping feedback of our valuable customers in view, we are pleased to announce a new version of GroupDocs.Annotation for Java 17.10.2. This release comes up with number of bug fixes. The main fix introduced in this release is visibility and color behavior of added annotation. We therefore recommend you to download this latest release for a better API experience.\nJava Annotation API v17.10.2 - Fixes Area annotation is invisible on adding Unable to change position of the annotation Annotation properties are not behaving same in Java as in .","title":"Change Position of the Annotation using Java Annotation API v17.10.2"},{"content":"\rWe are excited to announce the release of version 17.5.0 of GroupDocs.Viewer for Java. The latest version has come with 9 new features, 16 improvements, and more than 20 bug fixes. Please continue to read more about this major release of GroupDocs.Viewer for Java.\nGroupDocs.Viewer for Java 17.5.0 - New Features Following are the most notable features of GroupDocs.Viewer for Java 17.5.0.\nSupport of New File Formats We have added the support of following file formats in this latest release.\nVSTX and VSSX (Microsoft Visio) ONE (OneNote) DjVu (multi-layer raster image) Show/Hide Tracked Changes in Word Document When rendering a Word document, the API does not provide results with tracked changes. We have added a setting to override the default behavior of the API. If you want to see tracked changes in your rendering result, use getWordsOptions.setShowTrackedChanges method of RenderOptions (ImageOptions, HtmlOptions or PdfFileOptions) and pass it to corresponding ViewerHandler (ViewerImageHandler or ViewerHtmlHandler) as shown in the following code snippet.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.setStoragePath(STORAGE_PATH); // Create HTML handler ViewerHtmlHandler htmlHandler = new ViewerHtmlHandler(config); String guid = \u0026#34;document.docx\u0026#34;; // Set options to render tracked changes HtmlOptions options = new HtmlOptions(); options.getWordsOptions().setShowTrackedChanges(true); // Default value is false // Get pages List pages = htmlHandler.getPages(guid, options); for (PageHtml page : pages) { System.out.println(\u0026#34;Page number: \u0026#34; + page.getPageNumber()); System.out.println(\u0026#34;Html content: \u0026#34; + page.getHtmlContent()); } For more details on this feature, please visit this documentation article.\nRendering PDF Document Excluding Annotations When rendering PDF documents, by default, annotations are included in the resultant document. If required, you can tell the API not to include the annotations in the rendering results. Just set getPdfOptions.setDeleteAnnotations of RenderOptions (ImageOptions, HtmlOptions or PdfFileOptions) as _true _and pass it to _getPages or getPdfFile _method of corresponding ViewerHandler (ViewerImageHandler or ViewerHtmlHandler) as shown in the following code snippet.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.setStoragePath(STORAGE_PATH); // Create HTML handler ViewerHtmlHandler htmlHandler = new ViewerHtmlHandler(config); String guid = \u0026#34;DocumentWithAnnotations.pdf\u0026#34;; // Set pdf options to render content without annotations HtmlOptions options = new HtmlOptions(); options.getPdfOptions().setDeleteAnnotations(true); // Default value is false // Get pages List pages = htmlHandler.getPages(guid, options); for (PageHtml page : pages) { System.out.println(\u0026#34;Page number: \u0026#34; + page.getPageNumber()); System.out.println(\u0026#34;Html content: \u0026#34; + page.getHtmlContent()); } For more details on this feature, please visit this documentation article.\nAdjusting the Size when Rendering CAD Documents When CAD documents are rendered, the size of the rendering result is adjusted by API automatically depending on the size of the initial document. You may also adjust the size of resulting document by setting height and width as shown in the following code sample.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.setStoragePath(STORAGE_PATH); // Create image handler ViewerImageHandler imageHandler = new ViewerImageHandler(config); String guid = \u0026#34;document.dwg\u0026#34;; // Set Cad options to render content with a specified size ImageOptions options = new ImageOptions(); options.getCadOptions().setHeight(750); options.getCadOptions().setWidth(450); // Get pages List pages = imageHandler.getPages(guid, options); for (PageImage page : pages) { System.out.println(\u0026#34;Page number: \u0026#34; + page.getPageNumber()); InputStream imageContent = page.getStream(); } For more details on this feature, please visit this documentation article.\nRendering Layouts in CAD Documents When CAD documents are rendered, by default, you only get the Model\u0026rsquo;s representation. In order to render Model and all non-empty Layouts within a CAD document, set getCadOptions().setRenderLayouts of ImageOptions and HtmlOptions to true as shown in the following code sample.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.setStoragePath(STORAGE_PATH); // Create HTML handler ViewerImageHandler imageHandler = new ViewerImageHandler(config); String guid = \u0026#34;document.dwg\u0026#34;; // Set CAD options to render Model and all non empty Layouts ImageOptions options = new ImageOptions(); options.getCadOptions().setRenderLayouts(true); // Get pages List pages = imageHandler.getPages(guid, options); for (PageImage page : pages) { System.out.println(\u0026#34;Page number: \u0026#34; + page.getPageNumber()); InputStream imageContent = page.getStream(); } For more details on this feature, please visit this documentation article.\nRendering a Specific Layout in a CAD Document Since version 17.5.0, GroupDocs.Viewer also allows you to render a specific layout in a CAD document. Following code snippet demonstrates how to render a specific layout by providing its name.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.setStoragePath(STORAGE_PATH); // Create HTML handler ViewerImageHandler imageHandler = new ViewerImageHandler(config); String guid = \u0026#34;document.dwg\u0026#34;; // Set CAD options to render specific Layout ImageOptions options = new ImageOptions(); options.getCadOptions().setLayoutName(\u0026#34;MyFirstLayout\u0026#34;); // Get pages List pages = imageHandler.getPages(guid, options); for (PageImage page : pages) { System.out.println(\u0026#34;Page number: \u0026#34; + page.getPageNumber()); InputStream imageContent = page.getStream(); } For more details on this feature, please visit this documentation article.\nEnabling Precise Mode when Rendering PDF Documents When PDF documents are rendered, we get similar representation in image and HTML formats. However, sometimes the result may contain shifted characters, symbols or document objects. To improve rendering results in such cases, we have added pdfOptions.setEnablePreciseRendering property as shown in the following sample code.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.setStoragePath(STORAGE_PATH); // Create HTML handler ViewerHtmlHandler htmlHandler = new ViewerHtmlHandler(config); String guid = \u0026#34;document.pdf\u0026#34;; // Set pdf options to render content in a precise mode HtmlOptions options = new HtmlOptions(); options.getPdfOptions().setEnablePreciseRendering(true); // Default value is false // Get pages List pages = htmlHandler.getPages(guid, options); for (PageHtml page : pages) { System.out.println(\u0026#34;Page number: \u0026#34; + page.getPageNumber()); System.out.println(\u0026#34;Html content: \u0026#34; + page.getHtmlContent()); } For more details on this feature, please visit this documentation article.\nRendering Documents with Comments Some document types like Microsoft Word, Excel, OpenOffice Text and Spreadsheet may also contain comments. By default, the comments are not rendered. Since the version 17.5.0, there is a new option, setRenderComments of RenderOptions (ImageOptions or HtmlOptions), that tells the API to include the comments in the output. Currently, this option works for Microsoft Word, Excel, OpenOffice Text and Spreadsheet document types. To learn about the usage of this feature, please visit this documentation article.\nUsing Metered Licensing Since version 17.5.0, you can also set Metered license as an alternative to license file. It is a new licensing mechanism that will be used along with existing licensing method. It is useful for the customers who want to be billed based on the usage of the API features. For more details, please refer to Metered Licensing FAQ section. Following code snippet shows how to set metered public and private keys for licensing.\nMetered metered = new Metered(); // set-up credentials metered.setMeteredKey(\u0026#34;Public_Key\u0026#34;, \u0026#34;Private_Key\u0026#34;); GroupDocs.Viewer for Java API - Bug Fixes Following issues are fixed in the latest version of GroupDocs.Viewer for Java.\nColor filling isn\u0026rsquo;t displayed for some objects Incorrect font color when rendering Excel to HTML Email attachments are not found when setting setUsePDF to true HTMLSaveOptions.DefaultFont setting doesn\u0026rsquo;t work properly Incomplete image when converting a specific DWG file Character\u0026rsquo;s size issue when rendering PDF document into HTML API is rendering PDF document into blank HTML pages Incorrect resource\u0026rsquo;s relative path when rendering to HTML Black background when rendering PPS or PPT to image Issue in setHtmlResourcePrefix when rendering .msg file Issue with underline text when rendering PDF into HTML setIgnoreResourcePrefixForCss is ignored when rendering Word documents Overflow text is not visible when rendering Excel sheet to HTML PDF to HTML fixed layout issue Lines are too thin when rendering PDF as HTML Pdf to HTML space and positioning issues PDF to HTML image color issue getLastModificationDate is not showing last modification date as expected GroupDocs.Viewer for Java latest JAR file lacks few imports Excel file with blank sheets is not rendering to image ImageOptions is not working as expected PPTX/XLSX documents are not rendering into images properly Duplicate pages are generated in cache if API is used in trial mode Image-based rendering issues Style-sheet link is incorrect if HTML is generated without embedded resources Document Rendering API - Improvements We have made following improvements in GroupDocs.Viewer for Java 17.5.0.\nRender one or range of worksheets from large excel file Remove obsolete CountPagesToConvert and PageNumbersToConvert from RenderOptions Remove members marked as obsolete in previous versions Do not set resource prefix when HtmlResourcePrefix is empty string Improve look of comments in API reference documentation CellsOptions.ShowGridLines property does not work when rendering Cells to PDF Extend support for setting JpegQuality when rendering documents as PDF Throw GroupDocsViewerException when file type can\u0026rsquo;t be determined for passed stream Create lower-case name when rendering document from stream CustomCacheHandler is written for S3 Bucket but still uses local disk for cache Pdf rendering to HTML taking a lot of time Add code examples to PdfOptions class documentation comments Add code examples to CellsOptions class documentation comments Add code examples to DiagramOptions class documentation comments Add code examples to EmailOptions class documentation comments Additional Resources Following resources will help you to download, learn, try and get technical support.\nProduct Home – API Home Page Download - JAR Files Documentation – Product Documentation Product Support Forum – Technical Support Forum for GroupDocs.Viewer Examples – Source Code Examples Sample Front End App - Open Source Document Viewer Application Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/viewer/show-tracked-changes-in-word-documents-groupdocs.viewer-for-java-17.5.0/","summary":"We are excited to announce the release of version 17.5.0 of GroupDocs.Viewer for Java. The latest version has come with 9 new features, 16 improvements, and more than 20 bug fixes. Please continue to read more about this major release of GroupDocs.Viewer for Java.\nGroupDocs.Viewer for Java 17.5.0 - New Features Following are the most notable features of GroupDocs.Viewer for Java 17.5.0.\nSupport of New File Formats We have added the support of following file formats in this latest release.","title":"Show Tracked Changes in Word Documents using GroupDocs.Viewer for Java 17.5.0"},{"content":"\rGroupDocs team is pleased to announce first release of ASP.NET WebForms Document Metadata Editor App using GroupDocs.Metadata for .NET API This initial release v1.0.0 comes up with features to provide easy ways to manage metadata in various formats. It enables user to read and remove the metadata of documents (Words, Spreadsheet, Presentation, PDF) and images (JPEG, PNG, GIF) with download the original or updated document and many more features. We recommend you to download and explore this version.\nFeatures Overview Following are the features introduced in this version v1.0.0.\nView Words document Metadata information View Images (JPG, JPEG, GIF, Png) Metadata \u0026amp; XMP data information View Spreadsheet Metadata information View PDF file Metadata information Download original file Upload supported format file Select uploaded documents from the list Select Next and Previous document from uploaded document list Clean Metadata (Basic, XMP, Custom Fields, Revisions, Comments) information Download updated, cleaned metadata file. Responsive \u0026amp; clean UI using AngularJS For details about the features supported by the app, please visit the Features Overview.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET.\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins - Source Code Examples, Plugins ASP.NET WebForms Document Metadata Editor App- Source Code Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata Feedback As always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread.\n","permalink":"https://blog.groupdocs.com/metadata/introducing-asp.net-webforms-document-metadata-editor-app-v1.0.0-groupdocs.metadata-for-.net/","summary":"GroupDocs team is pleased to announce first release of ASP.NET WebForms Document Metadata Editor App using GroupDocs.Metadata for .NET API This initial release v1.0.0 comes up with features to provide easy ways to manage metadata in various formats. It enables user to read and remove the metadata of documents (Words, Spreadsheet, Presentation, PDF) and images (JPEG, PNG, GIF) with download the original or updated document and many more features. We recommend you to download and explore this version.","title":"Introducing ASP.NET WebForms Document Metadata Editor App v1.0.0 - GroupDocs.Metadata for .NET"},{"content":"\rAt GroupDocs, we are always focused on delivering the best to our customers. In this regard we are excitedly announcing another monthly release of eSignature for Java API version 17.11. This release not only adds a number of new features to the API, but also adds numerous enhancements along-with some bug fixes. The API now allows user to obtain verification and signing progress . We would recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\neSignature API for Java v17.11 - Features Obtain Verification Progress Obtain Signing Progress Support of Image File formats in Document and Pages Information method Text shape types for Word, Slide and Cell Documents Obtain Digital Signatures from Word, Cell and PDF Documents Java eSignature API v17.11 - Improvements A detailed list of all the improvements made to the API in this release is given below:* Improve Verification when Page is not specified for following document types:\nCells\nImage\nSlides\nWords\nPDF\nSet background color for QRcode and Barcode signatures\nThe e-Signature API v17.11 - Fixes A detailed list of all fixes made in this release of the API are given below:\nMethod for Document Description and Pages raise Exception Incorrect Cells TextStamp rendering Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on Document Signing API for Java:\nDownload – JAR Files Documentation – API Docs Product Support Forum – Technical Support Forum for GroupDocs.Signature Examples – GitHub source code examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/java-e-signing-api-v17.11/","summary":"At GroupDocs, we are always focused on delivering the best to our customers. In this regard we are excitedly announcing another monthly release of eSignature for Java API version 17.11. This release not only adds a number of new features to the API, but also adds numerous enhancements along-with some bug fixes. The API now allows user to obtain verification and signing progress . We would recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.","title":"Introducing Text Signature Appearances in Java e-Signing API v17.11"},{"content":"\rShare this issue:\nMonthly NewsletterJanuary 2018 Hurry! Offer ends January 31st\nGet 25% off GroupDocs.Total for .NET and Java. Quote HOL2017WBS when placing your order.\nThis offer is only available on new GroupDocs.Total purchases and cannot be used in conjunction with other offers, renewals or upgrades. Only available directly from GroupDocs.com, not through third parties or resellers.\nProduct News\nNew Product Launched: GroupDocs.Metadata for Java GroupDocs.Metadata is a Java metadata management API that empowers Java developers to perform all useful metadata operations (view, add, modify, remove, compare, search and remove) of popular file formats. metadata changer API gets the file as input, access the file property information and allows users to perform metadata operations for locating this specific file easily for future reference. Read more details here.\nAdd Watermarks on EMLX and OFT email formats in .NET GroupDocs.Watermark – A watermark creator and removal API for .NET applications, allows you to perform watermarking operations for EMLX and OFT email formats. Furthermore, we have added features to edit Excel objects that can be considered as watermark. Read more details here.\nCompare OneNote Documents with Tables in .NET Applications GroupDocs.Comparison for .NET API enables .NET developers to compare business document formats for changes. The latest version allows comparison of PDF documents with hyperlinks in the content and tables comparison for OneNote documents. Read more details here.\nImport Annotation from Diagram and Set Annotation Opacity for Document Formats in .NET GroupDocs.Annotation for Java 17.10 supports setting annotation opacity properties for PDF, Word, PowerPoint and Diagram file formats. You can also import annotation types like: text, text field, polyline, area, underline, strikeout and area redaction from diagrams and slides. Read more details here.\nFrom the Library\nHow to: Hide Comments in Java applications while Conversion from Excel Files? GroupDocs.Conversion for Java is a multi-format documents conversion API. The new version allows Java users to hide comments when converting from Cells. Conversion from STL (Stereolithography) and IFC (Industry Foundation Classes) is also introduced in this release. Read more details here.\nHow to: Set Color of QR-Code bars using e-Signature API? GroupDocs.Signature for .NET adds new features to the e-signing API. .NET developers can set colors and inner margins for QR-Codes and barcode bars, load Digital Signatures from local system and inner image logo for QR codes. Read more details here.\nHow to: Import Distance Annotations for Word Documents in .NET? GroupDocs.Annotation is a .NET document annotation API to manage annotated notes, comments and tags to documents content within .NET application. The latest version supports importing distance annotations for Word document. Read more details here.\nFeedback\nHow Can We Help You? Do you have ideas for what you\u0026rsquo;d like to see us do in the coming months or have any questions for us? Reply to our newsletter or share your thoughts via the forums. We\u0026rsquo;ll be happy to hear!\nProduct Releases and Updates\nGroupDocs.Total for .NET – The latest versions of GroupDocs .NET APIs packaged into one product suite. GroupDocs.Total for Java – The latest versions of GroupDocs Java APIs packaged into one product suite. ASP.NET WebForms Modern UI for GroupDocs.Viewer for .NET – View document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments and allow user to Zoom, Navigate to Pages, set Watermark and tools/features configuration options through JS Parameters. GroupDocs.Viewer for .NET 17.11 – Improved performance for MHT documents rendering and support of DWG + DFX (2007,2010). GroupDocs.Conversion for .NET 17.12 - Implemented conversion to and from Jpeg2000. GroupDocs.Search for .NET 17.12 – Get highlighted results of exact phrase search in text. Check out for more releases during last month\n","permalink":"https://blog.groupdocs.com/total/celebrate-new-year-25-off-groupdocs.total-apis-groupdocs-newsletter-january-2018/","summary":"Share this issue:\nMonthly NewsletterJanuary 2018 Hurry! Offer ends January 31st\nGet 25% off GroupDocs.Total for .NET and Java. Quote HOL2017WBS when placing your order.\nThis offer is only available on new GroupDocs.Total purchases and cannot be used in conjunction with other offers, renewals or upgrades. Only available directly from GroupDocs.com, not through third parties or resellers.\nProduct News\nNew Product Launched: GroupDocs.Metadata for Java GroupDocs.Metadata is a Java metadata management API that empowers Java developers to perform all useful metadata operations (view, add, modify, remove, compare, search and remove) of popular file formats.","title":"Celebrate New Year with 25% Off GroupDocs.Total APIs – GroupDocs Newsletter January 2018"},{"content":"\rWe always keep on adding new features in our APIs for better user experience. Therefore, today we are proudly announcing version 17.12 of GroupDocs.Metadata for .NET API. Using the latest release, you can now remove **comments **in ZIPformat and read **thumbnail of JPEG **format from EXIF segment. We recommend you to download and use the latest version of the API.\nGroupDocs.Metadata for .NET 17.12 - New Features Following are the new features introduced in version 17.12.\nRemove User Comments in ZIP format Read Thumbnail of JPEG format from EXIF segment For details about the features supported by the API, please visit Features Overview.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET.\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata Feedback As always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread.\n","permalink":"https://blog.groupdocs.com/metadata/remove-comments-in-zip-format-using-groupdocs.metadata-for-.net-17.12/","summary":"We always keep on adding new features in our APIs for better user experience. Therefore, today we are proudly announcing version 17.12 of GroupDocs.Metadata for .NET API. Using the latest release, you can now remove **comments **in ZIPformat and read **thumbnail of JPEG **format from EXIF segment. We recommend you to download and use the latest version of the API.\nGroupDocs.Metadata for .NET 17.12 - New Features Following are the new features introduced in version 17.","title":"Remove Comments in ZIP Format using GroupDocs.Metadata for .NET 17.12"},{"content":"\rWe are excited to announce that GroupDocs.Editor is coming to Java Platform. It will be a lightweight component that\u0026rsquo;ll allow to edit multiple document formats like Word, Cells, Slides, PDF and many more in form of HTML. Moreover, this API will permit user to translate source documents into HTML or save HTML into source document format.\nFeatures Offered by GroupDocs.Editor for JavaGroupDocs will keep on updating this API with new features. An initial list of features offered by the API will be: Native Java API Simple to Use Storage Agnostic UI Agnostic Convert Document to HTML Convert HTML to Document First Version AvailabilityWe are finalizing the first release of GroupDocs.Editor for Java and hope that you will be able to download it very soon. Please stay tuned for further updates. We would be happy to hear your queries or suggestions at GroupDocs.Editor forum. ","permalink":"https://blog.groupdocs.com/editor/upcoming-release-groupdocs.editor-java/","summary":"We are excited to announce that GroupDocs.Editor is coming to Java Platform. It will be a lightweight component that\u0026rsquo;ll allow to edit multiple document formats like Word, Cells, Slides, PDF and many more in form of HTML. Moreover, this API will permit user to translate source documents into HTML or save HTML into source document format.\nFeatures Offered by GroupDocs.Editor for JavaGroupDocs will keep on updating this API with new features.","title":"Upcoming Release of GroupDocs.Editor for Java"},{"content":"\rWe are back with another version of GroupDocs.Viewer for .NET. In this release, we have added HTML minification for optimized rendering of documents into HTML. Not only this, we have also introduced rendering of MS Project documents by specifying time intervals. Let’s have a quick overview of some exciting features of GroupDocs.Viewer for .NET 17.12.\n.NET Document Rendering API - New Features HTML Minification When you are looking for the ways to optimize the rendering of documents into HTML, one of the solutions you might want to use is the compression of the output content (HTML, CSS, and SVG). This solution is suitable in case you are providing your content from the web server over the internet. GroupDocs.Viewer provides **EnableMinification **property of HtmlOptions class that lets you get output content minified (as shown in below code sample).\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.StoragePath = @\u0026#34;C:\\storage\u0026#34;; // Create HTML handler ViewerHtmlHandler htmlHandler = new ViewerHtmlHandler(config); string guid = \u0026#34;document.docx\u0026#34;; HtmlOptions options = new HtmlOptions(); options.EnableMinification = true; List pages = htmlHandler.GetPages(guid, options); foreach (PageHtml page in pages) { Console.WriteLine(\u0026#34;Page number: {0}\u0026#34;, page.PageNumber); Console.WriteLine(\u0026#34;Html content: {0}\u0026#34;, page.HtmlContent); } Currently, minification is only applied to HTML. However, we are going to provide minification for CSS as well in upcoming versions of the API. For more details, please visit this documentation article.\nRendering MS Project Document with Custom Page Size and Time Unit When you are rendering MS Project documents into image, HTML or PDF, GroupDocs.Viewer API tries to find optimal output size and time unit depending on the project\u0026rsquo;s overall length. In case you need to set your own page size or time unit, you can set ProjectOptions class properties of corresponding **RenderOptions ** (HtmlOptions or ImageOptions) or PdfFileOptions class for rendering into PDF, as shown in the example below.\n// Setup GroupDocs.Viewer config ViewerConfig config = new ViewerConfig(); config.StoragePath = @\u0026#34;C:\\storage\u0026#34;; // Create image handler ViewerImageHandler imageHandler = new ViewerImageHandler(config); string guid = \u0026#34;document.mpp\u0026#34;; // Set Project options to render content with a specified size and time unit. ImageOptions options = new ImageOptions(); options.ProjectOptions.PageSize = PageSize.A2; options.ProjectOptions.TimeUnit = TimeUnit.Days; // Get pages List pages = imageHandler.GetPages(guid, options); foreach (PageImage page in pages) { Console.WriteLine(\u0026#34;Page number: {0}\u0026#34;, page.PageNumber); Stream imageContent = page.Stream; } For more details on this feature, please visit this documentation article.\nRemoving Cache Files of a Specific Document On the request of our valuable customers, we have added the support of removing cache files for a specific document. Following code sample demonstrates the usage of this feature.\n//Init viewer config ViewerConfig viewerConfig = new ViewerConfig(); viewerConfig.StoragePath = \u0026#34;c:\\\\storage\u0026#34;; // Init viewer image or HTML handler ViewerImageHandler viewerImageHandler = new ViewerImageHandler(viewerConfig); // Set the guid of the document you want to clear. string guid = \u0026#34;document.docx\u0026#34;; //Clear files from cache related to specified document. viewerImageHandler.ClearCache(guid); For more details on clear cache feature, please visit this documentation article.\nSupport of ODG Format Since version 17.12, we have added the support of rendering ODG (OpenDocument Graphics) file format.\nImproved Rendering of JPEG Image as HTML In previous versions of the API, the JPEG image was converted into PNG format ensuring the high quality of the image when it is displayed inside the HTML page. However, it was resulting in the bigger size of the output HTML page. Therefore, we have implemented the feature of rendering JPEG as HTML without converting image format to PNG.\nDocument Viewer API for .NET - Fixes Following issues are fixed in version 17.12 of GroupDocs.Viewer for .NET.\n\u0026ldquo;Index was out of range\u0026rdquo; exception when rendering XLSX as PDF Blank output when rendering PDF document as HTML CAD document layouts with the size different than model are not rendered correctly Alignment of radio button text and checkbox text is not proper Related Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on document viewer API.\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front End Apps - Open Source Document Viewer Applications Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/introducing-html-minification-in-groupdocs.viewer-for-.net-17.12/","summary":"We are back with another version of GroupDocs.Viewer for .NET. In this release, we have added HTML minification for optimized rendering of documents into HTML. Not only this, we have also introduced rendering of MS Project documents by specifying time intervals. Let’s have a quick overview of some exciting features of GroupDocs.Viewer for .NET 17.12.\n.NET Document Rendering API - New Features HTML Minification When you are looking for the ways to optimize the rendering of documents into HTML, one of the solutions you might want to use is the compression of the output content (HTML, CSS, and SVG).","title":"Introducing HTML Minification in GroupDocs.Viewer for .NET 17.12"},{"content":"\rWe are excited to announce that we have released version 17.12 of GroupDocs.Text for .NET API. In this version, we have introduced a simplified way of extracting text as well as formatted text using a simple interface. We have also extended the support of IPageTextExtractor interface for OneNote documents. Furthermore, the latest version also allows you to retrieve an entity by its name from ZIP container. Please continue to read for more details.\nGroupDocs.Text for .NET API - New Features Extracting Text via Extractor Class This feature allows you to extract text from a file or stream via a simple interface. We have added ExtractText method to Extractor class for this purpose. Following code snippet demonstrates the usage of this feature.\n// Extract text from the stream Console.WriteLine(Extractor.Default.ExtractText(stream)); // Extract text from the file Console.WriteLine(Extractor.Default.ExtractText(fileName)); For more details, please visit this documentation article.\nExtracting Formatted Text via Extractor Class This feature allows extracting formatted text from a file or stream via Extractor class. We have added ExtractFormattedText method to Extractor class for this feature. Following code snippet shows the usage of this feature.\n// Extract formatted text from the stream Console.WriteLine(Extractor.Default.ExtractFormattedText(stream)); // Extract formatted text from the file Console.WriteLine(Extractor.Default.ExtractFormattedText(fileName)); For more details, please visit this documentation article.\nRetrieving Entity by Full Name from ZIP Container This feature allows you to get an entity by its full name from ZIP container. We have added GetEntity method to ZipContainer class for the implementation of this feature. Following is the sample code that could be used to get entity by its name.\n// Create a factory ExtractorFactory factory = new ExtractorFactory(); // Create Zip container ZipContainer zip = new ZipContainer(stream); // Try to get \u0026#34;container.xml\u0026#34; entity from \u0026#34;META-INF\u0026#34; folder Container.Entity containerEntry = zip.GetEntity(\u0026#34;META-INF\\\\container.xml\u0026#34;); // If the entity isn\u0026#39;t found if (containerEntry == null) { throw new GroupDocsTextException(\u0026#34;File not found\u0026#34;); } // Try to create a text extractor TextExtractor extractor = factory.CreateTextExtractor(containerEntry.OpenStream()); try { // Extract text (if the document type is supported) Console.WriteLine(extractor == null ? \u0026#34;Document type isn\u0026#39;t supported\u0026#34; : extractor.ExtractAll()); } finally { // Cleanup if (extractor != null) { extractor.Dispose(); } } For more details, please visit this documentation article.\n.NET Text Extraction API - Enhancements IPageTextExtractor Support for NoteTextExtractor In GroupDocs.Text for .NET 17.12, we have extended the support of IPageTextExtractor for OneNote documents. IPageTextExtractor interface allows you to work with the document\u0026rsquo;s pages in the same way for all supported documents. Following code snippets shows how to extract the text of OneNote document pages using IPageTextExtractor.\n// Create a text extractor NoteTextExtractor textExtractor = new NoteTextExtractor(stream); // Check if IPageTextExtractor is supported IPageTextExtractor pageTextExtractor = textExtractor as IPageTextExtractor; if (pageTextExtractor != null) { // Iterate over all pages for (int i = 0; i \u0026lt; pageTextExtractor.PageCount; i++) { // Print a page number Console.WriteLine(string.Format(\u0026#34;{0}/{1}\u0026#34;, i, pageTextExtractor.PageCount)); // Extract text from the page Console.WriteLine(pageTextExtractor.ExtractPage(i)); } } For more details, please visit this documentation article.\nITextExtractorWithFormatter Interface Since version 17.12, we have added a feature that allows you to get or set document formatter via ITextExtractorWithFormatter interface. ITextExtractorWithFormatter interface has only one property.\nDocumentFormatter DocumentFormatter { get; set; } This property allows you to get or set document formatter of all types of formatted text extractors. Following code sample demonstrates its usage.\n// If the extractor supports ITextExtractorWithFormatter interface if (extractor is ITextExtractorWithFormatter) { // Set MarkdownDocumentFormatter formatter (extractor as ITextExtractorWithFormatter).DocumentFormatter = new MarkdownDocumentFormatter; } For more details, please visit this documentation article.\nGroupDocs.Text for .NET - Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Text:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples - Github Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Text Feedback As always, you are welcome to share your feedback or suggestions to improve this product. Just create a new topic at our forum and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/parser/retrieving-zip-containers-entity-by-full-name-using-groupdocs.text-for-.net-17.12/","summary":"We are excited to announce that we have released version 17.12 of GroupDocs.Text for .NET API. In this version, we have introduced a simplified way of extracting text as well as formatted text using a simple interface. We have also extended the support of IPageTextExtractor interface for OneNote documents. Furthermore, the latest version also allows you to retrieve an entity by its name from ZIP container. Please continue to read for more details.","title":"Retrieving ZIP Container's Entity by Full Name using GroupDocs.Text for .NET 17.12"},{"content":"\rWe have always been improving our APIs to meet the requirements of our customers. Therefore, we are pleased to announce GroupDocs.Comparison for Java 17.3.1. This hotfix comes with a bug fix, developers can validate API license using isValidLicense() method. Download the new release and enhance document comparison experience.\nGroupDocs.Comparison for Java 17.3.1 - Bug Fixes Deprecated method isValidLicense() Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison: Product Home – GroupDocs.Comparison for Java Documentation – Product Documentations Product Support Forum – Technical Support Forum for GroupDocs.Comparison Examples/Plugins/Showcases – Github source code examples FeedbackWe always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/validate-license-in-groupdocs.comparison-for-java-17.3.1/","summary":"We have always been improving our APIs to meet the requirements of our customers. Therefore, we are pleased to announce GroupDocs.Comparison for Java 17.3.1. This hotfix comes with a bug fix, developers can validate API license using isValidLicense() method. Download the new release and enhance document comparison experience.\nGroupDocs.Comparison for Java 17.3.1 - Bug Fixes Deprecated method isValidLicense() Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Hotfix that allows to validate license file in GroupDocs.Comparison for Java 17.3.1"},{"content":"\rKeeping customers feedback in view, we are pleased to announce a new version of GroupDocs.Annotation for Java 17.10.1. This release comes with number of bug fixes. The main fix introduced in this release is exception on adding annotation. We recommend you to download this latest release for a better API experience.\nJava Annotation API v17.10.1 - Fixes SaveAnnotationTextResult is not serialize-able Exception is generated while downloading annotated pdf document Not able to add annotations at all Cannot annotate images Exception generated while importing annotation from diagram AnnotationImageHandler.getPages does not respect ImageOptions.setWidth Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Documentation Annotation API: Download - Zipped JARs Documentation - API Documentation Examples/Showcases - GitHub source code examples Product Support Forum - Technical Support Forum for GroupDocs.Annotation FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/bug-fixes-in-java-annotation-api-v17.10.1/","summary":"Keeping customers feedback in view, we are pleased to announce a new version of GroupDocs.Annotation for Java 17.10.1. This release comes with number of bug fixes. The main fix introduced in this release is exception on adding annotation. We recommend you to download this latest release for a better API experience.\nJava Annotation API v17.10.1 - Fixes SaveAnnotationTextResult is not serialize-able Exception is generated while downloading annotated pdf document Not able to add annotations at all Cannot annotate images Exception generated while importing annotation from diagram AnnotationImageHandler.","title":"Annotated document can be downloaded using GroupDocs.Annotation for Java 17.10.1"},{"content":"\rWe are extremely excited to announce that the first version of GroupDocs.Metadata for Java has been released. GroupDocs.Metadata for Java is a valuable addition to the GroupDocs.Metadata product family that empowers Java developers while working with metadata of popular file formats. It is powerful as well as easy to use API that provides all basic metadata operations (i.e. view, add, modify, remove) for a number of file formats. API gets the file as an input and makes its metadata accessible to the user. The following section contains the information about the key features exposed by the API.\nSalient Features of GroupDocs.Metadata for Java GroupDocs.Metadata for Java allows you to work with:\nBuilt-in metadata properties in documents Custom metadata properties in documents EXIF metadata properties in images EXIF maker-notes XMP metadata properties in images IPTC metadata properties in images Image resource blocks in images PSD Metadata retrieval IFD tags in supported image formats SRational TIFF tags Metadata associated with email messages Metadata attached to popular audio and video formats Metadata of ZIP archives Track changes in supported formats Document information The API also provides some useful utilities to perform following operations:\nInspect and clean hidden metadata in document formats Search and compare metadata Export metadata to Excel/CSV Clean metadata Detect MIME type For more details on supported features, please visit the article: Supported Features\nSupported File Formats GroupDocs.Metadata for Java supports metadata operations for a wide range of file formats (listed below):\nPresentation Document (PPT/PPTX/POT/POTX) Word Document (DOC/DOCX/DOT/DOTX/DOCM) Spreadsheet Document (XLS/XLSX/XLSM/XLT/XLTX/XLTM) Portable Document Format (PDF) OneNote Format (ONE) MS Project Document (MPP) MS Visio (VDX) Open Document Formats (ODT, ODS) JPEG/JPG/JPE Jpeg2000/Jp2 PNG GIF TIFF (*.tif, *.tiff) PSD WMF WEBP EMF BMP DjVu (*.djvu, *.djv) DICOM Email Message (.eml) Outlook Message (.msg) MP3 (.mp3) WAV (.wav) AVI (.avi) For more details on supported file formats, please visit the article: Supported File Formats\nExample Business Cases GroupDocs.Metadata aims to help a lot in various fields of life. For example, while sharing the crucial documents, a business party may not want to expose the confidentiality of its business and employees as well through the reports/documents they prepare. So, just before sending these bulks of reports to the other party, removal of all confidential metadata from the reports is mandatory. GroupDocs.Metadata is the perfect API to serve in this situation. In order to elaborate real-life needs, we have envisaged some real-life cases. For details, please feel free to visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Metadata for Java:\nDownload - Zipped assemblies Documentation – API docs Examples – Source code Product Support Forum – Technical support forum for GroupDocs.Metadata product family Feedback We always love to hear your valuable feedback. Share your suggestions, questions, or queries related to GroupDocs.Metadata for Java at our forum.\n","permalink":"https://blog.groupdocs.com/metadata/releasing-first-version-of-groupdocs.metadata-for-java/","summary":"We are extremely excited to announce that the first version of GroupDocs.Metadata for Java has been released. GroupDocs.Metadata for Java is a valuable addition to the GroupDocs.Metadata product family that empowers Java developers while working with metadata of popular file formats. It is powerful as well as easy to use API that provides all basic metadata operations (i.e. view, add, modify, remove) for a number of file formats. API gets the file as an input and makes its metadata accessible to the user.","title":"Releasing First Version of GroupDocs.Metadata for Java"},{"content":"\rWe are pleased to announce the release of version 17.12 of GroupDocs.Search for .NET. GroupDocs.Search for .NET 17.12 has come with 4 enhancements. We have introduced the feature of getting highlighted results of exact phrase search in text. Furthermore, we have improved the calculation of relevance of search results as well as redesigned the syntax of the search query. We would recommend you to enhance your applications using this latest version.\n.NET Search API - Enhancements GroupDocs.Search for .NET includes following enhancements in version 17.12.\nHighlighted results of exact phrase search in text In this enhancement, generating HTML-formatted text with highlighted found terms is implemented for the results of exact phrase search. Following code snippet demonstrates this feature.\nstring indexFolder = @\u0026#34;c:\\MyIndex\u0026#34; ; string documentsFolder = @\u0026#34;c:\\MyDocuments\u0026#34; ; // Creating index Index index = new Index(indexFolder); // Indexing documents index.AddToIndex(documentsFolder); // Searching for phrase \u0026#39;cumulative distribution function\u0026#39; SearchResults results = index.Search(\u0026#34;\\\u0026#34;cumulative distribution function\\\u0026#34;\u0026#34;); // Generating HTML-formatted text for the first document directly to the file \u0026#39;HighlightedResults.html\u0026#39; index.HighlightInText(\u0026#34;HighlightedResults.html\u0026#34;, results[0]); Improved calculation of relevance of search results In this enhancement, the way of calculating the relevance of search results has been changed. Now the following formula is used to calculate the relevance of each found document: R = O / T, where R is relevance; O is occurrence count in the document; T is total word count in document. Following code sample demonstrates its usage.\n// Implementing comparer public class Comparer : IComparer { public int Compare(DocumentResultInfo x, DocumentResultInfo y) { // Compare y and x in reverse order return y.Relevance.CompareTo(x.Relevance); } } ... string indexFolder = @\u0026#34;c:\\MyIndex\u0026#34;; string documentsFolder = @\u0026#34;c:\\MyDocuments\u0026#34;; // Creating index Index index = new Index(indexFolder); // Indexing index.AddToIndex(documentsFolder); // Creating search parameters object SearchParameters searchParameters = new SearchParameters(); // Enabling fuzzy search searchParameters.FuzzySearch.Enabled = true; // Setting maximum mistake count to 1 searchParameters.FuzzySearch.FuzzyAlgorithm = new TableDiscreteFunction(1); // Searching for term \u0026#39;database\u0026#39; // Using fuzzy search allows to find the plural form of the term \u0026#39;databases\u0026#39; SearchResults searchResults = index.Search(\u0026#34;database\u0026#34;, searchParameters); // Creating and filling array for sorting DocumentResultInfo[] array = new DocumentResultInfo[searchResults.Count]; for (int i = 0; i \u0026lt; array.Length; i++) { array[i] = searchResults[i]; } // Sorting results in array by relevance in descending order Array.Sort(array, new Comparer()); Improved representation of results of exact phrase search This enhancement is implemented to store the results of exact phrase search in a more structured and convenient form. Following code sample shows the usage of this feature.\nstring indexFolder = @\u0026#34;c:\\MyIndex\u0026#34;; string documentsFolder = @\u0026#34;c:\\MyDocuments\u0026#34;; // Creating index Index index = new Index(indexFolder); // Indexing index.AddToIndex(documentsFolder); // Creating search parameters object SearchParameters searchParameters = new SearchParameters(); // Enabling fuzzy search searchParameters.FuzzySearch.Enabled = true; // Setting maximum mistake count to 1 searchParameters.FuzzySearch.FuzzyAlgorithm = new TableDiscreteFunction(1); // Searching for phrase \u0026#39;cumulative distribution function\u0026#39; or phrase \u0026#39;cumulative density function\u0026#39; SearchResults searchResults = index.Search(\u0026#34;\\\u0026#34;cumulative distribution function\\\u0026#34; OR \\\u0026#34;cumulative density function\\\u0026#34;\u0026#34;, searchParameters); // Displaying results foreach (DocumentResultInfo document in searchResults) { Console.WriteLine(document.FileName); foreach (DetailedResultInfo field in document.DetailedResults) { Console.WriteLine(field.FieldName); foreach (string[] phrase in field.TermSequences) { Console.Write(\u0026#34;\\t\u0026#34;); foreach (string word in phrase) { Console.Write(word + \u0026#34; \u0026#34;); } Console.WriteLine(); } } } // The results may contain the following phrases: // cumulative distribution function // cumulative distribution functions // cumulative density function // cumulative density functions Improved search query syntax The syntax of the search query language has been redesigned to make it more understandable and conventional. For details, please visit this documentation article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search:\nDownload - MSI Package NuGet - NuGet Install Documentation - API docs Examples/Plugins/Showcases - Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to the .NET Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/highlighted-results-of-exact-phrase-search-in-text-groupdocs.search-for-.net-17.12/","summary":"We are pleased to announce the release of version 17.12 of GroupDocs.Search for .NET. GroupDocs.Search for .NET 17.12 has come with 4 enhancements. We have introduced the feature of getting highlighted results of exact phrase search in text. Furthermore, we have improved the calculation of relevance of search results as well as redesigned the syntax of the search query. We would recommend you to enhance your applications using this latest version.","title":"Highlighted Results of Exact Phrase Search in Text - GroupDocs.Search for .NET 17.12"},{"content":"\rWe are extremely excited to announce the final release of GroupDocs.Watermark for .NET for the year of 2017. In this release, we have extended the supported file formats by adding EMLX and OFT email formats. Furthermore, we have added features to edit Excel objects that can be considered as watermark. Please continue to read more about this latest release.\nSupport for EMLX and OFT Email FormatsGroupDocs.Watermark for .NET 17.12 allows you to perform watermarking operations for EMLX and OFT email formats. For more details on the supported features for email formats, please visit this documentation article. Ability to Edit Excel ObjectsUsing GroupDocs.Watermark for .NET 17.12, you can edit the objects that can be used as watermark in an Excel document. Following is the list of added features. Replace text for particular shapes Update formatted text for particular shapes Change shape image Set background image for particular shapes Modify shape properties Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Watermark: Download - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples - Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum - Technical Support Forum for GroupDocs.Watermark FeedbackAs always, we would love to hear your queries and suggestions at our forum. ","permalink":"https://blog.groupdocs.com/watermark/support-for-emlx-and-oft-email-formats-groupdocs.watermark-for-.net-17.12/","summary":"We are extremely excited to announce the final release of GroupDocs.Watermark for .NET for the year of 2017. In this release, we have extended the supported file formats by adding EMLX and OFT email formats. Furthermore, we have added features to edit Excel objects that can be considered as watermark. Please continue to read more about this latest release.\nSupport for EMLX and OFT Email FormatsGroupDocs.Watermark for .NET 17.12 allows you to perform watermarking operations for EMLX and OFT email formats.","title":"Introducing Support for EMLX and OFT Email Formats in GroupDocs.Watermark for .NET 17.12"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Conversion for .NET 17.12. This release comes with support of Jpeg2000. Few improvements and bug fixes are also introduced. Such as Image to SVG conversion is improved and InvalidValueFormatException exception on PDF to TIF conversion is resolved. We\u0026rsquo;d recommend you to download the latest release of the API and share your experience.\nDocument Conversion API for .NET - Feature Implement conversion from/to Jpeg2000 GroupDocs Document Conversion API - Improvements Possibility to convert one sheet per page or depending on print area when converting Cells to Pdf Optimize target Pdf for minimum file size when converting Cells to Pdf Image to SVG conversion Words to Gif conversion improvement GroupDocs.Conversion for .NET 17.12 - Bug Fixes PDF to TIF conversion, InvalidValueFormatException Index was outside the bounds of the array, while Converting .xlsx File To PDF Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion: Downloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Wiki Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/conversion-jpeg2000-introduced-groupdocs.conversion-.net-17.12/","summary":"We are pleased to announce another monthly release of GroupDocs.Conversion for .NET 17.12. This release comes with support of Jpeg2000. Few improvements and bug fixes are also introduced. Such as Image to SVG conversion is improved and InvalidValueFormatException exception on PDF to TIF conversion is resolved. We\u0026rsquo;d recommend you to download the latest release of the API and share your experience.\nDocument Conversion API for .NET - Feature Implement conversion from/to Jpeg2000 GroupDocs Document Conversion API - Improvements Possibility to convert one sheet per page or depending on print area when converting Cells to Pdf Optimize target Pdf for minimum file size when converting Cells to Pdf Image to SVG conversion Words to Gif conversion improvement GroupDocs.","title":"Conversion from Jpeg2000 is introduced in GroupDocs.Conversion for .NET 17.12"},{"content":"\rToday, we are pleased to announce another release of ASP.NET WebForms Modern UI Document Viewer 2.0.0 using GroupDocs.Viewer for .NET version 17.11.0. This release v2.0.0 comes up with new features and improvements to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments and allow user to Zoom, Navigate to Pages, set Watermark and tools/features configuration options through JS Parameters and many more features.\nLet\u0026rsquo;s have a look at it.\nWe recommend you to download and explore this new version.\nLet\u0026rsquo;s explore new features in more detail.\nDocument Image Representation In addition to document HTML representation now document Image rendering mode is also enabled that allow user to view document as image representation and switching between Image \u0026amp; HTML representation is just a click away.\nPage Navigation for HTML \u0026amp; Image View Paging feature is enabled for both HTML \u0026amp; Image mode rendering and now user can navigate to pages as:\nMove to First Page. Move to Last Page. Move to Next Page. Move to Previous Page. Go to User Entered Page. Zooming for HTML \u0026amp; Image View Zooming feature is now fully enabled and enhanced for both HTML \u0026amp; Image mode rendering and now user can zoom as:\nZoom- In. Zoom-Out. Zoom by Level. Show/Hide \u0026amp; Configure Tools from JS Parameters User can now show or hide any available tools from JS/JavaScript parameters by simply passing \u0026ldquo;true\u0026rdquo; or \u0026ldquo;false\u0026rdquo; value, this JS parameters options enable user to control the default configuration values such as Default File selection, Watermark Properties (watermark text, color, angle and opacity level), Default Zoom Level and default document Rendering Mode (Image or HTML) view etc.\nLet’s have a look at these JS parameters those can be set directly from Index view.\n// Show/Hide Tools ShowWatermark = true; ShowImageToggle = true; ShowZooming = true; ShowRotateImage = true; ShowDownloads = true; ShowFileSelection = true; ShowThubmnailPanel = true; ShowPagingPanel = true; EnableContextMenu = false; // Set Default values DefaultFilePath = 'calibre.docx'; // leave empty to skip default file loading. isImageToggle = false; // set true to display image mode rendering by default. ZoomValue = 100; // integer values, zoom level default value in percentage (%) 5% to 600%. // Set Watermark properties WatermarkText = \u0026quot;my watermark text\u0026quot;; WatermarkColor = 4366342; // integer values represents the ARGB color. WatermarkPosition = 'Diagonal'; // e.g Diagonal, TopLeft, TopCenter, TopRight etc. WatermarkWidth = 70;\nDownload \u0026amp; Open Document as PDF Download feature enhanced and now allow user to either directly download the document as PDF or open document as PDF in web browser.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer.\nDownload - MSI Package as well as Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum for GroupDocs.Viewer for .NET Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples ASP.NET Webforms Modern UI - Open Source Document Viewer Applications Feedback We always appreciate and welcome our valuable users to share their feedback to improve this front-end application. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/viewer/asp.net-webforms-modern-ui-document-viewer-2.0.0-image-mode-paging-zooming-features-groupdocs.viewer-.net/","summary":"Today, we are pleased to announce another release of ASP.NET WebForms Modern UI Document Viewer 2.0.0 using GroupDocs.Viewer for .NET version 17.11.0. This release v2.0.0 comes up with new features and improvements to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments and allow user to Zoom, Navigate to Pages, set Watermark and tools/features configuration options through JS Parameters and many more features.","title":"Document Viewer 2.0.0 with Image Mode, Page navigation and Zooming Features ASP.NET WebForms Modern UI – GroupDocs.Viewer for .NET"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Comparison for .NET 17.12. This release covers 2 new features, some improvements and bug fixes. API allows comparison of PDF documents with hyperlinks in the content and tables comparison for OneNote documents. Aside these features, count of changes on summary page is improved. We\u0026rsquo;d recommend you to download latest version of the API and share your document comparison experience.\nDocument Conversion API for .NET - Features Comparison.Note:Implement comparison of tables Comparison.PDF: Support hyperlinks comparing GroupDocs Document Conversion API - Improvements PDF text and columns mapping Comparison.Word:Improvement special cases of word division Count of changes on summary page Comparison.PDF: Add processing tables with invisible frames Improve style absorbing of cells, tables, textstates Add intermediate with HyperLink in Words Implement intermediate with HyperLink in Note Aligner for Comparison.Note GroupDocs.Conversion for .NET 17.12 - Bug Fixes Comparison.Pfd: Fix GetChangesFromParagraph method Fix bug when some paragraphs align not right Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nDownloads - MSI Package and Zipped Format Nuget Package - NuGet Install Documentation - Product Docs Video Tutorials - YouTube Videos Support Forum - Technical Support Forum Example / Plugins - Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/compare-onenote-tables-groupdocs.comparison-.net-17.12/","summary":"We are pleased to announce another monthly release of GroupDocs.Comparison for .NET 17.12. This release covers 2 new features, some improvements and bug fixes. API allows comparison of PDF documents with hyperlinks in the content and tables comparison for OneNote documents. Aside these features, count of changes on summary page is improved. We\u0026rsquo;d recommend you to download latest version of the API and share your document comparison experience.\nDocument Conversion API for .","title":"Compare OneNote with Tables in GroupDocs.Comparison for .NET 17.12"},{"content":"\rWe are happy to announce that GroupDocs.Metadata is coming soon to Java Platform. It will be a back-end API that will allow you to work with metadata associated with various file formats including documents, images, audios, videos, zip, emails and many more. The API aims to facilitate its users with simple syntax, easy to use methods and few lines of code to perform metadata operations. GroupDocs.Metadata for Java will soon be available for download.\nFeatures Offered by GroupDocs.Metadata for Java GroupDocs.Metadata for Java will cover most of the features supported by GroupDocs.Metadata product family and we will keep on updating this API with new features. An initial list of features offered by the API will be:\nRead, create, modify and remove metadata associated with supported document and image formats with a few lines of code Covers most popular metadata standards: XMP, EXIF, IPTC, Image Resource Blocks, ID3, document properties Covers most popular document formats: Microsoft Word, Microsoft Excel, Microsoft PowerPoint, PDF, Microsoft OneNote, Microsoft Visio, Open Document Format Covers most popular image formats: BMP, GIF, DjVu, JPEG, PNG, TIFF, PSD, WebP, WMF, EMF, DICOM Covers most popular email formats: Outlook Message, Email Message Covers most popular audio formats: Mp3, WAV Covers most popular video formats: Avi, Mov Manage EXIF metadata in Jpeg and TIFF formats Manage XMP metadata in image and PDF formats Manage Image Resource blocks in image formats Manage audio metadata: ID3 tag (ID3v1, ID3v2), Lyrics3 tag, APE Utilities to inspect and clean hidden metadata in document formats Utilities to Search and Compare all metadata Utilities to Export metadata to Excel/CSV Metadata cleaner utility MIME type detection Read track changes. Accept or reject track changes Read EXIF maker-notes: Sony, Nikon, Canon, Panasonic First Version Availability We are finalizing the first release of GroupDocs.Metadata for Java and hope that you will be able to grab it very soon. Please stay tuned for further updates. We would be happy to hear your queries or suggestions at GroupDocs.Metadata forum.\n","permalink":"https://blog.groupdocs.com/metadata/upcoming-release-of-groupdocs.metadata-for-java/","summary":"We are happy to announce that GroupDocs.Metadata is coming soon to Java Platform. It will be a back-end API that will allow you to work with metadata associated with various file formats including documents, images, audios, videos, zip, emails and many more. The API aims to facilitate its users with simple syntax, easy to use methods and few lines of code to perform metadata operations. GroupDocs.Metadata for Java will soon be available for download.","title":"Upcoming Release of GroupDocs.Metadata for Java"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Conversion for Java 17.10. This release permits users to hide comments when converting from Cells. Conversion from STL and IFC is also introduced in 17.10 version of the API. Aside these features, API covers many improvements and bug fixes. Such as Slides to XPS conversion is improved. We\u0026rsquo;d recommend you to download this latest release and share your documents conversion experience.\nDocument Conversion API for Java - Features Hide comments for Cells documents Implement possibility to convert specific pages Conversion from STL and IFC Conversion of document containing images to RTF with \u0026ldquo;old readers\u0026rdquo; compatibility GroupDocs Document Conversion API - Improvements Simplify the generated HTML markup Convert Diagram to Html improvements Conversion from SVG improvement Email to Html conversion improvement Improved public API Improve document savers for saving complete document and save by page Cells To XPS conversion improvement WatermarkOptions is instantiated default Width and Height of the watermark Set default transparency of watermark to 0.5 Slides To XPS conversion improvement Expose FileType and PagesCount properties in ConvertedDocument class GroupDocs.Conversion for Java 17.10 - Bug Fixes Converting to Html with SaveOptions.FixedLayout=false always produce fixed layout html conversion PPTX to HTML Conversion - While converting pptx to html found improper text formatting of Header or missing text ImageSaveOptions.TiffOptions.Compression does not seem to work PPTX to HTML Conversion - Image without background converted with white background also white dot is added near Header Text Images are missing when PDF is saved to EPUB Incorrect conversion from One to Pdf PsdOptions does not have constrcutor Converting HTML with external resources produce wrong output Pdf locked with modification password but without view password cannot be converted Conversion .html to .pdf doesn\u0026rsquo;t load .css and image resources from relative path Simplify the generated HTML markup File extension for filetype is not reliable Corrupted Jpeg scan component id definition. Cannot load image Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion: API Home - GroupDocs.Conversion for Java Download - GroupDocs.Conversion for Java Download Documentation - Product Documentation Examples/Plugins/Showcases - GitHub source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion ","permalink":"https://blog.groupdocs.com/conversion/conversion-from-stl-and-ifc-is-supported-in-groupdocs.conversion-for-java-17.10/","summary":"We are pleased to announce another monthly release of GroupDocs.Conversion for Java 17.10. This release permits users to hide comments when converting from Cells. Conversion from STL and IFC is also introduced in 17.10 version of the API. Aside these features, API covers many improvements and bug fixes. Such as Slides to XPS conversion is improved. We\u0026rsquo;d recommend you to download this latest release and share your documents conversion experience.","title":"Conversion from STL and IFC is Supported in GroupDocs.Conversion for Java 17.10"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Annotation for Java v17.10 with some new features like import of annotation from Diagram, setting annotations opacity and many more. This monthly release also covers improvements like change in arrow shape and import of text annotations. Aside this, many fixes are also introduced in this release. For further information, please see release notes. We\u0026rsquo;d recommend you to download latest release of the API, integrate it in your project and share your valuable feedback.\nGroupDocs.Annotation for Java 17.10 - New FeaturesFollowing new features are introduced:* Set annotation opacity for following document types Diagram\nPDF\nWord\nSlide\nImport following annotation types from Diagram\nTextField\nText\nPolyline\nArea Redaction\nArea\nImport following annotation types from Slides\nHighlight\nUnderline\nStrikeout\nText\nAdd comments to annotations in Diagram for following annotation types\nDistance\nArrow\nResource Redaction\nArea\nPolyline\nImplement following annotation types for Slides\nDistance\nUnderline\nStrikeout\nText\nIntroducing following feature for Distance annotation\nClean\nImport\nExport\nDocument Annotation API - ImprovementsFollowing improvements are introduced in this release: Additional specific exceptions Simplify the cleaning of the document for the correct import of text annotations Change arrow shape for arrow annotation GroupDocs.Annotation for Java API - Bug FixesFollowing bug(s) is fixed/resolved in 17.10 version of the API:* Exception when: Annotating xlsx and pptx formatted document\nGet a document using file path as argument\nDeleting annotation with multiple replies\nCertain method is called simultaneously\nRetrieving area annotation from DOCX file\nBug with parsing specific SVG path\nExport document to word creates multiple comments\nWrong comment and Distance annotation exported to Word\nWords: Fix export annotations for large fonts\nExporting a Word document adds old comments\nComment is not exported in Word\nFailed to get added annotations\nAPI fails to create Temp Directory in storage path\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Documentation Annotation API: Download - Zipped JARs Documentation - API Documentation Examples/Showcases - GitHub source code examples Product Support Forum - Technical Support Forum for GroupDocs.Annotation FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/introducing-groupdocs-annotation-for-java-17.10/","summary":"We are pleased to announce another monthly release of GroupDocs.Annotation for Java v17.10 with some new features like import of annotation from Diagram, setting annotations opacity and many more. This monthly release also covers improvements like change in arrow shape and import of text annotations. Aside this, many fixes are also introduced in this release. For further information, please see release notes. We\u0026rsquo;d recommend you to download latest release of the API, integrate it in your project and share your valuable feedback.","title":"Annotation Opacity is Introduced in GroupDocs.Annoation for Java 17.10"},{"content":"\rWe are inspired to see a wide number of users across the world using GroupDocs.Viewer and their feedback always motivate us to improve and enhance the API features. Therefore, today, we are announcing another monthly release of GroupDocs.Viewer for .NET with **15 **improvements and bug fixes. Let’s have an overview of the latest version.\n.NET Document Rendering API - ImprovementsWe have provided the following improvements in GroupDocs.Viewer for .NET 17.11. New overload for RotatePage and ReorderPage methods with ability to specify RenderOptions Improved performance for MHT documents rendering Dropped support of caching based on render options Added code examples for CAD rendering options Loading custom fonts on demand Improved styles generation when rendering into HTML with embedded resources Watermark is not over the content when rendering into HTML Support of DWG + DFX (2007,2010) Document Viewer API for .NET - FixesFollowing issues are fixed in version 17.11 of GroupDocs.Viewer for .NET. ViewerConfig.FontDirectories property is not working for text documents Exception when rendering Excel documents into HTML and image Index out of range exception when rendering CAD document Content is missing when rendering interactive PDF document Columns are missing when rendering Excel document to PDF and HTML Missing words and characters when rendering PDF to HTML Incorrect positioning of characters when rendering PDF to HTML Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/improvements-and-fixes-in-groupdocs.viewer-for-.net-17.11/","summary":"We are inspired to see a wide number of users across the world using GroupDocs.Viewer and their feedback always motivate us to improve and enhance the API features. Therefore, today, we are announcing another monthly release of GroupDocs.Viewer for .NET with **15 **improvements and bug fixes. Let’s have an overview of the latest version.\n.NET Document Rendering API - ImprovementsWe have provided the following improvements in GroupDocs.Viewer for .NET 17.","title":"Improvements and Fixes in GroupDocs.Viewer for .NET 17.11"},{"content":"\rToday, we are pleased to announce another release of Java Modern UI Document Viewer 3.1.0 using GroupDocs.Viewer for Java version 17.2.0. This release v3.1.0 comes up with new features and improvements to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments and allow user to Zoom, Navigate to Pages, set Watermark and tools/features configuration options through JS Parameters and many more features.\nLet\u0026rsquo;s have a look at it.\nWe recommend you to download and explore this new version.\nLet\u0026rsquo;s explore new features in more detail.\nPage Navigation for HTML \u0026amp; Image View Paging feature is enabled for both HTML \u0026amp; Image mode rendering and now user can navigate to pages as:\nMove to First Page. Move to Last Page. Move to Next Page. Move to Previous Page. Go to User Entered Page. Zooming for HTML \u0026amp; Image View Zooming feature is now fully enabled and enhanced for both HTML \u0026amp; Image mode rendering and now user can zoom as:\nZoom- In. Zoom-Out. Zoom by Level. Show/Hide \u0026amp; Configure Tools from JS Parameters User can now show or hide any available tools from JS/JavaScript parameters by simply passing \u0026ldquo;true\u0026rdquo; or \u0026ldquo;false\u0026rdquo; value, this JS parameters options enable user to control the default configuration values such as Default File selection, Watermark Properties (watermark text, color, angle and opacity level), Default Zoom Level and default document Rendering Mode (Image or HTML) view etc.\nLet’s have a look at these JS parameters those can be set directly from Index view.\n// Show/Hide Tools ShowWatermark = true; ShowImageToggle = true; ShowZooming = true; ShowRotateImage = true; ShowDownloads = true; ShowFileSelection = true; ShowThubmnailPanel = true; ShowPagingPanel = true; EnableContextMenu = false; // Set Default values DefaultFilePath = 'calibre.docx'; // leave empty to skip default file loading. isImageToggle = false; // set true to display image mode rendering by default. RotateAngel = 0; // integer value e.g 0 or 90 or 180 or 270. ZoomValue = 100; // integer values, zoom level default value in percentage (%) 5% to 600%. // Set Watermark properties WatermarkText = \u0026quot;my watermark text\u0026quot;; WatermarkColor = 4366342; // integer values represents the ARGB color. WatermarkPosition = 'Diagonal'; // e.g Diagonal, TopLeft, TopCenter, TopRight etc. WatermarkWidth = 70;\nDownload \u0026amp; Open Document as PDF Download feature enhanced and now allow user to either directly download the document as PDF or open document as PDF in web browser.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer.\nDownload - API Package Documentation - Product Docs Forum - Technical Support Forum for GroupDocs.Viewer for Java Example - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this front-end application. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/viewer/modern-ui-document-viewer-3.1-paging-js-parameters-zooming-features-groupdocs.viewer-java/","summary":"Today, we are pleased to announce another release of Java Modern UI Document Viewer 3.1.0 using GroupDocs.Viewer for Java version 17.2.0. This release v3.1.0 comes up with new features and improvements to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments and allow user to Zoom, Navigate to Pages, set Watermark and tools/features configuration options through JS Parameters and many more features.","title":"Modern UI Document Viewer 3.1 with Paging JS Parameters and Zooming Features - GroupDocs.Viewer for Java"},{"content":"\rAnother monthly release of GroupDocs.Conversion for .NET 17.11 is on-board. This release comes with new document formats support such as POTX and POTM. Cells to SVG and Diagram to SVG conversions are improved. Furthermore, some bug fixes are also announced. We\u0026rsquo;d recommend you to download the latest release of the API and share your experience.\nDocument Conversion API for .NET - Features Conversion from/to POTX and POTM Back and forth PPTM, PPSM documents conversion Implement conversion from/to XLTX and XLTM GroupDocs Document Conversion API - Improvements Check for unsupported Excel 95 XLS file format and throw an exception Cells to SVG conversion improvement Improved Diagram to SVG conversion Set custom font directories GroupDocs.Conversion for .NET 17.11 - Bug Fixes Conversion for Doc with macro to Docx failed System.ArgumentException when converting Mobi to Ppt or Pps Conversion of specific pptx to jpg results wrong output Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion: Downloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Wiki Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/conversion-potx-supported-groupdocs.conversion-.net-17.11/","summary":"Another monthly release of GroupDocs.Conversion for .NET 17.11 is on-board. This release comes with new document formats support such as POTX and POTM. Cells to SVG and Diagram to SVG conversions are improved. Furthermore, some bug fixes are also announced. We\u0026rsquo;d recommend you to download the latest release of the API and share your experience.\nDocument Conversion API for .NET - Features Conversion from/to POTX and POTM Back and forth PPTM, PPSM documents conversion Implement conversion from/to XLTX and XLTM GroupDocs Document Conversion API - Improvements Check for unsupported Excel 95 XLS file format and throw an exception Cells to SVG conversion improvement Improved Diagram to SVG conversion Set custom font directories GroupDocs.","title":"Conversion to POTX is supported in GroupDocs.Conversion for .NET 17.11"},{"content":"\rTeam GroupDocs is really glad to announce the release of version 17.11 of the GroupDocs.Assembly for .NET API. You can now insert images and barcodes in email formats and remove selective chart series dynamically. Furthermore, new identifiers for barcodes are introduced in this new release. For a better experience with the API, we recommend you to download the latest release and try out the new features introduced in GroupDocs.Assembly for .NET.\nDocument Generation API for .NET - New Features GroupDocs.Assembly for .NET introduces the following new features in version 17.11 of the API:\nDynamic insertion of images and barcodes in email messages with HTML bodyDynamic insertion of images and barcodes is now supported for MSG, EML, and MHTML documents with HTML body created using Microsoft Outlook or Microsoft Word. Ability to remove selective chart series dynamicallyFor a chart with dynamic data, you can select which series to include into it dynamically based upon conditions. In particular, this feature is useful when you need to restrict access to sensitive data in chart series for some users of your application. Dynamic generation of Codablock F barcodesYou can now use codablockF identifier to generate Codablock G barcodes. Support for dynamic generation of GS1 Codablock F barcodes**CodablockFGS1 **identifier is introduced to dynamically generate Codablock G barcodes. For a complete list of features supported by the API, please visit this documentation article. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly for .NET:\nDownload - MSI Package as well as Zipped DLLs NuGet - Nuget Installation Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly Feedback We observe your feedback carefully, please share your feedback about GroupDocs.Assembly for .NET API. We will be happy to know your thoughts and we will try to enhance your experience with the API. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/assembly/dynamic-insertion-of-images-and-barcode-using-groupdocs.assembly-for-.net-v17.11/","summary":"Team GroupDocs is really glad to announce the release of version 17.11 of the GroupDocs.Assembly for .NET API. You can now insert images and barcodes in email formats and remove selective chart series dynamically. Furthermore, new identifiers for barcodes are introduced in this new release. For a better experience with the API, we recommend you to download the latest release and try out the new features introduced in GroupDocs.Assembly for .","title":"Dynamic Insertion of Images and Barcodes using GroupDocs.Assembly for .NET 17.11"},{"content":"\rAt GroupDocs, we are always focused on delivering the best to our customers. In this regard we are excitedly announcing another monthly release of GroupDocs.Assembly for Java v17.11. You can now insert images and barcodes in emails format, and remove selective chart series dynamically. Furthermore, new identifiers for barcodes are introduced in this new release. We would recommend you to download and integrate this latest release.\nJava Document Assembly API - New Features This latest release provides support for:\nDynamic insertion of images and barcodes for email messages with HTML body Removing selective chart series dynamically Dynamic generation of Codablock F barcodes Dynamic generation of GS1 Codablock F barcodes Text styles (bold, italic) for textual elements of barcodes Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly:\nDownload - Jar File Documentation - API Documentation Examples/Plugins/Showcases - Github source code examples Product Support Forum - Technical Support Forum for GroupDocs.Assembly Feedback We\u0026rsquo;d like to hear your valuable feedback. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/assembly/remove-chart-series-dynamically-in-groupdocs.assembly-for-java-v17.11/","summary":"At GroupDocs, we are always focused on delivering the best to our customers. In this regard we are excitedly announcing another monthly release of GroupDocs.Assembly for Java v17.11. You can now insert images and barcodes in emails format, and remove selective chart series dynamically. Furthermore, new identifiers for barcodes are introduced in this new release. We would recommend you to download and integrate this latest release.\nJava Document Assembly API - New Features This latest release provides support for:","title":"Remove Chart Series Dynamically with GroupDocs.Assembly for Java 17.11"},{"content":"\rToday, we are pleased to announce another release of ASP.NET MVC Modern UI Document Viewer 1.4 using GroupDocs.Viewer for .NET v17.10. This release v1.4 came up with new features and improvements to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments and allow user to Zoom, Navigate to Pages, set Watermark and tools/features configuration options through JS Parameters and many more features.\nLet\u0026rsquo;s have a look at it.\nWe recommend you to download and explore this new version.\nLet\u0026rsquo;s explore new features in more detail.\nShow/Hide \u0026amp; Configure Tools from JS Parameters User can now show or hide any available tools from JS/JavaScript parameters by simply passing \u0026ldquo;true\u0026rdquo; or \u0026ldquo;false\u0026rdquo; value, this JS parameters options enable user to control the default configuration values such as Default File selection, Watermark Properties (watermark text, color, angle and opacity level), Default Zoom Level and default document Rendering Mode (Image or HTML) view etc. Let’s have a look at these JS parameters those can be set directly from Index view. // Show/Hide Tools ShowWatermark = true; ShowImageToggle = true; ShowZooming = true; ShowRotateImage = true; ShowDownloads = true; ShowFileSelection = true; ShowThubmnailPanel = true; ShowPagingPanel = true; EnableContextMenu = false; // Set Default values DefaultFilePath = \u0026lsquo;calibre.docx\u0026rsquo;; // leave empty to skip default file loading. isImageToggle = false; // set true to display image mode rendering by default. RotateAngel = 0; // integer value e.g 0 or 90 or 180 or 270. ZoomValue = 100; // integer values, zoom level default value in percentage (%) 5% to 600%. // Set Watermark properties WatermarkText = \u0026quot;my watermark text\u0026quot;; WatermarkColor = 4366342; // integer values represents the ARGB color. WatermarkPosition = 'Diagonal'; // e.g Diagonal, TopLeft, TopCenter, TopRight etc. WatermarkWidth = 70; WatermarkOpacity = 180; // integer values.\nZooming for HTML \u0026amp; Image View Zooming feature is now fully enabled and enhanced for both HTML \u0026amp; Image mode rendering and now user can zoom as:\nZoom- In. Zoom-Out. Zoom by Level. Page Navigation for HTML \u0026amp; Image View Paging feature is enabled for both HTML \u0026amp; Image mode rendering and now user can navigate to pages as:\nMove to First Page. Move to Last Page. Move to Next Page. Move to Previous Page. Go to User Entered Page. Download \u0026amp; Open Document as PDF Download feature enhanced and now allow user to either directly download the document as PDF or open document as PDF in web browser.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer.\nDownload - MSI Package as well as Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum for GroupDocs.Viewer for .NET Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this front-end application. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs.viewer-for-.net-asp.net-mvc-modern-ui-document-viewer-v1.4.0-with-paging-js-parameters-and-zooming/","summary":"Today, we are pleased to announce another release of ASP.NET MVC Modern UI Document Viewer 1.4 using GroupDocs.Viewer for .NET v17.10. This release v1.4 came up with new features and improvements to view document in both HTML and Image representations for different document formats like DOCX, PDF, XLSX, PPTX, MSG with attachments and allow user to Zoom, Navigate to Pages, set Watermark and tools/features configuration options through JS Parameters and many more features.","title":"GroupDocs.Viewer for .NET - ASP.NET MVC Modern UI Document Viewer 1.4 with Paging JS Parameters and Zooming Features"},{"content":"\rThis blog post covers the hotfix introduced in GroupDocs.Conversion for Java 17.7.1. In previous version of the API there were formatting issues in DOCX to PDF conversion on different platforms/environments. But now API permits developers to get font directories where they can add fonts and expel formatting issues in the output document. We would recommend you to explore the release and enhance your document conversion experience for multiple platforms.\nGroupDocs Document Conversion API - Bug Fixes Single source file DOCX different outputs PDF on different platforms/environment Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion: API Home - GroupDocs.Conversion for Java Download - GroupDocs.Conversion for Java Download Documentation - Product Documentation Examples/Plugins/Showcases - GitHub source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion ","permalink":"https://blog.groupdocs.com/conversion/announcing-hotfix-groupdocs.conversion-java-17.7.1/","summary":"This blog post covers the hotfix introduced in GroupDocs.Conversion for Java 17.7.1. In previous version of the API there were formatting issues in DOCX to PDF conversion on different platforms/environments. But now API permits developers to get font directories where they can add fonts and expel formatting issues in the output document. We would recommend you to explore the release and enhance your document conversion experience for multiple platforms.","title":"Announcing Hotfix release of GroupDocs.Conversion for Java 17.7.1"},{"content":"\rWe are pleased to announce the release of version 17.11 of GroupDocs.Watermark for .NET API. This version enables you to work with Email Formats and obsolete SlidesBaseSlide.BackgroundImage property has been removed. Just download the latest release to get benefit from new features available in GroupDocs.Watermark for .NET API. Please continue to read more about version 17.11.\nWorking with Email FormatsGroupDocs.Watermark for .NET 17.11 provides the ability to work with the Email formats. The latest version allows loading emails as well as adding, removing, extracting and embedding attachments and images in the email messages. For details please visit this documentation article. Below is the list of operations that can be performed: Load email message Extract all attachments from email message Remove particular attachment from email Add an attachment to email message Modify body and subject of an email message Embed an image to email message body Remove all the embedded images from Email message body Search text in email message body/subject Add watermark to all attachments in email message List all message recipients Removal of SlidesBaseSlide.BackgroundImage PropertyIn GroupDocs.Watermark for .NET 17.11, the SlidesBaseSlide.BackgroundImage property has been removed and you can access BackgroundImage property as ImageFillFormat.BackgroundImage property of SlidesDocument class. For further details, please visit: Working with Backgrounds. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Watermark: Download - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples - Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum - Technical Support Forum for GroupDocs.Watermark FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/watermark/working-with-email-messages-using-groupdocs.watermark-for-.net-17.11/","summary":"We are pleased to announce the release of version 17.11 of GroupDocs.Watermark for .NET API. This version enables you to work with Email Formats and obsolete SlidesBaseSlide.BackgroundImage property has been removed. Just download the latest release to get benefit from new features available in GroupDocs.Watermark for .NET API. Please continue to read more about version 17.11.\nWorking with Email FormatsGroupDocs.Watermark for .NET 17.11 provides the ability to work with the Email formats.","title":"Working with Email Messages using GroupDocs.Watermark for .NET 17.11"},{"content":"\rWe are glad to announce another monthly release of GroupDocs.Search for .NET API. The latest version 17.11 provides metadata indexing as well as improved indexing for PDF documents. This release also provides support for MSG, EML and EMLX file formats. Just download the latest release to check out the new and improved features of GroupDocs.Search for .NET API. Please continue to read more about version 17.11.\nGroupDocs.Search for .NET API - New Feature GroupDocs.Search for .NET version 17.11 implements new feature of indexing only Metadata of documents. The metadata index contains metadata such as file name, creation date, and modification date. For details please visit Indexing Metadata of Document.\n.NET Search API - Enhancements GroupDocs.Search for .NET includes following enhancements in version 17.11.\nSupport of MSG, EML, EMLX file formats Improved indexing performance for PDF documents Available Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search:\nDownload - MSI Package NuGet - NuGet Installation Documentation - API docs Examples/Plugins/Showcases - Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to the .NET Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/groupdocs.search-for-.net-17.11-metadata-indexing/","summary":"We are glad to announce another monthly release of GroupDocs.Search for .NET API. The latest version 17.11 provides metadata indexing as well as improved indexing for PDF documents. This release also provides support for MSG, EML and EMLX file formats. Just download the latest release to check out the new and improved features of GroupDocs.Search for .NET API. Please continue to read more about version 17.11.\nGroupDocs.Search for .NET API - New Feature GroupDocs.","title":"Introducing Metadata Indexing in GroupDocs.Search for .NET 17.11"},{"content":"\rGroupDocs team always tries to facilitate it\u0026rsquo;s users by providing easy implementation of features and providing different options to explore GroupDocs API features in minimum time. In this regard we are glad to announce GroupDocs.Editor for .NET Visual Studio Plugin which helps and performs all the steps required to try-out examples automatically. All you have to do is to install the plugin via .msi available and launch the plugin wizard from file menu. the automatic completion of downloading the wizard will provide you with sample of CSharp source code for the API. These downloaded files are configured automatically in the visual studio without leaving it.\nVisual Studio Plugin Features Appears in File Menu of Visual Studio. Downloads source code automatically. Downloads GroupDocs.Editor for .NET API automatically. Adds assembly reference automatically. Provides Examples for CSharp. Supports Visual Studio 2010, 2012 and 2013. Opens project in few steps. Easy to Use. Saves time and reduces effort. Downloads and Available Resources Github GroupDocs.Editor for .NET API Installation and UsageInstallation of Visual Studio Plugin for GroupDocs.Editor for .NET Examples is very simple and robust. User just needs to download MSI file and install it. After finishing the installation, plugin will be integrated with Visual Studio and appear in File menu. How to Install Usage Screenshots\rContributeVisual Studio Plugin for GroupDocs.Editor for .NET API examples is open source and available for download. Developers can download it and get help to understand its working and extend its functionality. Following are the places from where source code can be downloaded. GitHub Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.editor: Download - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples- Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Editor queries FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/editor/groupdocs.editor-for-.net-plugin-for-visual-studio/","summary":"GroupDocs team always tries to facilitate it\u0026rsquo;s users by providing easy implementation of features and providing different options to explore GroupDocs API features in minimum time. In this regard we are glad to announce GroupDocs.Editor for .NET Visual Studio Plugin which helps and performs all the steps required to try-out examples automatically. All you have to do is to install the plugin via .msi available and launch the plugin wizard from file menu.","title":"Announcing  GroupDocs.Editor for .NET Plugin for Visual Studio"},{"content":"\rToday, we are pleased to announce another monthly release of Document Annotation API for .NET v17.11. This release came up with multitude new features, the main feature introduced in this release is ability to import comments in Diagram. Moreover, major fixes and improvements are also introduced in this release. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.Annotation for .NET.\nNew Features in .NET Annotation API v17.11 Remove annotation with comments and import comments in Diagrams for following annotation types:\nArrow\nResource redaction\nPolyline\nAarea\nDocument Annotation API v17.11 - Improvements Improve import comments for annotations in Diagram Refactor WordCommentator Refactoring of IsFirstInSecondRectangle for Words export Document Annotation API v17.11 - Fixes Export of text annotations on Slides Improve coordinates for adding watermark annotation for Slides Wrong area of highlight annotation in pdf files PointAnnotation export for Slides format Minor fixes for WordsCommentator Bug with import annotations in Word Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation:\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/documents-annotation-for-.net-v17.11/","summary":"Today, we are pleased to announce another monthly release of Document Annotation API for .NET v17.11. This release came up with multitude new features, the main feature introduced in this release is ability to import comments in Diagram. Moreover, major fixes and improvements are also introduced in this release. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.","title":"Import Comments in Diagram using .NET Annotation API v17.11"},{"content":"\rAt GroupDocs, we are always keen to improve our products and enhance user experience. Hence, we are excited to announce the another monthly release of GroupDocs.Signature for .NET API version 17.11. This release comes with number of new features. The most notable feature introduced in this release is the functionality to obtain signing progress while signing the documents. Aside this, Many improvements and fixes are also introduced in this release. We, therefore recommend you to download the latest version of the API and start signing your documents with the simplest yet amazing features provided by our e-Signing API.\n.Net ESignature API v17.11 - New Features Set Brush style for Text and Stamp Signatures background Obtain Verification Progress Obtain Signing Progress Support of Image File formats in Document and Pages Information method Text shape types for Word, Slide and Cell Documents Obtain Digital Signatures from Word, Cell and PDF Documents .NET E-Signing API v17.11 - Improvements A detailed list of all the improvements made to the API in this release is given below:* Improve Verification when Page is not specified for following document types:\nCells\nImage\nSlides\nWords\nPDF\nSet background color for QRcode and Barcode signatures\nThe e-Signature API v17.11 - Fixes A detailed list of all fixes made in this release of the API are given below:\nMethod for Document Description and Pages raise Exception Signature .NET 17.11 Incorrect Cells TextStamp rendering Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for .NET:\nDownload - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/dotnet-e-signing-api-v17.11/","summary":"At GroupDocs, we are always keen to improve our products and enhance user experience. Hence, we are excited to announce the another monthly release of GroupDocs.Signature for .NET API version 17.11. This release comes with number of new features. The most notable feature introduced in this release is the functionality to obtain signing progress while signing the documents. Aside this, Many improvements and fixes are also introduced in this release.","title":"Obtain Signing Progress using .Net E-Signing API v17.11"},{"content":"\rWe are really delighted to announce the another monthly release of eSignature for Java API version 17.8.0. The latest release comes up with a number of new features and improvements. Now, eSignature for Java developers can sign Image documents with Stamp, Text and Image signatures. We would recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\neSignature API for Java v17.8.0 - Features Barcode and QR-Code Signatures and Verification for Image Documents\nSave Image Documents in different formats\nProvided support for following signature types:\nStamp\nText\nImage\nRepeat text for Stamp Signatures\nDigital Signature for Open Document files format support\nJava eSignature API v17.8.0 - Improvements Use Custom InputDataHandler for Certificates and Images resources Crop background color and Image by inner line for Stamp Signatures Verification of Digital Signature type for Pdf Documents Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on Document Signing API for Java:\nDownload – JAR Files Documentation – API Docs Product Support Forum – Technical Support Forum for GroupDocs.Signature Examples – GitHub source code examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/e-signing-api-for-java-v17.8.0/","summary":"We are really delighted to announce the another monthly release of eSignature for Java API version 17.8.0. The latest release comes up with a number of new features and improvements. Now, eSignature for Java developers can sign Image documents with Stamp, Text and Image signatures. We would recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\neSignature API for Java v17.","title":"Introducing Support for Images in Java E-Signing API v17.8.0"},{"content":"Team GroupDocs is glad to announce another monthly release of GroupDocs.Comparison for .NET v17.11. This release includes some improvements and fixes. The API now allows style changes for deep comparison in Note document format. Document comparison API also made improvements related to the PDF document format beside improving Note and Word formats. Please click here to download the latest API and check out all the latest improvements made to the REST API in this release.\n.NET Comparison API v17.11 - Improvements The following improvements have been made to the GroupDocs.Comparison API in this latest release:\nImprovements - PDF: Refactor document builder using new content map Implemented page content map Improved Check and fix columns comparing Updated pdf structure Other Improvements: Improve Style changed deep for Comparison Add ParagraphMerger for Comparison Add IntermediateParagraphComparer to Words Document Comparison API v17.11 - Fixes A number of bugs have also been resolved in the latest release of GroupDocs.Comparison for .NET API.\nIntermediate paragraphs problem in Word Fixed special cases of word division Break line in the middle of a word Infinite loop in image rectangle PDF Insert and Delete empty paragraph before text Tables with similar coordinates overlap on each other Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nDownloads-MSI Package and Zipped Format Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/groupdocs.comparison-for-.net-17.11/","summary":"Team GroupDocs is glad to announce another monthly release of GroupDocs.Comparison for .NET v17.11. This release includes some improvements and fixes. The API now allows style changes for deep comparison in Note document format. Document comparison API also made improvements related to the PDF document format beside improving Note and Word formats. Please click here to download the latest API and check out all the latest improvements made to the REST API in this release.","title":"Updated PDF Structure Introduced in GroupDocs.Comparison for .NET 17.11"},{"content":"\rGroupDocs team is pleased to announce another hotfix release v17.10.2 of the GroupDocs.Metadata for .NET API. In earlier versions, bit depth was affected when removing metadata from Tiff files and the resultant image was turning into black and white. However, the API has been optimized to resolve this issue in the latest version. We recommend you to download or update your applications to use the latest version of the API.\nMetadata Extraction API - Bug Fixes Following issue has been fixed in this hotfix release.\nBit Depth is affected while removing metadata from Tiff file For details about the features supported by the API, please visit Features Overview.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET.\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata Feedback As always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/hot-fix-release-of-groupdocs.metadata-for-.net-version-17.10.2/","summary":"GroupDocs team is pleased to announce another hotfix release v17.10.2 of the GroupDocs.Metadata for .NET API. In earlier versions, bit depth was affected when removing metadata from Tiff files and the resultant image was turning into black and white. However, the API has been optimized to resolve this issue in the latest version. We recommend you to download or update your applications to use the latest version of the API.","title":"Hotfix Release of GroupDocs.Metadata for .NET - Version 17.10.2"},{"content":"\rWe are pleased to announce the release of version 17.10 of GroupDocs.Viewer for .NET. This monthly release has come with 3 new features and more than 10 improvements and bug fixes. GroupDocs.Viewer for .NET 17.10 allows you to render STL and IFC file formats. Furthermore, settings to hide/show hidden pages have been extended for Microsoft PowerPoint documents. Please continue to read more about the latest version.\nRender STL and IFC File FormatsFrom version 17.10, GroupDocs.Viewer supports rendering of STL and IFC file formats. For more details on supported file formats, please visit this documentation article. Rendering Hidden Sheets, Slides or PagesMicrosoft Excel, PowerPoint and Visio documents may contain hidden pages (slides or sheets). By default, hidden pages are not rendered. In order to include them into the rendering, set ShowHiddenPages property of the RenderOptions (ImageOptions or HtmlOptions) class as true. This new setting has replaced obsolete CellsOptions.ShowHiddenSheets and DiagramOptions.ShowHiddenPages properties in RenderOptions class. For more details on rendering hidden pages, please visit this documentation article. Rendering Worksheets by Dividing into PagesBy default, GroupDocs.Viewer for .NET renders the whole Excel sheet into a single HTML/image page or into a single page of the PDF document. However, the API also allows dividing large Excel sheets into multiple pages. From version 17.10, this feature is supported for rendering the document as PDF and as image with enabled text extraction. For more details, please visit this documentation article. Improved Document Rendering from Stream into HTMLIn earlier versions, when we render document from the stream and do not provide document name, API has been suppressing saving resources separately and embedding resources into HTML regardless of IsResourcesEmbedded setting. Since the version 17.10, when document name is not provided, API tries to generate document name from the stream. When that stream is rendered again, API will generate the same name. However, try to avoid not passing document name in cases when document name is known because API does not guarantee that document type will be detected and that document name will be unique for the stream (as in some cases, API may generate the same name for two different streams). .NET Document Viewer API - FixesFollowing are the issues that are fixed in version 17.10. Gray rectangles instead of image parts Empty space between text is lost when rendering email documents The parameter \u0026lsquo;address\u0026rsquo; cannot be an empty string exception when rendering MSG document Some rows/records are missing when rendering Excel document to HTML Parameter is not valid exception when rendering Excel document to image The output image gets cut when rendering PowerPoint presentation All pages are same when rendering Microsoft Project document into an image Incorrect rendering of PDF document into HTML Exception when rendering CAD file into image Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/render-stl-and-ifc-file-formats-groupdocs.viewer-for-.net-17.10/","summary":"We are pleased to announce the release of version 17.10 of GroupDocs.Viewer for .NET. This monthly release has come with 3 new features and more than 10 improvements and bug fixes. GroupDocs.Viewer for .NET 17.10 allows you to render STL and IFC file formats. Furthermore, settings to hide/show hidden pages have been extended for Microsoft PowerPoint documents. Please continue to read more about the latest version.\nRender STL and IFC File FormatsFrom version 17.","title":"Render STL and IFC File Formats using GroupDocs.Viewer for .NET 17.10"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Conversion for .NET 17.10. This release comes with new document formats support such as IFC and STL. Improvements like setting default transparency of watermark to 0.5, Slides to XPS conversion, incorrect conversion from One to PDF and many others are introduced. Furthermore, some bug fixes are also announced. We\u0026rsquo;d recommend you to download the latest release of the API and share your experience.\nDocument Conversion API for .NET - Features Conversion from STL Implement conversion from IFC Conversion of document containing images to RTF with \u0026ldquo;old readers\u0026rdquo; compatibility GroupDocs Document Conversion API - Improvements Improve document savers for saving complete document and save by page Cells To XPS conversion improvement WatermarkOptions is instantiated default Width and Height of the watermark Set default transparency of watermark to 0.5 Slides To XPS conversion improvement Expose FileType and PagesCount properties in ConvertedDocument class GroupDocs.Conversion for .NET 17.10 - Bug Fixes Incorrect conversion from One to PDF PsdOptions does not have constructor Converting HTML with external resources produce wrong output PDF locked with modification password but without view password cannot be converted Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion: Downloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/conversion-stl-introduced-groupdocs.conversion-.net-17.10/","summary":"We are pleased to announce another monthly release of GroupDocs.Conversion for .NET 17.10. This release comes with new document formats support such as IFC and STL. Improvements like setting default transparency of watermark to 0.5, Slides to XPS conversion, incorrect conversion from One to PDF and many others are introduced. Furthermore, some bug fixes are also announced. We\u0026rsquo;d recommend you to download the latest release of the API and share your experience.","title":"Conversion from STL is introduced in GroupDocs.Conversion for .NET 17.10"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Conversion for Java 17.7. This version of the API comes with number of new features such as setting zoom level, conversion from LaTex and getting extended document information. Aside this, multitude of improvements, bug fixes and some new document formats are introduced in this release. We would recommend you to download the new release and evaluate the exciting features to enhance document conversion experience.\nDocument Conversion API for Java - Features Get extended document information Conversion from XML-FO/XSL Option to set zoom when converting to HTML Document conversion from Vsdm, Vssm, Vstm Implement conversion from LaTex PPTX to HTML Conversion - Slide zoom level property Update DocumentInfo class to return all layouts for CAD document types Possibility to convert specific layouts when converting from CAD document Convert Pdf documents without annotations GroupDocs Document Conversion API - Improvements Html to Cells improvements CAD to Html improvements Note to Html improvements Slides to Html improvements Tasks to Html improvements Words to Html improvements with UsePdf=true option set Handling of extension-less urls Improve SlidesToHtml saver Update CellsToImageSaver and CellsToPdfSaver to remove empty rows and columns before saving document Implement possibility to set Width and Height when converting from CAD document GroupDocs.Conversion for Java 17.7 - Bug Fixes Failed to validate PDF_X_3 and PDF_X_1A Converting Image to Html with UsePdf=true always use direct conversion instead converting through Pdf Loading Latex document from stream requires FileStream PPT to PDF Conversion - Tables borders are showing - showgridline property is also not working for this Issue in TIF to PDF conversion in Gradle project Word documents with tables are not converting to images properly PDF to Image output is not as expected License exception throws in spite of GroupDocs license was set Output image is always blank or invalid if license is not applied Unable to set watermark color while converting document to image Usage of PageMode when converting to PDF is not supported Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion: API Home - GroupDocs.Conversion for Java Download - GroupDocs.Conversion for Java Download Documentation - Product Documentation Examples/Plugins/Showcases - GitHub source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion ","permalink":"https://blog.groupdocs.com/conversion/releasing-document-conversion-api-17.7/","summary":"We are pleased to announce another monthly release of GroupDocs.Conversion for Java 17.7. This version of the API comes with number of new features such as setting zoom level, conversion from LaTex and getting extended document information. Aside this, multitude of improvements, bug fixes and some new document formats are introduced in this release. We would recommend you to download the new release and evaluate the exciting features to enhance document conversion experience.","title":"Set zoom level when converting to HTML using GroupDocs.Conversion for Java 17.7"},{"content":"\rGroupDocs team is proudly announcing the release of version 17.10.1 of the GroupDocs.Metadata for .NET API. Based on our customer\u0026rsquo;s feedback provided on our public forums, we have fixed number of bugs in this hotfix release. We recommend you to download or update your applications to use the latest version of the API for a better and smoother experience.\nVersion 17.10.1 of the Metadata Extraction API - Bug Fixes Following are the bug fixes in this new version.\nPresentation format field displays Russian text after removing the metadata Unable to remove personal data of a TIF file TIF file gets damaged with getting info of XmpSchemes For details about the features supported by the API, please visit Features Overview.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET.\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata Feedback As always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/hot-fixes-in-groupdocs.metadata-for-.net-v17.10.1/","summary":"GroupDocs team is proudly announcing the release of version 17.10.1 of the GroupDocs.Metadata for .NET API. Based on our customer\u0026rsquo;s feedback provided on our public forums, we have fixed number of bugs in this hotfix release. We recommend you to download or update your applications to use the latest version of the API for a better and smoother experience.\nVersion 17.10.1 of the Metadata Extraction API - Bug Fixes Following are the bug fixes in this new version.","title":"Bug Fixes in GroupDocs.Metadata for .NET v17.10.1"},{"content":"\rWe are pleased to announce the release of version 17.10 of GroupDocs.Watermark for .NET API. This version provides the ability to access and work with attachments in PDF and Excel documents. Just download the latest release to get benefit from new features available in GroupDocs.Watermark for .NET API. Please continue to read to get familiar with more details.\nWorking with Attachments in PDF DocumentGroupDocs.Watermark for .NET 17.10 enables you to work with the attachments in PDF document. This release provides the ability to extract, add, remove, search and add watermark to attachments in PDF document. For details please visit this documentation article. Below is the list of operations that can be performed on attachments: Extract all the attachments present in PDF document Add an attachment to PDF document Remove any particular attachment from PDF document Add watermark to supported files in all attachments in a PDF document Search for attached images from PDF document Working with Attachments in Excel DocumentGroupDocs.Watermark for .NET 17.10 enables you to work with the attachments in Excel document. This release supports extraction, adding, removing and searching for attachments in Excel document. For further details, please visit this documentation article. Below are the operations you can perform on attachments: Extract all attachments from Excel document Add an attachment to Excel document Add linked attachment to Excel document Remove particular attachments from Excel document Add watermark to all attached files in Excel document Search for all the images and watermarkable attachments in Excel document Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Watermark: Download - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples - Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum - Technical Support Forum for GroupDocs.Watermark FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/watermark/access-attachment-in-pdf-and-excel-document-using-groupdocs.watermark-for-.net-17.10/","summary":"We are pleased to announce the release of version 17.10 of GroupDocs.Watermark for .NET API. This version provides the ability to access and work with attachments in PDF and Excel documents. Just download the latest release to get benefit from new features available in GroupDocs.Watermark for .NET API. Please continue to read to get familiar with more details.\nWorking with Attachments in PDF DocumentGroupDocs.Watermark for .NET 17.10 enables you to work with the attachments in PDF document.","title":"Access Attachment in PDF and Excel Document using GroupDocs.Watermark for .NET 17.10"},{"content":"\rWe are pleased to announce the release of version 17.10 of the GroupDocs.Text for .NET API. The latest release removes some obsolete methods from the API while provides some additional properties, updated parameters and improved performance of the API. The new feature added to the API in this release is the ability to extract text from the email server using POP3 and IMAP protocol. Just download the latest release or update your existing application to this release and enjoy all the features and enhancements made to the API in this release.\nGroupDocs.Text for .NET API - New Features Version 17.10 implements a couple of new features in GroupDocs.Text for .NET API. The details of these features are as follows:\nExtract Email from Email Server using POP3 protocol. Extract Email using IMAP protocol. Please have a look at the API\u0026rsquo;s features to get an idea about all the features supported by our text extraction API.\n.NET Text Extraction API - Enhancements The API comes up with following enhancements in this release:\nRemoval of obsolete members ExtractMetadata obsolete methods from ExtractorFactory class have been removed. For details, please visit this documentation article.\nAdditional properties for container entities Containers now support the extraction of Date and Size properties of an entity.Please visit below links to documentation to see each container separately:\nEmailContainer ZipContainer PersonalStorageContainer Updated parameters for PersonalStorageContainer EmailSubject, EmailSender and EmailReceiver constants of PersonalStorageContainer class are marked as obsolete. For details, please visit this documentation article.\nImproved performance of PDF text extractor The performance of PDF text extractor is improved by providing ExtractMode for fast text extraction. For details, please visit here.\nGroupDocs.Text for .NET - Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Text:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples - Github Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Text Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/parser/groupdocs.text-for-.net-17.10.0-extract-emails-using-pop3-and-imap-protocol/","summary":"We are pleased to announce the release of version 17.10 of the GroupDocs.Text for .NET API. The latest release removes some obsolete methods from the API while provides some additional properties, updated parameters and improved performance of the API. The new feature added to the API in this release is the ability to extract text from the email server using POP3 and IMAP protocol. Just download the latest release or update your existing application to this release and enjoy all the features and enhancements made to the API in this release.","title":"Extract Emails using POP3 and IMAP Protocol - GroupDocs.Text for .NET 17.10"},{"content":"\rThe GroupDocs team is proudly announcing version v4.0.0 for GroupDocs.Annotation for Java Modern UI. Keeping in mind features supported in our backend API, we have implemented updates in this modern user interface. In this new version, a user can now add distance, strikeout and **underline **annotation. We would recommend Java users to download this new version to explore and provide us valuable feedback. let\u0026rsquo;s explore new features in detail.\nDistance Annotation To find a distance between two points and add annotation on it, the user can now add distance annotation by simply selecting distance annotation tool from the tool menu.\nStrikeout Annotation By selecting strikeout annotation form tool menu, the user can strikeout selected text in the document and add annotation on it.\nUnderline Annotation By selecting underline annotation form tool menu, the user can underline selected text in the document and add annotation on it. Let\u0026rsquo;s have a look at new annotations. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on Document Annotation API for Java:\nDownload – JAR Files Documentation – API Docs Product Support Forum – Technical Support Forum for GroupDocs.Signature Examples – Examples/Plugins/Showcases Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/distance-strikeout-and-underline-annotation-in-groupdocs.annotation-for-java-modern-ui/","summary":"The GroupDocs team is proudly announcing version v4.0.0 for GroupDocs.Annotation for Java Modern UI. Keeping in mind features supported in our backend API, we have implemented updates in this modern user interface. In this new version, a user can now add distance, strikeout and **underline **annotation. We would recommend Java users to download this new version to explore and provide us valuable feedback. let\u0026rsquo;s explore new features in detail.","title":"Distance, Strikeout and Underline Annotation in GroupDocs.Annotation for Java Modern UI v4.0.0"},{"content":"\rGreat news for ASP.NET Developers, GroupDocs proudly announces latest release for GroupDocs.Editor for .NET MVC Modern Front End. In this v1.1 we have used modern Template in ASP.NET MVC. This new release is simple, efficient and, user friendly. User can convert Word Document to Html and convert updated Html to Word/PDF Document and download. View the HTML in WYSIWYG Editor and perform editing in HTML file. We would recommend you to download this release and provide your valuable feedback. GroupDocs.Editor for .NET Modern Front End v1.1 includes following features.\nAbility to Convert Doc/Docx to HTMLUser can now view a document as HTML in any HTML editor by simply loading a file from sample folder. The application will automatically detect and render all documents from the folder. Ability to view HTML in WYSIWYG EditorUser can also view the document as HTML in Editor and do formatting in HTML Ability to Convert HTML to Word Processing DocumentUser can now download the document by making any updates in the HTML. The application can convert the HTML in the following formats: txt, doc, docx, dotx, rtf Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document Editor APIs. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/editor/new-release-mvc-front-end-groupdocs.editor-.net/","summary":"Great news for ASP.NET Developers, GroupDocs proudly announces latest release for GroupDocs.Editor for .NET MVC Modern Front End. In this v1.1 we have used modern Template in ASP.NET MVC. This new release is simple, efficient and, user friendly. User can convert Word Document to Html and convert updated Html to Word/PDF Document and download. View the HTML in WYSIWYG Editor and perform editing in HTML file. We would recommend you to download this release and provide your valuable feedback.","title":"New release for MVC Front End for GroupDocs.Editor for .NET"},{"content":"\rGreat news for ASP.NET Developers, GroupDocs proudly announces first release for GroupDocs.Annotation for .NET MVC Modern Front End. In this v1.0.0 we have used modern Template in ASP.NET MVC, which is simple, efficient and user friendly. GroupDocs users are free to customize and enhance the application by their own.\n[caption id=\u0026ldquo;attachment_11310\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;640\u0026rdquo;]\rGroupDocs.Annotation for .NET Modern MVC FronEnd[/caption]\nFeatures in this Release GroupDocs.Annotation for .NET Modern Front End v1.0.0 includes following features.\nAbility to load pdf document Ability to view annotations Ability to create new annotation Ability to select and move annotation Deleting annotations Download annotated document Accurate annotation drawing MVC Modern Front-End allows you to annotate document more accurately and provide a number of drawing tools to draw an annotation Like: Point, Line, Rectangle, Arrow etc\nAnnotations availability The final document have the same results which you have seen in the browser. The application remembers all the annotations without loosing the state of document.\nDownload and Usage Please check the links below to find instructions on downloading, installing, configuring and using the application.\nDownload Download zip Download Source Code Run Application Download the code, open it in MS Visual Studio 2015 or later. Update the required or missing libraries from Nuget. Run the code. Apply License Open Global.asax.cs. Set license file path in _licensePath variable. Start a Free Trial Today Start a free trial today – all you need is to sign up with GroupDocs. Once you have signed up, you are ready to try products and powerful features offered by GroupDocs.\nRelated Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on document Annotation APIs.\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Customer Feedback Your feedback is very important to us. Please feel free to provide feedback and raise feature requirements on our forum. We are keen to implement customer driven features since we are a 100% customer driven company.\nOther applications of GroupDocs.Annotation for .NET GroupDocs-Annotation-Front-End GroupDocs-Annotation-Webforms ","permalink":"https://blog.groupdocs.com/annotation/groupdocs.annotation-net-mvcfrontendv1.0.0/","summary":"Great news for ASP.NET Developers, GroupDocs proudly announces first release for GroupDocs.Annotation for .NET MVC Modern Front End. In this v1.0.0 we have used modern Template in ASP.NET MVC, which is simple, efficient and user friendly. GroupDocs users are free to customize and enhance the application by their own.\n[caption id=\u0026ldquo;attachment_11310\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;640\u0026rdquo;]\rGroupDocs.Annotation for .NET Modern MVC FronEnd[/caption]\nFeatures in this Release GroupDocs.Annotation for .NET Modern Front End v1.","title":"New release of MVC Front End for GroupDocs.Annotation for .NET v1.0.0"},{"content":"\rGroupDocs team keeps on adding new features in ASP.NET MVC Front End for GroupDocs.Viewer for .NET, so that users can enjoy user-friendly interface, easily manageable code, pixel perfect rendering with features supported in our old front ends. In this new release v1.3 user can now load document in both HTML and **Image **in the document. User can toggle between image and html through the Toggle image button. Under Image Representation user can Rotate and Document and Zoom In/Out. We recommend you to download and explore this new version. Let\u0026rsquo;s have a look at it.\nLet\u0026rsquo;s explore new features in detail.\nToggle to Image RepresentationUser can now toggle between HTML and Image providing user a variety of features of ViewerImageHandler. Let\u0026rsquo;s take a look at the code, ViewerImageHandler handler = Utils.CreateViewerImageHandler(); ImageOptions o = new ImageOptions(); o.PageNumbersToRender = new List\u0026lt;int\u0026gt;() { page }; o.PageNumber = page; o.CountPagesToRender = 1; List\u0026lt;PageImage\u0026gt; list = Utils.LoadPageImageList(handler, file, o); Zoom Image Zoom in/Out buttons are visible only under Image Representation of file. Zoom will increase/decrease the size of image to 10 pts. Rotate Image User can rotate all the pages of the file when click this button. Rotate Image will allow to rotate in one direction. Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/rotate-zoom-toggle-html-image-representation-groupdocs.viewer-mvc-modern-ui-.net-v1.3/","summary":"GroupDocs team keeps on adding new features in ASP.NET MVC Front End for GroupDocs.Viewer for .NET, so that users can enjoy user-friendly interface, easily manageable code, pixel perfect rendering with features supported in our old front ends. In this new release v1.3 user can now load document in both HTML and **Image **in the document. User can toggle between image and html through the Toggle image button. Under Image Representation user can Rotate and Document and Zoom In/Out.","title":"Rotate Zoom and Toggle between Html and Image Representation in GroupDocs.Viewer MVC Modern UI for .NET v1.3"},{"content":"\rGroupDocs team keeps on adding new features in ASP.NET MVC Front End for GroupDocs.Viewer for Java, so that users can enjoy user-friendly interface, easily manageable code, pixel perfect rendering with features supported in our old front ends. In this new release v1.3 user can now load document in both HTML and **Image **in the document. User can toggle between image and html through the Toggle image button. We recommend you to download and explore this new version. Let\u0026rsquo;s have a look at it.\nLet\u0026rsquo;s explore new features in detail.\nToggle to Image RepresentationUser can now toggle between HTML and Image providing user a variety of features of ViewerImageHandler. Let\u0026rsquo;s take a look at the code, ViewerImageHandler handler = Utils.createViewerImageHandler(); ImageOptions o = new ImageOptions(); int pageNumber = Integer.valueOf(request.getParameter(\u0026quot;page\u0026quot;)); o.setPageNumbersToRender(Arrays.asList(pageNumber)); o.setPageNumber(pageNumber); o.setCountPagesToRender(1); Open SourceThe best part is that full source code of the app is available to download from GitHub. You can also contribute to the app by sending a pull-request. API FeaturesThe app covers most APIs of GroupDocs.Viewer for Java, which allows anyone to see how to use same API in their own apps. Easy IntegrationThe app can be easily embedded or integrated with another app of your choice. You can either use IFRAME or embed it as AngularJS Module. Additional ResourcesFollowing resources will help you to download, learn, try and get technical support. Product Home – GroupDocs.Viewer for Java. Documentation – Product Documentations. Product Support Forum – Technical Support Forum for GroupDocs.Viewer. Examples/Plugins/Showcases – Github source code examples. FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/toggle-html-image-representation-groupdocs.viewer-mvc-modern-ui-java-v1.3/","summary":"GroupDocs team keeps on adding new features in ASP.NET MVC Front End for GroupDocs.Viewer for Java, so that users can enjoy user-friendly interface, easily manageable code, pixel perfect rendering with features supported in our old front ends. In this new release v1.3 user can now load document in both HTML and **Image **in the document. User can toggle between image and html through the Toggle image button. We recommend you to download and explore this new version.","title":"Toggle between Html and Image Representation in GroupDocs.Viewer MVC Modern UI for Java v1.3"},{"content":"\rWe are at GroupDocs glad to announce another release of document report generation API version 17.9 also known as GroupDocs.Assembly for Java API. The latest release adds enhanced support for existing features to the API, the most important changes are done to support document assembly for Email formats and also providing bug fixes for all major email formats. For a better experience with the API, we recommend you to download the latest release and try out the features introduced in the latest version of the API. Full list of changes are provided below.\nJava Document Report Generation API - Issues Resolved GroupDocs.Assembly for Java introduces the following bug fixes in version 17.9 of the API:\n1- Plain text body is lost for email messagesThis issue is now fixed in document assembly for Java API for the email file formats like MHTML, EML and EMLX. 2- White spaces between non-latin characters are lostJava document generation API is also providing solution for this issue for the HTML and MSG file formats. 3- Non-Latin characters are replaced with question marksWe are glad to inform you that new API release is also providing support for this issue for RTF and MSG file formats. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly:\nDownload - Jar File Documentation - API Documentation Examples/Plugins/Showcases - Github source code examples Product Support Forum - Technical Support Forum for GroupDocs.Assembly Feedback We\u0026rsquo;d like to hear your valuable feedback. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/assembly/groupdocs.assembly-for-java-17.9-api/","summary":"We are at GroupDocs glad to announce another release of document report generation API version 17.9 also known as GroupDocs.Assembly for Java API. The latest release adds enhanced support for existing features to the API, the most important changes are done to support document assembly for Email formats and also providing bug fixes for all major email formats. For a better experience with the API, we recommend you to download the latest release and try out the features introduced in the latest version of the API.","title":"Enhanced Email Formats Support Introduced in GroupDocs.Assembly for Java 17.9 API"},{"content":"\rGroupDocs team is pleased to announce the release of version 17.10 of the GroupDocs.Metadata for .NET API. Keeping in mind customer\u0026rsquo;s feedback, this release has new features and bug fixes. Users can now extract metadata from ZIP and MOV file formats. Furthermore, few issues reported on forums are also fixed. We, therefore, recommend you to download or update your applications to use the latest version of the API for a better and smoother experience.\nGroupDocs.Metadata for .NET API - New Features Working with Zip Archives: Ability to detect ZIP file format Get metadata from ZIP file format Working with MOV format: Ability to detect MOV video format Get metadata from MOV file format For details about the features supported by the API, please visit Features Overview.\nVersion 17.10 of the Metadata Extraction API - Bug Fixes Following are the bug fixes in this new version.\nFile Size increased after Metadata removal GPS related data is removed after we try to remove the metadata of the JPG file Unable to update XMPBasic metadata when updating PdfMetadata at the same time Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET.\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata Feedback As always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/extract-zip-and-mov-file-format-metadata-using-gorupdocs.metadata/","summary":"GroupDocs team is pleased to announce the release of version 17.10 of the GroupDocs.Metadata for .NET API. Keeping in mind customer\u0026rsquo;s feedback, this release has new features and bug fixes. Users can now extract metadata from ZIP and MOV file formats. Furthermore, few issues reported on forums are also fixed. We, therefore, recommend you to download or update your applications to use the latest version of the API for a better and smoother experience.","title":"Extract ZIP and MOV File Format Metadata using GroupDocs.Metadata for .NET v17.10"},{"content":"\rTeam GroupDocs is glad to announce another release of document report generation API version 17.9 also known as GroupDocs.Assembly for .NET API. The latest release adds enhanced support of existing features to the API, the most important changes are done to support document assembly for Email file formats and also providing bug fixes. For a better experience with the API, we recommend you to download the latest release and try out the bug fixes provided in the latest version of the API.\nIssues Fixed - Document Report Generation API for .NET GroupDocs.Assembly for .NET introduces the following fixes in version 17.9 of the API:\n1- Plain text body is lost for email messagesThis issue is now fixed in document assembly for .NET API for the following email file formats only: MHTML file formats EML file formats EMLX file formats 2- White spaces between non-latin characters are lost.NET document generation API is also providing solution for this issue for the following file formats HTML file formats MSG file formats 3- Non-Latin characters are replaced with question marksWe are glad to inform you that new API release is also providing support for this issue. RTF file formats MSG file formats For a complete list of features supported by the API, read the API features here.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly for .NET:\nDownload - MSI Package as well as Zipped DLLs NuGet - Nuget Installation Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly Feedback We observe your feedback carefully, please share your feedback about GroupDocs.Assembly for .NET API. We will be happy to know your thoughts and we will try to enhance your experience with the API. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/assembly/groupdocs.assembly-for-.net-17.9/","summary":"Team GroupDocs is glad to announce another release of document report generation API version 17.9 also known as GroupDocs.Assembly for .NET API. The latest release adds enhanced support of existing features to the API, the most important changes are done to support document assembly for Email file formats and also providing bug fixes. For a better experience with the API, we recommend you to download the latest release and try out the bug fixes provided in the latest version of the API.","title":"Email Formats Enhanced Support Introduced in GroupDocs.Assembly for .NET 17.9 API"},{"content":"\rWe are really delighted to announce the another monthly release of GroupDocs.Signature for .NET API version 17.10. This release comes with multitudinous new features like locate signature area while signing the documents and feature to export signed documents in Image format. Many improvements and fixes are also introduced in this release. We, therefore recommend you to download the latest version of the API and start signing your image documents with the simplest yet amazing features provided by our e-Signing API.\n.Net ESignature API v17.10 - New Features Verify/Process separate pages of multi-page tiff images\nExport signed Document to multi pages Tiff format\nUse Signature Line for digital signature in Cell And Word Documents\nStretch Signature Area along Document Width or Height\nSave signed document to Image format for following formats:\nWords\nSlides\nPDF\nCells\n.NET E-Signing API v17.10 - Improvements A detailed list of all the improvements made to the API in this release is given below:\nUpdate Digital Signature implementation for Words Documents The e-Signature API v17.10 - Fixes A detailed list of all fixes made in this release of the API are given below:\nError on Digital Signing when output Save format is not Pdf Destination document is empty when Digital Certificate Holder is not loaded Incorrect digital signing with doc and docx save options Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for .NET:\nDownload - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/e-signing-api-for-.net-v17.10/","summary":"We are really delighted to announce the another monthly release of GroupDocs.Signature for .NET API version 17.10. This release comes with multitudinous new features like locate signature area while signing the documents and feature to export signed documents in Image format. Many improvements and fixes are also introduced in this release. We, therefore recommend you to download the latest version of the API and start signing your image documents with the simplest yet amazing features provided by our e-Signing API.","title":"Locate Signature Area Using .Net E-Signing API v17.10"},{"content":"\rWe are glad to announce another monthly release of GroupDocs.Search for .NET API. The API has been improved with some valuable additions in version 17.10. The e-Search API now introduces safe and reliable indexing by implementing the option to reload the index in case some of some critical error. The API also implements high compression level for storing documents text. Further details about the changes made to the API in this release will be discussed below. Click on the download link and check out the new and improved version of the search API.\nGroupDocs.Search for .NET API - Improvements The API, in this latest release, makes a number of improvements and implements:\nOption to cache document texts with high compression level Safe updating of index files to increase reliability Calling ProgressChanged event for skipped and filtered documents Available Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search:\nDownload - MSI Package Zipped DLLs Download - DLLs NuGet - NuGet Install Documentation - API docs Examples/Plugins/Showcases - Source Code Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to the .NET Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/groupdocs.search-.net-17.10-introduces-safe-reliable-indexing/","summary":"We are glad to announce another monthly release of GroupDocs.Search for .NET API. The API has been improved with some valuable additions in version 17.10. The e-Search API now introduces safe and reliable indexing by implementing the option to reload the index in case some of some critical error. The API also implements high compression level for storing documents text. Further details about the changes made to the API in this release will be discussed below.","title":"GroupDocs.Search for .NET 17.10 Introduces Safe and Reliable Indexing"},{"content":"Team GroupDocs is really pleased to announce the release of version 17.10 of GroupDocs.Comparison for .NET API which not only adds a number of new features to the API, but also adds numerous enhancements along-with some bug fixes. The API now allows adding password to PDF documents. It also adds ParagraphMerger to the API. Not only this; the API has also made improvements related to the PDF document format beside improving Comparison.Note and Comparison.Cells. A detailed overview of all the changes made to the API in version 17.10 is listed below. Please click here to download the latest API and check out all the latest features and improvements made to the API in this release.\nThe GroupDocs.Comparison API - New Features Monthly release of GroupDocs.Comparison for .NET 17.10 API introduces three new features. Precisely, the version 17.10 adds:\nCoordinates of Images as Styles ParagraphMerger Set password to document for PDF For further details about the document formats supported by the API, please visit Features Overview.\nThe .NET Comparison API - Enhancements The following improvements have been made to the GroupDocs.Comparison API in this latest release:\nPdf Improvements: Check compare and add HeaderFooter to document Update page properties Comparison.Cells Improvements: Improve compare of comments in Comparison.Cells Other Improvements: Refactoring for settings code Remove null checking from FeelChild method Improve Comparison.Note Version 17.10 of the Comparison API - Bug Fixes A number of bugs have also been resolved in the latest release of GroupDocs.Comparison for .NET API. Version 17.10 fixes:\nSummary page style Deep Changed Nodes saveImages and getImages methods for Comparison.Note The bug with same text divided on different paragraphs The bug with excess outline The issue in Getting author for the changes (Changeinfo) Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nDownloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/add-paragraphmerger-using-groupdocs.comaprison-for-.net-17.10/","summary":"Team GroupDocs is really pleased to announce the release of version 17.10 of GroupDocs.Comparison for .NET API which not only adds a number of new features to the API, but also adds numerous enhancements along-with some bug fixes. The API now allows adding password to PDF documents. It also adds ParagraphMerger to the API. Not only this; the API has also made improvements related to the PDF document format beside improving Comparison.","title":"Add ParagraphMerger Using GroupDocs.Comparison for .NET 17.10"},{"content":"\rWe at GroupDocs receiving many feedback and suggestions from users, therefore we always try to provide new and enhanced solutions to our valuable customers to fulfill their requirements and incorporate their valuable suggestions. In this regard we are happy to announce another monthly release of GroupDocs.Annotation for .Net v17.10. The main feature introduced in this release is add comments to annotation in diagrams. This release also includes major fixes and improvements. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.Annotation for .NET.\nNew Features in .NET Annotation API v17.10 Add comments for following annotation types in Diagram\nDistance\nArrow\nArea\nPolyline\nComment for resource redaction annotation in Diagrams\nExport distance annotation for words\nDocument Annotation API v17.10 - Improvements \u0026amp; Fixes Wrong comment exported to Word Wrong Distance annotation exported to word Words: Fix export annotations for large fonts Exporting a Word document adds old comments Comment is not exported in Word Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation:\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/documents-annotation-for-.net-v17.10/","summary":"We at GroupDocs receiving many feedback and suggestions from users, therefore we always try to provide new and enhanced solutions to our valuable customers to fulfill their requirements and incorporate their valuable suggestions. In this regard we are happy to announce another monthly release of GroupDocs.Annotation for .Net v17.10. The main feature introduced in this release is add comments to annotation in diagrams. This release also includes major fixes and improvements.","title":"Comment Feature for Diagrams is introduced in GroupDocs.Annotation for .NET 17.10"},{"content":"\rWe are excited to release another monthly release, version 17.9, of GroupDocs.Viewer for .NET. This version allows you excluding fonts from HTML representation of the document and saving them as external resources. Also, we have extended the support of responsive HTML for MS Visio documents, SVG images, MS Word documents, Open Office Text and Rich Text document format. The latest version also includes some important bug fixes for the issues found in prior releases. We recommend you to upgrade to the latest version for an improved experience.\nExcluding Fonts when Rendering to HTML Embedded fonts increase the size of the rendering result, therefore, in order to prevent adding fonts into HTML, we introduced ExcludeFonts property of HtmlOptions class. For more details on excluding fonts from HTML representation, please visit this documentation article.\nGIF Images with Animation in Output HTML In earlier versions, when rendering document into HTML, GIF images were converted into PNG format. Therefore, the images were displayed without animation in the resultant HTML. From version 17.9, we have added the support of saving the GIF images as it is when rendering the documents into HTML.\n.NET Document Viewer API - Improvements Following are the improvements that we made in version 17.9.\nShowing local time when rendering email messages Responsive HTML output for rendering MS Visio documents, SVG images and Text documents Improved rendering into HTML for rotated documents Document Rendering API for .NET - FixesFollowing issues are fixed in GroupDocs.Viewer for .NET 17.9. Slow rendering and gigabytes of RAM consumption for Word document of 1758 pages Issue with recipient and sent date when rendering from .eml message to image File extension field does not include period Incorrect position of parenthesis in output HTML Out Of Memory Exception when rendering PDF into image Blank output HTML page when rendering PDF document Misplaced characters when viewing HTML in Safari for iOS Alignment of radio button text and checkbox text is not proper Breaking Changes in v17.9 Following are the breaking changes in GroupDocs.Viewer for .NET 17.9.\nNuGet Package Name ChangedThe NuGet package name is changed from groupdocs-viewer-dotnet to GroupDocs.Viewer. File Extension Field does not Include Period There is a breaking change in the version 17.9 related to the file extensions. This change is especially relevant to users who have implemented their own custom ICacheDataHandler. All file extensions from now on will come with the leading dot. Following public members are affected:\nFileExtension property of ImageOptions class Extension property of the AttachmentBase abstract class SupportedDocumentFormats property of the DocumentFormatsContainer class Extension property of the FileDescription class Extension property of DocumentInfoContainer class OutputExtension property of the CachedDocumentDescription and CachedPageDescription classes. Related Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on document viewer API.\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/releasing-groupdocs.viewer-for-.net-17.9/","summary":"We are excited to release another monthly release, version 17.9, of GroupDocs.Viewer for .NET. This version allows you excluding fonts from HTML representation of the document and saving them as external resources. Also, we have extended the support of responsive HTML for MS Visio documents, SVG images, MS Word documents, Open Office Text and Rich Text document format. The latest version also includes some important bug fixes for the issues found in prior releases.","title":"Excluding Fonts from Output HTML using GroupDocs.Viewer for .NET 17.9"},{"content":"\rWe are glad to announce another monthly release of E-Signing API for Java v17.7.0. Major feature introduced in this release is support for Stamp Signatures. Aside this many improvements are also introduced in this release. We would recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\nE-Signing API for Java v17.7.0 - Features Stamp Signatures feature for following Document Formats:\nPDF\nWord\nCell\nSlides\nNew Barcode and QR-Code encode types\nVerification of new Barcode and QR-Code encode types\nJava E-Signing API v17.7.0 - Improvements Barcode Verification options Update Document Information method with extended guid properties Barcode and QR-Code options validation Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on Document Signing API for Java:\nDownload – JAR Files Documentation – API Docs Product Support Forum – Technical Support Forum for GroupDocs.Signature Examples – Examples/Plugins/Showcases Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/groupdocs-signature-for-java-release-v17.7.0/","summary":"We are glad to announce another monthly release of E-Signing API for Java v17.7.0. Major feature introduced in this release is support for Stamp Signatures. Aside this many improvements are also introduced in this release. We would recommend you to download the new version of API and evaluate the exciting features to enhance document e-signing experience.\nE-Signing API for Java v17.7.0 - Features Stamp Signatures feature for following Document Formats:","title":"Introducing Stamp Signatures Feature in Java E-Signing API v17.7.0"},{"content":"\rWe are at GroupDocs glad to announce another release of GroupDocs.Editor for .NET v17.9.0 API. This monthly release is adding support for new exciting features like Bidirectional Content to rotate different content in left and right direction. Most of the changes are done for words document format along with adding support for Export Language Metadata. This release is also adding features to export Fonts and document export in PDF format. In this monthly release we have also done some improvements and bug fixes. We recommend our users to download latest API and get benefits from new and enhanced API features.\n.NET Document Editing API - New Features and Changes This monthly release of GroupDocs.Editor for .NET 17.9.0 introducing seven new features like support for \u0026ldquo;background textures and shadings\u0026rdquo; and \u0026ldquo;SVG image format\u0026rdquo; also including six improvements along with five fixes. Here is the list of changes made in new release.\nDocument Editor API - New Features Implement saving into PDF Ability to set password on output PDF Add support of spell check in GroupDocs.Editor Support of bidirectional text Implement bidirectional support of tables Support for bidirectional lists Font extraction from Words document GroupDocs.Ediotr for .NET API - Improvements Add support of table textures Implement shading textures and color in text runs Added new types of fields Support of paragraph foreground and background color Underline.Words feature Completely rework the recognition and validation of TTF font resources Fixes - .NET Document Editor API Fill missing xml-doc comments for public namespaces, classes, properties and methods Fixed bug in Font-processor Duplicate CSS declarations Issue with single-child SDTs Bug in font parser For more details on the supported feature, please visit the article: Supported File Formats\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.editor: Download - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples- Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Editor FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/editor/groupdocs.editor-for-.net-v17.9.0-api/","summary":"We are at GroupDocs glad to announce another release of GroupDocs.Editor for .NET v17.9.0 API. This monthly release is adding support for new exciting features like Bidirectional Content to rotate different content in left and right direction. Most of the changes are done for words document format along with adding support for Export Language Metadata. This release is also adding features to export Fonts and document export in PDF format.","title":"Bidirectional Content \u0026 Export Metadata - Introduced in GroupDocs.Editor for .NET v17.9.0 API"},{"content":"\rLike every month, team GroupDocs has released another version of the API and implements a number of new features and improvements in this monthly release. The latest version i-e 17.9.0 includes features like storing the text of documents during indexing, filtering files before indexing, encoding detection of text files etc. Not only this the API has also added support for CHM documents to the list of supported document formats. The API has removed some of the obsolete methods in this release as well. These are just a few of the many additions made to the latest version of the API. We, therefore, would like our customers to download the latest version and enjoy a better experience with the API.\nNew Features in Version 17.9.0 of the .NET Search API GroupDocs.Search for .NET introduces a number of new features in this release. The details of those features are mentioned below:\nImplementation of: Functionality for storing document text in index Addition of DocumentFilter property to IndexingSetting for filtering files Automatic encoding detection for text documents Support of CHM files \u0026lsquo;Only best results range\u0026rsquo; feature for fuzzy search \u0026lsquo;Only best results range\u0026rsquo; feature for spelling corrector Option for fuzzy search to consider transposition as a single mistake or not Option for spelling corrector to consider transposition as a single mistake or not For further details about the features supported by the API, please visit Features Overview\nThe Document Search API - Enhancements The latest release comes up with a couple of enhancements mentioned below:\nAdd public constants with field names Remove obsolete properties from IndexingSettings Available Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search:\nDownload - MSI Package Zipped DLLs Download - DLLs NuGet - NuGet Install Documentation - API docs Examples/Plugins/Showcases - Source Code Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to GroupDocs.Search for .NET API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/groupdocs.search-for-.net-17.9.0/","summary":"Like every month, team GroupDocs has released another version of the API and implements a number of new features and improvements in this monthly release. The latest version i-e 17.9.0 includes features like storing the text of documents during indexing, filtering files before indexing, encoding detection of text files etc. Not only this the API has also added support for CHM documents to the list of supported document formats. The API has removed some of the obsolete methods in this release as well.","title":"Detect Documents Encoding using GroupDocs.Search for .NET 17.9.0"},{"content":"We\u0026rsquo;re going to introduce an improvement in the naming scheme of our GroupDocs Nuget packages. Earlier, the package IDs were consisted of the product name in lower case letters and the hyphens \u0026ldquo;-\u0026rdquo; to join the words. So, an old package ID would look like \u0026ldquo;groupdocs-viewer-dotnet\u0026rdquo;. However, in the new naming scheme, the format will consist the product family name in title case. Hence, the new package identifier will look like \u0026ldquo;GroupDocs.Viewer\u0026rdquo;. These changes have been introduced since September 2017 and any packages published from here on will follow the new naming scheme. We hope that this announcement will help to avoid any confusion. If you still find any questions or concerns, please feel free to get in touch with us via our support forums. We’ll be happy to hear from you and provide any assistance.\n","permalink":"https://blog.groupdocs.com/total/announcing-improved-naming-scheme-groupdocs-nuget-packages/","summary":"We\u0026rsquo;re going to introduce an improvement in the naming scheme of our GroupDocs Nuget packages. Earlier, the package IDs were consisted of the product name in lower case letters and the hyphens \u0026ldquo;-\u0026rdquo; to join the words. So, an old package ID would look like \u0026ldquo;groupdocs-viewer-dotnet\u0026rdquo;. However, in the new naming scheme, the format will consist the product family name in title case. Hence, the new package identifier will look like \u0026ldquo;GroupDocs.","title":"Announcing the improved naming scheme of GroupDocs Nuget packages"},{"content":"\rGroupDocs team is glad to announce monthly release of .NET Document Conversion API v17.9.0. In this monthly release new document conversion features like Convert from email to HTML document and email to diagram are introduced. This release is also including major fixes and improvements. We recommend our users to download the new release and use the new exciting features to enhance their application.\n.NET Document Conversion API - Major Changes This monthly release of GroupDocs.Conversion for .NET 17.9.0 introducing improvement like conversion from SVG and improved public API methods and performance, Here is the list of changes made in new release.\nDocument Conversion API - Features and Improvements Convert Diagram to Html improvements Conversion from SVG improvement Email to Html conversion improvement Improved public API Fixes - .NET Document Manipulation API While converting pptx to html found improper text formatting of Header or missing text ImageSaveOptions.TiffOptions.Compression does not seem to work Image without background converted with white background also white dot is added near Header Text Images are missing when PDF is saved to EPUB Public API Changes Overview- .NET Conversion APIBefore API v 17.9.0 After API v 17.9.0\nHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/groupdocs.conversion-for-.net-v17.9.0/","summary":"GroupDocs team is glad to announce monthly release of .NET Document Conversion API v17.9.0. In this monthly release new document conversion features like Convert from email to HTML document and email to diagram are introduced. This release is also including major fixes and improvements. We recommend our users to download the new release and use the new exciting features to enhance their application.\n.NET Document Conversion API - Major Changes This monthly release of GroupDocs.","title":"Email to HTML Conversion Introduced in GroupDocs.Conversion for .NET v17.9.0"},{"content":"\rGroupDocs team is glad to announce another monthly release of Document Comparison for .NET API v17.8.0 with some new features like adding support for OneNote document comparison and comparison of header and footer for cells file format and also adding support for pivot tables in cells. This monthly release is also including improvements like HyperLinks on Shape in slides file format along with fixes. Major Changes are done for OneNote, Cells and Slides document formats. Detailed information is listed below. Please Click here to download the latest API.\nGroupDocs.Comparison for .NET - Major Changes \u0026amp; Features Monthly release of GroupDocs.Comparison for .NET 17.8.0 API introducing four new features, like support of OneNote document format and Header \u0026amp; footer Comparison, also adding new feature pivot tables comparison in Cells. In this monthly release Four improvements are also done like Defining Update logger and support of Hyperlinks on Shape along with Four fixes. Here are some highlights:\nComparison API for .NET v17.8.0 New Features Add support Headers and Footers in Cells support for headers and footers for pivot tables pivot tables comparison in Cells OneNote format support for comparison in GroupDocs.Comparison for .NET Document Manipulation .NET API - Improvements These are the features that are improved in the latest version of the GroupDocs.Comparison API.\nCells comparison improvement Add support of Hyperlinks on Shape Update logger Find correct position of pivot table if its coordinates have already been used Dot NET Document Comparison API - Fixes These are the bug fixes that are implemented in the latest version of the GroupDocs.Comparison for .NET v 17.8.0 API.\nLicensing is not working Improve accepting and rejecting of components with hyperlinks for Cells Summary Page is not working Accept and Reject Comparison bugs For more details about supported document formats, please visit Features Overview. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nDownloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\nview the website\n","permalink":"https://blog.groupdocs.com/comparison/groupdocs.comparison-for-.net-api-v17.8.0/","summary":"GroupDocs team is glad to announce another monthly release of Document Comparison for .NET API v17.8.0 with some new features like adding support for OneNote document comparison and comparison of header and footer for cells file format and also adding support for pivot tables in cells. This monthly release is also including improvements like HyperLinks on Shape in slides file format along with fixes. Major Changes are done for OneNote, Cells and Slides document formats.","title":"Compare OneNote document using GroupDocs.Comparison for .NET API v17.8.0"},{"content":"\rWe are at GroupDocs glad to publish another monthly release of dot net document annotation API, where new features are introduced, major features are related to import annotations from slides document format, these includes Import distance annotation, text annotation, strikeout annotation and almost all major annotation types. The latest GroupDocs.Annotation for .NET 17.8.0 API now provides support to set Opacity for Words file also. This release is also including Improvements and Fixes. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.Annotation for .NET.\nNew Features and Changes in .NET Annotation API This monthly release has major changes in Slides and Words like Import Annotations from slides file formats and added Text Field, Strikeout Annotations for slides file Format. Major changes are listed below. For more details about supported documents formats to annotate , please visit this article.\nImplement clean of distance annotation export of distance annotation import of distance annotation distance annotation for slides Import highlight annotation from slides underline annotation import from slides strikeout annotation import from slides text annotation import from slides opacity for text annotations in Words Implement opacity for text annotations in slides support for underline annotation in slides add support for strikeout annotation in slides include support for text annotations in Slides Document Annotation API - Improvements and FixesGroupDocs.Annotation for .NET 17.8.0 API including Two Improvements and Two major fix. Change arrow shape for arrow annotation Simplify the cleaning of the document for the correct import of text annotations Export document to word creates multiple comments - bug Exception thrown when deleting annotation with multiple replies - bug Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET FeedbackWe always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/groupdocs.annotation-.net-api-v17.8.0/","summary":"We are at GroupDocs glad to publish another monthly release of dot net document annotation API, where new features are introduced, major features are related to import annotations from slides document format, these includes Import distance annotation, text annotation, strikeout annotation and almost all major annotation types. The latest GroupDocs.Annotation for .NET 17.8.0 API now provides support to set Opacity for Words file also. This release is also including Improvements and Fixes.","title":"Import Annotations from Slides using GroupDocs.Annotation for .NET v17.8.0 API"},{"content":"\rWe are really pleased to announce the release of version 17.9.0 of the GroupDocs.Text for .NET API. The latest release removes some obsolete methods from the API while adding CHM files media type detector to the API. Most noteworthy feature added to the API in this release is the ability to extract text from Microsoft exchange server using exchange web service. So what are you waiting for? Just download the latest release or update your existing application to this release and enjoy all the features and enhancements made to the API in this release.\nGroupDocs.Text for .NET API - New Features Version 17.9.0 implements a couple of features in GroupDocs.Text for .NET API. The details of those features are as follows:\nExtraction of Text from Microsoft Exchange Server using Exchange Web Service. Detection of CHM files Please have a look at the API\u0026rsquo;s features to have an idea about all the features supported by our text extraction API.\nThe .NET Text Extraction API - Improvements The API comes up with a single enhancement in this release. Constructors from SearchHighlightOptions class and CreateFixedLength class and some methods from HighlightOptions were marked obsolete in version 17.2.0. These obsolete constructors and methods have now been removed.\nGroupDocs.Text for .NET - Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Text:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples - Github Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Text Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/parser/groupdocs.text-for-.net-17.9/","summary":"We are really pleased to announce the release of version 17.9.0 of the GroupDocs.Text for .NET API. The latest release removes some obsolete methods from the API while adding CHM files media type detector to the API. Most noteworthy feature added to the API in this release is the ability to extract text from Microsoft exchange server using exchange web service. So what are you waiting for? Just download the latest release or update your existing application to this release and enjoy all the features and enhancements made to the API in this release.","title":"GroupDocs.Text for .NET 17.9.0 Extracts emails from Microsoft Exchange Server"},{"content":"\rIt gives us immense pleasure to announce the release of version 17.9.0 of the GroupDocs.Metadata for .NET API. The latest release comes up with a number of new features along with an enhancement and a bug fix. In addition to the tags the API already supports, the API also supports reading APEv2 tags in Mp3 files. Furthermore, the API also allows reading metadata of OpenDocument Spreadsheet files(ODS format) starting from version 17.9.0. The API has also added features like reading SRational Tiff tags in Jpeg and Tiff images etc. Moreover, we have tried to improve the metadata extraction API\u0026rsquo;s functionality by improving the export process of files with larger objects and fixing a bug related to updating EXIF tags. We therefore recommend you to download or update your applications to use the latest version of the API for a better and smoother experience.\nThe .NET Metadata Extraction API - New Features Ability to Read: Metadata in OpenDocument Spreadsheet format APEv2 metadata in MP3 format SRational TIFF tag in JPEG and TIFF image formats Ability to Update: And add TIFF tags in EXIF Metadata in OpenDocument Spreadsheet format For details about the features supported by the API, please visit Features Overview.\nGroupDocs.Metadata for .NET API - Enhancements In several cases the metadata value of a specific key may be too large (more than 32 KBytes). Previous versions did not handle such cases so a user might get some kind of exception while trying the export process. We are glad to announce that the API has now improved the method of export process and allows to:\nPrevent the crash during export process in case of converting large objects to Excel or CSV Version 17.9.0 of the Metadata Extraction API - Bug Fixes We realized that several EXIF tags were not found after updating the EXIF property of a Jpeg image. We have fixed this bug in this release and a user can now update the EXIF property of an image without losing any existing tags.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET.\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata Feedback As always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/read-mp3-apev2-tag-groupdocs.metadata-17.9/","summary":"It gives us immense pleasure to announce the release of version 17.9.0 of the GroupDocs.Metadata for .NET API. The latest release comes up with a number of new features along with an enhancement and a bug fix. In addition to the tags the API already supports, the API also supports reading APEv2 tags in Mp3 files. Furthermore, the API also allows reading metadata of OpenDocument Spreadsheet files(ODS format) starting from version 17.","title":"Read APEv2 Tags in Mp3 Files using GroupDocs.Metadata for .NET 17.9.0"},{"content":"\rTeam GroupDocs is really pleased to announce the release of version 17.8.0 of GroupDocs.Signature for .NET API. Like our previous releases, this release too comes up with a number of features and enhancements. The most noteworthy feature introduced in this version is the support for image file formats for all existing signature types. You can now apply all the existing standard signature properties like positioning, alignment, applying fonts, opacity, border options etc that were previously available for other document formats for image file formats as well. We, therefore recommend you to download the latest version of the API and start signing your image documents with the simplest yet amazing features provided by our e-Signing API.\nVersion 17.8.0 of GroupDocs.Signature for .NET API - New Features Supports: Digital Signature for Open Document files format Implements: Ability to repeat text for Stamp Signatures Ability to save Image Documents in different formats BarCode Signature features for Image Documents Barcode Signature Verification for Image Documents Image Signature features for Image Document QR-Code Signature features for Image Documents QR-Code Signature Verification for Image Documents Stamp Signature features for Image Documents Text Signature features for Image Documents Visit the complete list of API features to have a better understanding of the functions the API is capable of performing.\nThe e-Signature API - Improvements A detailed list of all the improvements made to the API in this release is given below:\nAdd ability to crop background color by inner line for Stamp Signatures. Add ability to crop background image by inner line for Stamp Signatures. Implement ability to use Custom InputDataHandler for Certificates and Images resources Implement Verification of Digital Signature Type for Pdf Documents The .NET Document Signing API: Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for .NET:\nDownload - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/signature/groupdocs.signature-.net-supports-image-documents/","summary":"Team GroupDocs is really pleased to announce the release of version 17.8.0 of GroupDocs.Signature for .NET API. Like our previous releases, this release too comes up with a number of features and enhancements. The most noteworthy feature introduced in this version is the support for image file formats for all existing signature types. You can now apply all the existing standard signature properties like positioning, alignment, applying fonts, opacity, border options etc that were previously available for other document formats for image file formats as well.","title":"GroupDocs.Signature for .NET Supports Image Documents"},{"content":"\rTeam GroupDocs is excited to release version 17.9.0 of GroupDocs.Watermark for .NET API. The latest version supports watermarking operations for ODT file format. Furthermore, you can access and work with the hyperlinks that are activated on mouse over in PowerPoint presentations. Please continue to read for more details.\nWorking with Hyperlinks that are Activated on Mouse Over GroupDocs.Watermark for .NET 17.9.0 enables you to work with the hyperlinks that are activated on mouse over in PowerPoint presentations. You can access these hyperlinks to replace or remove their navigation URL. For details, please visit this documentation article.\nRemoving Hyperlinks using FindWatermarks Method {#GroupDocs.Watermarkfor.NET17.7.0ReleaseNotes-Abilitytoworkwithhyperlinksassociatedwithdocumententities(allformats)} Using GroupDocs.Watermark for .NET 17.9.0, you can find hyperlinks of all types in a PowerPoint document using _FindWatermarks _method. For details, please visit: Removing Hyperlinks of All Types.\nSupport of ODT File Format {#GroupDocs.Watermarkfor.NET17.7.0ReleaseNotes-Abilitytoworkwithhyperlinksassociatedwithdocumententities(allformats)} Since version 17.9.0, GroupDocs.Watermark enables you to work with ODT file format.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Watermark:\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples - Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Watermark Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/watermark/releasing-groupdocs-watermark-.net-17.9.0/","summary":"Team GroupDocs is excited to release version 17.9.0 of GroupDocs.Watermark for .NET API. The latest version supports watermarking operations for ODT file format. Furthermore, you can access and work with the hyperlinks that are activated on mouse over in PowerPoint presentations. Please continue to read for more details.\nWorking with Hyperlinks that are Activated on Mouse Over GroupDocs.Watermark for .NET 17.9.0 enables you to work with the hyperlinks that are activated on mouse over in PowerPoint presentations.","title":"Access Hyperlinks that are Activated on Mouse Over using GroupDocs.Watermark for .NET 17.9.0"},{"content":"\rAnother month, another version. Today we are releasing version 17.8.0 of GroupDocs.Viewer for .NET. This version resolves a number of bugs that were found in prior releases. Furthermore, we have added the support of more file formats as well as introduced new features in this monthly release. Please continue to find out more about version 17.8.0.\nRendering Documents with Comments From version 17.8.0, we have extended the support of rendering document comments. Now, rendering comments into HTML and PDF is supported for Microsoft Power Point. Furthermore, rendering comments into HTML is supported for MS Excel and OpenDocument spreadsheet. For more details on rendering documents with comments, please visit this documentation article.\nIgnoring Empty Rows when Rendering Cells Documents Sometimes Cells document contains information in the beginning of the worksheet and after that, it contains some count of empty (blank) rows and information again e.g. summary row. Rendering complete worksheet may take considerable time and may result in decreased performance. Starting from 17.8.0, we introduced a new option, CellsOptions.IgnoreEmptyRows, which allows omitting rendering of empty rows. For more details, please visit this documentation article.\nResponsive Output for Rendering into HTML In order to make your rendering into HTML look well across all type of devices, we added _EnableResponsiveRendering _option of HtmlOptions class. For more details, please visit this documentation article.\nIgnoring Resource Prefix for HTML Resources Since the version 17.8.0, IgnoreResourcePrefixForCss setting is marked as obsolete and has been replaced by IgnorePrefixInResources which applies to all resource types.\nSupported File Formats We have added the support of following file formats in version 17.8.0.\nDNG - Image file format VSDM - MS Visio file format VSTM - MS Visio file format VSSM - MS Visio file format For more details, please visit Supported File Formats.\nGroupDocs.Viewer for .NET 17.8.0 - Improvements Following improvements have been made in version 17.8.0.\nSetting prefix for fonts when rendering Text document as HTML Using single naming convention for HTML resources Using ICacheDataHandler instead of IFileDataStore Implementation of responsive output for rendering into HTML Document Rendering API for .NET - Fixes Following issues have been fixed in version 17.8.0.\nException when rendering Excel document into HTML and image Exception when rendering email message containing .msg file as attachment \u0026ldquo;Index was out of range\u0026rdquo; exception when rendering PDF to HTML Unable to render PDF document in HTML/Image mode Rendering MS Project document stops responding Check boxes in PDF document are not rendered correctly Related Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on document viewer API.\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/releasing-groupdocs-viewer-.net-17.8.0/","summary":"Another month, another version. Today we are releasing version 17.8.0 of GroupDocs.Viewer for .NET. This version resolves a number of bugs that were found in prior releases. Furthermore, we have added the support of more file formats as well as introduced new features in this monthly release. Please continue to find out more about version 17.8.0.\nRendering Documents with Comments From version 17.8.0, we have extended the support of rendering document comments.","title":"New Features and Extended Support of File Formats in GroupDocs.Viewer for .NET 17.8.0"},{"content":"\rGroupDocs team is glad to announce regular release of Document Conversion API for .NET v17.8.0. In this monthly release new document conversion features like Convert Specif Pages from source Document and Hide Comments for Cells documents are introduced. This release is also including major fixes and improvements. We recommend our users to download the new release and use the new exciting features to enhance their application.\nDocument Conversion API - Major Changes This monthly release of GroupDocs.Conversion for .NET 17.8.0 Introducing improvement like to get simplified markup when converting to HTML, Here is the list of changes made in new release.\n.NET API - Features and Improvements Hide comments for Cells documents format Implemented possibility to convert specific pages Improvement - Simplify the generated HTML markup Fix - Converting to Html with SaveOptions.FixedLayout=false always produce fixed layout html conversion How to Convert Specific Document Pages - using .NET Conversion API Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/document.conversion-for-.net-v17.8.0/","summary":"GroupDocs team is glad to announce regular release of Document Conversion API for .NET v17.8.0. In this monthly release new document conversion features like Convert Specif Pages from source Document and Hide Comments for Cells documents are introduced. This release is also including major fixes and improvements. We recommend our users to download the new release and use the new exciting features to enhance their application.\nDocument Conversion API - Major Changes This monthly release of GroupDocs.","title":"Convert Specific Document Pages using - GroupDocs.Conversion for .NET v17.8.0"},{"content":"GroupDocs team is glad to announce another monthly release of .NET Document Comparison API v17.7.0 with advanced features like Cloning passwords and Cloning Metadata for all major file formats and adding support for new style settings. This monthly release is also including improvements like IComparisonStyle interface in cells file format along with fixes. Major Changes are done for HTML, PDF, Cells, Emails and Words document formats. Detailed information is listed below. Please Click here to download the latest API.\nMajor Changes - GroupDocs.Comparison for .NET This monthly release of GroupDocs.Comparison for .NET 17.7.0 introducing four new features, like support of Bold, Italic, Underline and Strike Through in style settings also adding new feature applying/discarding for category of changes. In this monthly release some major Two improvements are also done like Defining Clone Ability for Cells and support of IComparisonStyle along with Three fixes. Here are some highlights:\nComparison API for .NET v17.7.0 New Features Add support of style settings: bold, italic, underline and strike through Setting for cloning passwords for all formats Cloning metadata settings Ability of applying or discarding for category of changes .NET API - Improvements These are the features that are improved in the latest version of the GroupDocs.Comparison API.\nIntroduced IComparisonStyle interface for Cells document format Add clone ability Document Comparison API - Fixes These are the bug fixes that are implemented in the latest version of the GroupDocs.Comparison for .NET v 17.7.0 API.\ngetting style change when content of the cell is not changed for Cells style change when content of the cell is not changed for Cells Improve accepting and rejecting of components with hyperlinks For more details about supported document formats, please visit Features Overview.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nDownloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\nview the website\n","permalink":"https://blog.groupdocs.com/comparison/document.comparison-api-for-.net-v17.7.0/","summary":"GroupDocs team is glad to announce another monthly release of .NET Document Comparison API v17.7.0 with advanced features like Cloning passwords and Cloning Metadata for all major file formats and adding support for new style settings. This monthly release is also including improvements like IComparisonStyle interface in cells file format along with fixes. Major Changes are done for HTML, PDF, Cells, Emails and Words document formats. Detailed information is listed below.","title":"Clone Passwords and Style Settings are Introduced in GroupDocs.Comparison for .NET API v17.7.0"},{"content":"\rTeam GroupDocs is really glad to announce the release of version 17.8.0 of the GroupDocs.Assembly for .NET API. The latest release adds a number of features to the API, the most important being the ability to support document assembly for Email file formats. For a better experience with the API, we recommend you to download the latest release and try out the features introduced in the latest version of the API.\nDocument Generation API for .NET - New Features GroupDocs.Assembly for .NET introduces the following new features in version 17.8.0 of the API:\n1- Support document assembly for Email file formatsThe GroupDocs.Assembly for .NET API now supports document assembly for the following email file formats: MHTML file formats MSG file formats EML file formats EMLX file formats 2- Support building of charts located in chart worksheets 3- Support building of charts with series names located in referenced cellsFor a complete list of features supported by the API, read the API features here. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly for .NET:\nDownload - MSI Package as well as Zipped DLLs NuGet - Nuget Installation Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly Feedback We observe your feedback carefully, please share your feedback about GroupDocs.Assembly for .NET API. We will be happy to know your thoughts and we will try to enhance your experience with the API. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/assembly/groupdocs.assembly-for-.net-17.8.0-supports-email-document-format/","summary":"Team GroupDocs is really glad to announce the release of version 17.8.0 of the GroupDocs.Assembly for .NET API. The latest release adds a number of features to the API, the most important being the ability to support document assembly for Email file formats. For a better experience with the API, we recommend you to download the latest release and try out the features introduced in the latest version of the API.","title":"GroupDocs.Assembly for .NET 17.8.0 Supports Email Document Format"},{"content":"\rThe GroupDocs team is really pleased to announce the release of version 17.8.0 of the GroupDocs.Metadata for .NET API. The latest release comes up with a couple of new features and enhancements along with a bug fix. The API further improves its functionality by implementing the ability to read maker notes for Canon and Panasonic cameras. Beside adding two new manufacturers to the supported list, the API now supports some more camera models for SONY and Nikon that were not previously supported. We recommend you to download and integrate this latest release.\nThe Metadata Extraction API - New Features The latest version of the API comes up with the following new features:\nAbility to Read: Canon maker notes in JPEG image Panasonic maker notes in JPEG image For details about the features supported by the API, please visit Features Overview.\nVersion 17.8.0 of the .NET Metadata Extraction API - Improvements GroupDocs.Metadata for .NET API enhances the ability to read maker notes from Nikon and Sony cameras and adds the ability to read:\nEXIF maker-notes from Nikon D models (D300, D500, D600, D5100 etc) EXIF maker-notes from Sony xperia, cybershot models GroupDocs.Metadata for .NET - Bug Fixes At GroupDocs, we are always focused on delivering the best to our customers. In this regard we have fixed an issue related to removing EXIF geo-location which was resulting in the loss of XMP metadata. The latest release has resolved this issue and preserves the XMP metadata intact after a user removes the EXIF geo-location from a JPEG image.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET.\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata Feedback As always, if you have some questions, queries or suggestions about Metadata extraction API for .NET, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/read-maker-notes-from-canon-and-panasonic-using-groupdocs.metadata-for-.net-17.8.0/","summary":"The GroupDocs team is really pleased to announce the release of version 17.8.0 of the GroupDocs.Metadata for .NET API. The latest release comes up with a couple of new features and enhancements along with a bug fix. The API further improves its functionality by implementing the ability to read maker notes for Canon and Panasonic cameras. Beside adding two new manufacturers to the supported list, the API now supports some more camera models for SONY and Nikon that were not previously supported.","title":"Read Maker Notes from Canon and Panasonic using GroupDocs.Metadata for .NET 17.8.0"},{"content":"\rAt GroupDocs, we are always focused on delivering the best to our customers, in this regard we are excitedly announcing another monthly release of GroupDocs.Assembly for Java v17.8.0. This new release of Java Document Assembly API now provides support for Email formats along with support for building charts from chart worksheets and reference cells. We would recommend you to download and integrate this latest release.\nJava Document Assembly API v17.8.0 - Features This latest release provide support for:\nMSG file formats EML file formats EMLX file formats MHTML file formats Building of charts located in chart worksheets Building of charts with series names located in referenced cells Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly:\nDownload - Jar File Documentation - API Documentation Examples/Plugins/Showcases - Github source code examples Product Support Forum - Technical Support Forum for GroupDocs.Assembly Feedback We\u0026rsquo;d like to hear your valuable feedback. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/assembly/groupdocs.assembly-java-17.8.0-support-email-formats/","summary":"At GroupDocs, we are always focused on delivering the best to our customers, in this regard we are excitedly announcing another monthly release of GroupDocs.Assembly for Java v17.8.0. This new release of Java Document Assembly API now provides support for Email formats along with support for building charts from chart worksheets and reference cells. We would recommend you to download and integrate this latest release.\nJava Document Assembly API v17.","title":"Email Formats are Supported in GroupDocs.Assembly for Java 17.8.0"},{"content":"\rGroupDocs team is excited to announce one more monthly release of document annotation API, where new properties are introduced, these properties are included on users demand to facilitate them as our users always expects something new and extra features form our APIs compare to other available prodcts. The latest GroupDocs.Annotation for .NET 17.7.0 API now provides support to set Opacity and SVG Path for all major document formats like, PDF, Diagram, Slide and Words file formats etc. This release is also including Improvements and Fixes. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.Annotation for .NET.\n.NET Document Annotation API - New Features and ChangesThis monthly release has major changes in Diagram , PDF , Slides and Words like Import Annotations from Diagram file formats and added Text Field Annotation for Diagram file Format. Major changes are listed below. For more details about supported documents formats to annotate , please visit this article. Set opacity for Diagrams annotations PDF Annotations opacity properties Words Annotations opacity properties Slides Annotations opacity properties Import text field annotation from Diagram Polyline annotation import from Diagram Area Redaction import annotation from diagram Area annotation import from diagram Implement import annotations for Diagram TextField annotation import for Diagrams Document Annotation API - Improvements and FixesGroupDocs.Annotation for .NET 17.7.0 API including One Improvements and One major fix. Implement additional specific exceptions Bug with parsing specific SVG path Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET FeedbackWe always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/opacity-and-fixed-svg-path-properties-introduced-in-groupdocs.annotation-for-.net-v17.7.0/","summary":"GroupDocs team is excited to announce one more monthly release of document annotation API, where new properties are introduced, these properties are included on users demand to facilitate them as our users always expects something new and extra features form our APIs compare to other available prodcts. The latest GroupDocs.Annotation for .NET 17.7.0 API now provides support to set Opacity and SVG Path for all major document formats like, PDF, Diagram, Slide and Words file formats etc.","title":"Opacity and Fixed SVG Path Properties Introduced in GroupDocs.Annotation for .NET v17.7.0"},{"content":"\rThe GroupDocs team is pleased to announce a new release of Annotation API for Java Front End v3.0.0. We are introducing two new features like availability of arrow annotation tool and show spinner while rendering document in this version. We would recommend Java users to download this new version to explore and provide us valuable feedback. Java Annotation API Front End v3.0.0 includes following new features.\nShow Loading Spinner while Rendering Document User will see spinner on the screen in this new version of Annotation API FrontEnd v3.0.0 while rendering document/s.\nAvailability of Arrow Annotation Tool User is able to annotate document using arrow annotation tool in this new version of Annotation API for Java Front End v3.0.0\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on Document Annotation API for Java:\nDownload – JAR Files Documentation – API Docs Product Support Forum – Technical Support Forum for GroupDocs.Signature Examples – Examples/Plugins/Showcases Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/java-annotation-api-frontend-v3.0.0-arrow-annotation-feature-update/","summary":"The GroupDocs team is pleased to announce a new release of Annotation API for Java Front End v3.0.0. We are introducing two new features like availability of arrow annotation tool and show spinner while rendering document in this version. We would recommend Java users to download this new version to explore and provide us valuable feedback. Java Annotation API Front End v3.0.0 includes following new features.\nShow Loading Spinner while Rendering Document User will see spinner on the screen in this new version of Annotation API FrontEnd v3.","title":"Java Annotation API FrontEnd v3.0.0 - Arrow Annotation Feature Update"},{"content":"\rGroupDocs team is proudly releasing new version for SharePoint Modern WebPart for GroupDocs.Viewer for .NET. Using this Modern WebPart user can embed and use API\u0026rsquo;s salient features in their own custom SharePoint Sites. In this new version **v1.2 **user can add **Watermark **in the document and **Navigate **through the file browser\u0026rsquo;s documents using next and previous buttons. We recommend you to download and explore this new version. Let\u0026rsquo;s have a look at it.\nLet\u0026rsquo;s explore new features in detail.\nAdd watermarkUser can now add watermark in page html, page image, document\u0026rsquo;s attachments and PDF printing. User can set watermark properties like text, color, position, width and opacity using app constant in app.js. Let\u0026rsquo;s take a look at the code, ngApp.constant('Watermark', { Text: \u0026quot;Watermark Text\u0026quot;, Color: 16711680, Position: 'Diagonal', Width: null, Opacity : 255 }); Navigate in file browser using next and previous buttonsUser can now load documents available in file browser using **Next Document **and **Previous Document **buttons. These buttons are available on the top main menu and user can simply click these buttons to load documents. Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/new-version-sharepoint-modern-webpart-groupdocs.viewer-.net-watermark-document-navigation/","summary":"GroupDocs team is proudly releasing new version for SharePoint Modern WebPart for GroupDocs.Viewer for .NET. Using this Modern WebPart user can embed and use API\u0026rsquo;s salient features in their own custom SharePoint Sites. In this new version **v1.2 **user can add **Watermark **in the document and **Navigate **through the file browser\u0026rsquo;s documents using next and previous buttons. We recommend you to download and explore this new version. Let\u0026rsquo;s have a look at it.","title":"New Version for SharePoint Modern WebPart for GroupDocs.Viewer for .NET - Watermark and Document Navigation"},{"content":"\rIt gives us great pleasure to announce the release of version 17.8.0 of GroupDocs.Search for .NET API. This regular monthly release adds a number of new features to the API along with an enhancement and a breaking change. Like our previous releases, we have tried our best to improve the working of the API and as a result we have come up with a breaking change where all the argument classes have been fixed according to best practices. The API has also removed some obsolete functions. Apart from these improvements, a number of new features have also been added to the API like limiting the search report, implementing accent insensitive indexing, limiting the index report, indexing ZIP archive etc are just to name a few. So, what are you waiting for? Just download the latest API and enjoy all the features and improvements made to the search API in this release.\n.NET Document Search API - Breaking Change Version 17.8.0 of the e-search API comes up with a major breaking change where all argument classes have been fixed according to best practices.\nGroupDocs.Search for .NET - New Features Version 17.8.0 of the text extraction API introduces a number of new features. The details of those features are as follows:\nImplementation of: Accent-insensitive indexing Option for the spelling corrector \u0026lsquo;Only best results\u0026rsquo; Option for the fuzzy search \u0026lsquo;Only best results\u0026rsquo; Limit for Searching Report Limit for Indexing Report Method that generates text with highlighted search results Indexing ZIP archives Addition of: FileIndexing event for selecting custom indexing strategy for separate document StatusChanged event to Index class For further details about the features supported by the API, please visit Features Overview\nThe e-Search API - Improvements The latest release comes up with a single enhancement. The SimilarityLevel property which was marked obsolete has finally been removed from SearchParameters in version 17.8.0 of the API\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search: Download - MSI Package Zipped DLLs Download - DLLs NuGet - NuGet Install Documentation - API docs Examples/Plugins/Showcases - Source Code Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to documents search API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/groupdocs.search-for-.net-17.8.0/","summary":"It gives us great pleasure to announce the release of version 17.8.0 of GroupDocs.Search for .NET API. This regular monthly release adds a number of new features to the API along with an enhancement and a breaking change. Like our previous releases, we have tried our best to improve the working of the API and as a result we have come up with a breaking change where all the argument classes have been fixed according to best practices.","title":"Best Practices used in Argument Classes in GroupDocs.Search for .NET 17.8.0"},{"content":"\rTeam GroupDocs is pleased to notify its users about the regular monthly release of version 17.8.0 of the .NET Text extraction API. The latest release introduces support for .chm files and allows its users to extract text from CHM files. This feature allows extracting either a single line or all text characters from a file of .chm format. We highly recommend our users to download or update the API to the latest version and get advantage of the ability to extract text from the CHM files.\nThe Text Extraction API - New Features Version 17.8.0 comes up with a single new feature. The latest release adds another file format to the list of formats supported by the API and it now allows text extraction from CHM files. Please see the API features for more information about the features supported by the API.\nGroupDocs.Text for .NET - Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Text:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples - Github Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Text Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/parser/chm-files-now-supported-groupdocs.text-.net-17.8/","summary":"Team GroupDocs is pleased to notify its users about the regular monthly release of version 17.8.0 of the .NET Text extraction API. The latest release introduces support for .chm files and allows its users to extract text from CHM files. This feature allows extracting either a single line or all text characters from a file of .chm format. We highly recommend our users to download or update the API to the latest version and get advantage of the ability to extract text from the CHM files.","title":"CHM Files Now Supported in Version 17.8.0 of GroupDocs.Text for .NET"},{"content":"\rHere we have another monthly release of GroupDocs.Watermark for .NET API. You can now improve search performance by specifying the objects that you want to include in watermark search. Furthermore, from now on you can use your Dynabic.Metered account to run the API in licensed mode. Let\u0026rsquo;s have a quick overview of the new features of GroupDocs.Watermark for .NET 17.8.0.\nRestrict Searchable Objects - Improve Performance GroupDocs.Watermark for .NET 17.8.0 enables you to specify which objects should be included in watermark search. Restricting searchable objects will surely increase the performance. For details, please visit: Searching Watermark in Particular Objects.\nMetered Licensing {#GroupDocs.Watermarkfor.NET17.7.0ReleaseNotes-Abilitytoworkwithhyperlinksassociatedwithdocumententities(allformats)} Using GroupDocs.Watermark for .NET 17.8.0, you can specify your Dynabic.Metered account to use GroupDocs.Watermark for .NET in licensed mode. For details, please visit: Using Metered Licensing.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Watermark: Download - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples - Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Watermark Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/watermark/groupdocs-watermark-.net-17.8.0/","summary":"Here we have another monthly release of GroupDocs.Watermark for .NET API. You can now improve search performance by specifying the objects that you want to include in watermark search. Furthermore, from now on you can use your Dynabic.Metered account to run the API in licensed mode. Let\u0026rsquo;s have a quick overview of the new features of GroupDocs.Watermark for .NET 17.8.0.\nRestrict Searchable Objects - Improve Performance GroupDocs.Watermark for .NET 17.","title":"Restrict Searchable Objects using GroupDocs.Watermark for .NET 17.8.0"},{"content":"\rGood news for ASP.NET WebForm Developers. GroupDocs team is releasing a new version for GroupDocs.Viewer for .NET WebForm Modern UI. All features supported in the MVC Modern UI are now available in the WebForm Modern UI. User\u0026rsquo;s working across different platforms can enjoy user-friendly interface, easily manageable code and pixel perfect rendering. In this new release v1.2 user can now add **Watermark **in the document and **Navigate **through the file browser\u0026rsquo;s documents using next and previous buttons. We recommend you to download and explore this new version. Let\u0026rsquo;s have a look at it.\nLet\u0026rsquo;s explore new features in detail.\nAdd watermarkUser can now add watermark in page html, page image, document\u0026rsquo;s attachments and PDF printing. User can set watermark properties like text, color, position, width and opacity using app constant in app.js. Let\u0026rsquo;s take a look at the code, ngApp.constant('Watermark', { Text: \u0026quot;Watermark Text\u0026quot;, Color: 16711680, Position: 'Diagonal', Width: null, Opacity : 255 }); Navigate in file browser using next and previous buttonsUser can now load documents available in file browser using **Next Document **and **Previous Document **buttons. These buttons are available on the top main menu and user can simply click these buttons to load documents. Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/document-navigation-watermark-asp.net-web-form-ui-groupdocs.viewer-.net/","summary":"Good news for ASP.NET WebForm Developers. GroupDocs team is releasing a new version for GroupDocs.Viewer for .NET WebForm Modern UI. All features supported in the MVC Modern UI are now available in the WebForm Modern UI. User\u0026rsquo;s working across different platforms can enjoy user-friendly interface, easily manageable code and pixel perfect rendering. In this new release v1.2 user can now add **Watermark **in the document and **Navigate **through the file browser\u0026rsquo;s documents using next and previous buttons.","title":"Document Navigation and Watermark in ASP.NET Web Form UI for GroupDocs.Viewer for .NET"},{"content":"\rEvery month team GroupDocs comes up with a new release that adds some valuable features to the GroupDocs.Signature for .NET API. In this regard we are pleased to announce the release of version 17.7.0 of the e-signing API. The most important feature introduced in this version is the support for Stamp signatures. Other features introduced in this version include the implementation and verification of new barcode and QR-code encode types. Some enhancements have also been made to the API like the improvement of barcode and QR-code verification options etc. For a better experience with the API, we would like you to download this latest release or update to version 17.7.0 if you are using some previous version and enjoy the features provided by the GroupDocs.Signature API in this release.\nThe Document Signing API - New FeaturesThe following new features have been implemented in version 17.7.0 of GroupDocs.Signature for .NET API: Stamp Signature features for Word Documents Stamp Signature features for Cell Documents Stamp Signature features for Slide Documents Stamp Signature features for Pdf Documents Verification of new Barcode encode types Verification of new QR-Code encode types New QR-Code encode types New Barcode encode types For more information about the features supported by the API, please see the API features\nGroupDocs.Signature for .NET API - ImprovementsThe latest version of the GroupDocs.Signature for .NET API comes up with a number of improvements. The details are listed as follows: Improved Barcode Verification options Updated document Information method with extended guid properties Improved QR-Code validation options E-Signing API : Available Channels and ResourcesHere are a few channels and resources for you to learn, try and get technical support on GroupDocs.Signature API for .NET: Download - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/signature/stamp-signatures-introduced-in-groupdocs.signature-for-.net-17.7.0/","summary":"Every month team GroupDocs comes up with a new release that adds some valuable features to the GroupDocs.Signature for .NET API. In this regard we are pleased to announce the release of version 17.7.0 of the e-signing API. The most important feature introduced in this version is the support for Stamp signatures. Other features introduced in this version include the implementation and verification of new barcode and QR-code encode types.","title":"Stamp Signatures Introduced in GroupDocs.Signature for .NET 17.7.0"},{"content":"\rWe are delighted to announce another monthly release of GroupDocs.Viewer for .NET . In GroupDocs.Viewer for .NET 17.7.0, we have introduced rendering of PDF document with attachments. Furthermore, 14 improvements and fixes are included in this release. We would recommend you to try the latest version and share your feedback with us.\nGroupDocs.Viewer for .NET 17.7.0 - New FeaturesGroupDocs.Viewer for .NET 17.7.0 introduced following new feature. Rendering PDF documents with attachments For more details, please visit API Features.\n.NET Document Viewer API - ImprovementsListed below are the improvements included in GroupDocs.Viewer for .NET 17.7.0. Extend support for setting font directories to Presentation documents Extend support for setting JpegQuality when rendering SVG as PDF Improve rendering Microsoft Visio document as HTML Rendering djvu documents with maximum JpegQuality renders contained images with low quality Document Rendering API for .NET - FixesFollowing issues have been fixed in version 17.7.0. PDF with hieroglyphs is converted to the JPEG and HTML with corrupted symbols Resource prefix not applied when rendering Presentation documents to HTML Watermark not displayed when rendering Microsoft Visio document as HTML Multi-page Microsoft Visio document shows page count as one ViewerConfig.DefaultFontName setting does not replace missing fonts for Spreadsheet documents Conflict when using GroupDocs.Viewer and Aspose APIs in the same project Incorrect rendering of bullets in HTML mode Incorrect Characters after rendering PDF in HTML/Image mode Some characters are being replaced with a ? placeholder while rendering. Failed to load DGN file Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/releasing-groupdocs-viewer-17.7.0/","summary":"We are delighted to announce another monthly release of GroupDocs.Viewer for .NET . In GroupDocs.Viewer for .NET 17.7.0, we have introduced rendering of PDF document with attachments. Furthermore, 14 improvements and fixes are included in this release. We would recommend you to try the latest version and share your feedback with us.\nGroupDocs.Viewer for .NET 17.7.0 - New FeaturesGroupDocs.Viewer for .NET 17.7.0 introduced following new feature. Rendering PDF documents with attachments For more details, please visit API Features.","title":"Render PDF Document with Attachments - GroupDocs.Viewer for .NET 17.7.0"},{"content":"\rThe team GroupDocs is excitedly releasing a new version v3.0.0 of GroupDocs.Viewer for Java Modern UI. We have introduced multiple new features and improvements in this new version. We would recommend you to download this new version to explore our new and improved functionalities and provide your valuable feedback. GroupDocs.Viewer for Java Modern UI v3.0.0 includes following improvements.\nAbility to view email attachmentsThe user can view email attachments in Modern UI v3.0.0 by simply loading .msg file via file browser. The application will automatically detect and render attachments. Ability to view email attachments thumbnailsThe user can also view email attachments thumbnails by simply clicking thumbnails button. The application will automatically detect and display thumbnails for attachments. Ability to load document via URLIn this new release user can load document by inserting document’s URL in app.js. Following is the code for loading document via URL. ngApp.constant('FilePath','https://www.w3.org/2011/web-apps-ws/papers/Nitobi.pdf'); Ability to load default documentIn this new release user can load default document by inserting document’s name in app.js. Following is the code for loading document via URL. ngApp.constant('FilePath','Candy.pdf'); Ability to apply watermarks on output pagesIn this new release user can apply watermarks to output pages and thumbnails of the document, email and email attachments, also apply watermark on the pages of the document when downloaded as PDF. Open SourceThe best part is that full source code of the app is available to download from GitHub. You can also contribute to the app by sending a pull-request. API FeaturesThe app covers most APIs of GroupDocs.Viewer for Java, which allows anyone to see how to use same API in their own apps. Easy IntegrationThe app can be easily embedded or integrated with another app of your choice. You can either use IFRAME or embed it as AngularJS Module. Additional ResourcesFollowing resources will help you to download, learn, try and get technical support. Product Home – GroupDocs.Viewer for Java. Documentation – Product Documentations. Product Support Forum – Technical Support Forum for GroupDocs.Viewer. Examples/Plugins/Showcases – Github source code examples. FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/introducing-new-version-groupdocs.viewer-java-modern-ui/","summary":"The team GroupDocs is excitedly releasing a new version v3.0.0 of GroupDocs.Viewer for Java Modern UI. We have introduced multiple new features and improvements in this new version. We would recommend you to download this new version to explore our new and improved functionalities and provide your valuable feedback. GroupDocs.Viewer for Java Modern UI v3.0.0 includes following improvements.\nAbility to view email attachmentsThe user can view email attachments in Modern UI v3.","title":"Introducing New Version of GroupDocs.Viewer for Java Modern UI"},{"content":"\rGroupDocs team keeps on adding new features in **ASP.NET MVC Front End **for GroupDocs.Viewer for .NET, so that users can enjoy user-friendly interface, easily manageable code, pixel perfect rendering with features supported in our old front ends. In this new release v1.2 user can now add **Watermark **in the document and **Navigate **through the file browser\u0026rsquo;s documents using next and previous buttons. We recommend you to download and explore this new version. Let\u0026rsquo;s have a look at it.\nLet\u0026rsquo;s explore new features in detail.\nAdd watermarkUser can now add watermark in page html, page image, document\u0026rsquo;s attachments and PDF printing. User can set watermark properties like text, color, position, width and opacity using app constant in app.js. Let\u0026rsquo;s take a look at the code, ngApp.constant('Watermark', { Text: \u0026quot;Watermark Text\u0026quot;, Color: 16711680, Position: 'Diagonal', Width: null, Opacity : 255 }); Navigate in file browser using next and previous buttonsUser can now load documents available in file browser using **Next Document **and **Previous Document **buttons. These buttons are available on the top main menu and user can simply click these buttons to load documents. Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/watermark-document-navigation-asp.net-mvc-modern-ui-groupdocs.viewer-.net/","summary":"GroupDocs team keeps on adding new features in **ASP.NET MVC Front End **for GroupDocs.Viewer for .NET, so that users can enjoy user-friendly interface, easily manageable code, pixel perfect rendering with features supported in our old front ends. In this new release v1.2 user can now add **Watermark **in the document and **Navigate **through the file browser\u0026rsquo;s documents using next and previous buttons. We recommend you to download and explore this new version.","title":"Watermark and Document Navigation in ASP.NET MVC Modern UI for GroupDocs.Viewer for .NET"},{"content":"\rWe\u0026rsquo;re pleased to announce another monthly release of GroupDocs.Annotation for Java 17.6.0. This release comes with some new features, improvements and a bug fixe. Different new annotations are now supported for Diagram documents (VSS, VSD). Furthermore, implementing GetPages method for Email documents processing from streams is improved. For further information, please see release notes. We\u0026rsquo;d recommend you to fetch latest release of the API, integrate it in your project and share your valuable feedback.\nGroupDocs.Annotation for Java 17.6.0 - New FeaturesFollowing new features are introduced: Implement Polyline annotation with Diagram documents Add Arrow annotation for Diagram documents Support of Area annotation for Diagrams Document Annotation API - ImprovementsFollowing improvements are introduced in this release: Option to process CAD documents as PDF GetPages method for Email documents processing from streams Proper error handling when user try to invoke GetDocumentInfo method for images documents GroupDocs.Annotation for Java API - Bug FixesFollowing bug(s) is fixed/resolved in 17.6.0 version of the API: Internal Exception in annotator.GetDocumentInfo() Method Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Documentation Annotation API: Download - Zipped JARs Documentation - API Documentation Examples/Showcases - GitHub source code examples Product Support Forum - Technical Support Forum for GroupDocs.Annotation FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/introducing-groupdocs.annotation-java-17.6.0/","summary":"We\u0026rsquo;re pleased to announce another monthly release of GroupDocs.Annotation for Java 17.6.0. This release comes with some new features, improvements and a bug fixe. Different new annotations are now supported for Diagram documents (VSS, VSD). Furthermore, implementing GetPages method for Email documents processing from streams is improved. For further information, please see release notes. We\u0026rsquo;d recommend you to fetch latest release of the API, integrate it in your project and share your valuable feedback.","title":"Implement Area Annotation for Diagrams using GroupDocs.Annotation for Java 17.6.0"},{"content":"\rWe are pleased to announce the release of GroupDocs.Editor for .NET API which makes it easier to perform document editing operations and conversion of edited document with simple line of code with various supported document formats. Document Editing API allows user to convert supported document format into HTML and apply changes in any WYSIWYG HTML Editor, it also provide facility to convert back HTML document in same format or in other supported document format with changes made. Its simple syntax, easy to use methods and a short lines of code to perform many document editing operations make it different and unique. Continue to read more about the API\u0026rsquo;s features.\nPurpose Behind GroupDocs.Editor for .NET APIDocument editing and conversion into other document formats is a very tough job specially when you need to add/edit, convert different document, text, images, styles etc. in a huge files with redundant changes. GroupDocs.Editor for .NET API is designed to facilitate user to edit any supported document using automated system approach with simplest and largely used editing environment \u0026ldquo;HTML Editor\u0026rdquo; and convert back edited document in same format or any other supported document format. HTML editor provides platform independent approach to edit document with fast and effective way. GroupDocs.Editor- Supported FeaturesFollowing are the salient features exposed by GroupDocs.Editor for .NET. GroupDocs.Editor for .NET currently provides features that are specific to the Words format only, other different files format will be available in upcoming releases. Features Overview C# Examples Showcase Working with Documents Supported File Formats .NET Document Editing API - Supported File FormatsGroupDocs.Editor for .NET API supports document editing operations for following file formats: DOCX DOC DOCM ODT OTT RTF HTML MHTML WordML FlatOpc MOBI DOTX For more details on the supported feature, please visit the article: Supported File Formats Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.editor: Download - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples- Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Editor queries FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/editor/introducing-groupdocs.editor-.net-api-edit-convert-document-way/","summary":"We are pleased to announce the release of GroupDocs.Editor for .NET API which makes it easier to perform document editing operations and conversion of edited document with simple line of code with various supported document formats. Document Editing API allows user to convert supported document format into HTML and apply changes in any WYSIWYG HTML Editor, it also provide facility to convert back HTML document in same format or in other supported document format with changes made.","title":"Releasing GroupDocs.Editor for .NET API- Performs Various Document Editing Operations"},{"content":"\rGroupDocs team is happy to announce another regular monthly release of GroupDocs.Conversion for .NET v17.7.0 API. In this monthly release new document conversion features like Get Available layouts in a CAD Document and Hide PDF Annotations when converting from PDF are introduced. This release is also including major fixes and improvements. We recommend our users to download the new release and use the new exciting features to enhance their application.\nGroupDocs.Conversion for .NET API 17.7.0This release of GroupDocs.Conversion for .NET 17.7.0 Implemented Option to specify Width and Height for the resulting document when converting From CAD document file formats and Option to specify Exact layout to convert from a CAD document, Here is the list of changes made in new release. Features and Improvements Updated DocumentInfo class to return all layouts for CAD document format Implemented possibility to convert specific layouts when converting from CAD document Convert Pdf documents without annotations Added Option to specify Width and Height for the result document when converting From CAD document Improvement - possibility to set Width and Height when converting from CAD document How to get available layouts in a CAD document Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - GitHub Source Code Examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/get-available-layouts-cad-document-using-groupdocs.conversion-.net-v17.7.0/","summary":"GroupDocs team is happy to announce another regular monthly release of GroupDocs.Conversion for .NET v17.7.0 API. In this monthly release new document conversion features like Get Available layouts in a CAD Document and Hide PDF Annotations when converting from PDF are introduced. This release is also including major fixes and improvements. We recommend our users to download the new release and use the new exciting features to enhance their application.","title":"Get Available Layouts in a CAD Document using - GroupDocs.Conversion for .NET v17.7.0"},{"content":"\rGreat news for SharePoint Developers, GroupDocs proudly announces latest release for GroupDocs.Viewer for .NET Modern SharePoint WebPart. In this v1.1 we updated all features that were implemented in ASP.NET MVC Modern UI v1.1. Our aim is to provide same features in all of our modern front ends, so that customer\u0026rsquo;s across different platforms can enjoy similar features. We have introduced a bunch of new features in this new version. We would recommend you to download this release and provide your valuable feedback.\nGroupDocs.Viewer for .NET Modern SharePoint WebPart v1.1 includes following improvements.\nView email attachments User can now view email attachments in SharePoint Modern WebPart by simply loading .msg file via file browser. The application will automatically detect and render attachments.\nView email attachment\u0026rsquo;s thumbnails User can also view email attachment\u0026rsquo;s thumbnails by simply clicking thumbnails button. The application will automatically detect and display thumbnails for attachments.\nLoad document via URL In this new release user can now load document by inserting document\u0026rsquo;s URL in app.js. Following is the code for loading document via URL. ngApp.constant('FilePath','https://www.w3.org/2011/web-apps-ws/papers/Nitobi.pdf');\nLoad default document In this new release user can now load default document by inserting document\u0026rsquo;s name in app.js. Following is the code for loading document via URL. ngApp.constant('FilePath','Candy.pdf');\nRelated Links and Resources We have a few channels and resources for you to download, learn, try and get technical support on document viewer API.\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/viewer/latest-release-modern-sharepoint-webpart-groupdocs.viewer-.net/","summary":"Great news for SharePoint Developers, GroupDocs proudly announces latest release for GroupDocs.Viewer for .NET Modern SharePoint WebPart. In this v1.1 we updated all features that were implemented in ASP.NET MVC Modern UI v1.1. Our aim is to provide same features in all of our modern front ends, so that customer\u0026rsquo;s across different platforms can enjoy similar features. We have introduced a bunch of new features in this new version. We would recommend you to download this release and provide your valuable feedback.","title":"Latest release for Modern SharePoint WebPart for GroupDocs.Viewer for .NET"},{"content":"\rTeam GroupDocs is always focused on delivering the best to their customers and this is why we have come up with yet another monthly release of the search API which adds some very valuable features and enhancements to the GroupDocs.Search for .NET API. Using the latest version, users can get detailed report about searching or indexing. The API has also added Fiction book format to the list of supported formats. We suggest you to update or download the latest version of the search API and check out all the features introduced in this release.\nThe Document Search API - New FeaturesVersion 17.7.0 of the API introduces the following new features in this release: Implement support of FictionBook (fb2) format Implement Indexing Report functionality Implement Search Report functionality For the list of features supported by the API ,please visit Features Overview and for the list of supported formats, please visit supported document formats.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search: Download - MSI Package Zipped DLLs Download - DLLs NuGet - NuGet Install Documentation - API docs Examples/Plugins/Showcases - Source Code Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search FeedbackIf you have any suggestions, questions, or queries related to GroupDocs.Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts. ","permalink":"https://blog.groupdocs.com/search/get-search-and-index-report-using-groupdocs.search-for-.net-17.7.0/","summary":"Team GroupDocs is always focused on delivering the best to their customers and this is why we have come up with yet another monthly release of the search API which adds some very valuable features and enhancements to the GroupDocs.Search for .NET API. Using the latest version, users can get detailed report about searching or indexing. The API has also added Fiction book format to the list of supported formats.","title":"Get Search and Index Report Using GroupDocs.Search for .NET 17.7.0"},{"content":"\rIt gives us immense pleasure to inform our customers about the release of a newer version, that is version 17.7.0, of GroupDocs.Text for .NET API. Like the previous releases, this release also focuses on improving the API and has introduced some very exciting features in this regard. The latest version has implemented support for DOT(.dot) files. Apart from the basic extraction method, the users can also use IContainer interface to extract text from email messages. The API allows extracting text from PDF portfolios as well. We really hope that our users will download the latest version of the API for a better and trouble-free experience with the text extraction API.\nGroupDocs.Text For .NET 17.07 - New Features The following new features have been introduced in version 17.7.0 of the API:\nImplementation of the ability to extract a text from Pdf portfolios Implementation of IContainer interface support for email text extractors Implementation of DOT(.dot) files support Implementation of IPageTextExtractor interface For more information about the features supported by the API, please see the API features\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Text:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples - Github Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Text Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/parser/dot-files-now-supported-in-version-17.7.0-of-groupdocs.text-for-.net-api/","summary":"It gives us immense pleasure to inform our customers about the release of a newer version, that is version 17.7.0, of GroupDocs.Text for .NET API. Like the previous releases, this release also focuses on improving the API and has introduced some very exciting features in this regard. The latest version has implemented support for DOT(.dot) files. Apart from the basic extraction method, the users can also use IContainer interface to extract text from email messages.","title":"DOT Files Supported in Version 17.7.0 of GroupDocs.Text for .NET"},{"content":"\rGroupDocs team is glad to announce another monthly release of document annotation API, where new file formats are introduced in supporting document format list and also new features are introduced . The latest GroupDocs.Annotation for .NET 17.6.0 API now provides support to annotate VSD and VSS Diagram file formats along with Improvements and Fixes. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.Annotation for .NET.\nGroupDocs.Annotation for .NET - New Features and ChangesThis monthly release is providing Support for Diagram Format with all major annotations types support like Arrow Annotation, Area Annotation, Text Field Annotation etc. also adding support for GetDocumentInfo methods proper handling. Major changes are listed below. For more details about supported documents formats to annotate , please visit this article. Implemented Polyline Annotation with Diagram documents Added Support for Arrow Annotation for Diagram documents Included Area Annotation for Diagrams Resource Redaction Annotation for Diagram format Text Field Annotation for Diagrams Document Annotation API - Improvements and FixesGroupDocs.Annotation for .NET 17.6.0 API including Three Improvements and One major fix. Add option to process CAD documents as PDF GetPages method for Email documents processing from stream Implemented proper error handling when user try to invoke GetDocumentInfo method for images documents Fix - Internal Exception in annotator.GetDocumentInfo() Method Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET FeedbackWe always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/annotate-vss-vsd-diagram-formats-using-groupdocs.annotation-.net-v17.6.0/","summary":"GroupDocs team is glad to announce another monthly release of document annotation API, where new file formats are introduced in supporting document format list and also new features are introduced . The latest GroupDocs.Annotation for .NET 17.6.0 API now provides support to annotate VSD and VSS Diagram file formats along with Improvements and Fixes. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.","title":"Annotate VSS and VSD Diagram formats using GroupDocs.Annotation for .NET v17.6.0"},{"content":"\rGroupDocs team keeps on updating sample front end application for better user experience. In this regard, we are releasing version v1.1 for GroupDocs.Viewer for .NET Modern WebForm UI.Our aim is to provide same features in all of our modern front ends, so that customer\u0026rsquo;s across different platforms can enjoy similar features. We have introduced a bunch of new features in this new version. We would recommend you to download this release and provide your valuable feedback.\nGroupDocs.Viewer for .NET WebForm Modern UI v1.1 includes following improvements.\nView email attachmentsUser can now view email attachments in WebForm Modern UI by simply loading .msg file via file browser. The application will automatically detect and render attachments. View email attachment\u0026rsquo;s thumbnailsUser can also view email attachment\u0026rsquo;s thumbnails by simply clicking thumbnails button. The application will automatically detect and display thumbnails for attachments. Load document via URLIn this new release user can now load document by inserting document\u0026rsquo;s URL in app.js. Following is the code for loading document via URL. ngApp.constant('FilePath','https://www.w3.org/2011/web-apps-ws/papers/Nitobi.pdf'); Load default documentIn this new release user can now load default document by inserting document\u0026rsquo;s name in app.js. Following is the code for loading document via URL. ngApp.constant('FilePath','Candy.pdf'); Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/new-release-groupdocs.viewer-.net-modern-webform-ui/","summary":"GroupDocs team keeps on updating sample front end application for better user experience. In this regard, we are releasing version v1.1 for GroupDocs.Viewer for .NET Modern WebForm UI.Our aim is to provide same features in all of our modern front ends, so that customer\u0026rsquo;s across different platforms can enjoy similar features. We have introduced a bunch of new features in this new version. We would recommend you to download this release and provide your valuable feedback.","title":"New release for GroupDocs.Viewer for .NET Modern WebForm UI"},{"content":"\rWe are pleased to announce the release of GroupDocs.Annotation for Java 17.5.0. This release comes with multitude of new features, improvements and bug fixes. Some new image formats are introduced such as EMF/WMF and CAD. Furthermore, importing annotations from Word documents is improved and exporting the repeated reply comments issue (Export to MS-Word) is resolved. For further information, please see release notes. We\u0026rsquo;d recommend you to fetch latest release of the API, integrate it in your project and share your valuable feedback.\nGroupDocs.Annotation for Java 17.1.0 - New Features Implement annotating for DICOM format images Add Metered licensing support Add annotations to Otp format Annotate DjVu formated files Add distance annotation for images EMF/WMF documents annotation is introduced CAD documents annotation is added Adding Arrow annotation to Image documents Process hyperlinks in tables for Words documents Processing tables and numbered lists in tables for Words documents Implement GetDocumentInfo from a stream Implement Html documents annotating Implement annotating Email format Import annotations in tables for Word Document Annotation API - Improvements Improve import annotations from Word documents Improve Annotating CAD files Refactor annotations export logic GroupDocs.Annotation for Java API - Bug Fixes Export to MS-Word exporting the repeated reply comments Fix issues with annotations detection in some special cases in Words documents Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Documentation Annotation API: Download - Zipped JARs Documentation - API Documentation Examples/Showcases - GitHub source code examples Product Support Forum - Technical Support Forum for GroupDocs.Annotation FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/introducing-groupdocs.annotation-java-17.5.0/","summary":"We are pleased to announce the release of GroupDocs.Annotation for Java 17.5.0. This release comes with multitude of new features, improvements and bug fixes. Some new image formats are introduced such as EMF/WMF and CAD. Furthermore, importing annotations from Word documents is improved and exporting the repeated reply comments issue (Export to MS-Word) is resolved. For further information, please see release notes. We\u0026rsquo;d recommend you to fetch latest release of the API, integrate it in your project and share your valuable feedback.","title":"Annotate Html Documents using GroupDocs.Annotation for Java 17.5.0"},{"content":"\rTeam GroupDocs is really excited to announce the monthly release of GroupDocs.Signature for .NET 17.06.0. The latest release comes up with a number of new features, improvements and a bug fix. Version 17.6 of GroupDocs.Signature for .NET introduces support for barcode and QR-code signatures. The latest API not just implements adding barcode and QR-code to the supported document formats but also allows verification of the documents signed with QR-code or barcode. Some improvements have also been made to the API by implementing positioning subsystem for water marks signatures and improving validation messages and showing detailed information in those messages. We suggest you to download this latest release and try out all the exciting features and enhancements introduced in this release.\nGroupDocs.Signature for .NET API - EnhancementsVersion 17.6.0 of GroupDocs.Signature for .NET API comes up with the following enhancements: Implementation of the positioning subsystem for watermarks signatures Improvement of validation messages with detailed information The e-Signature API - New FeaturesThe following new features have been introduced in version 17.6.0 of GroupDocs.Signature for .NET API: Implementation of QRCode Signature Verification for Word Documents Implementation of QRCode Signature Verification for Cell Documents Implementation of QRCode Signature Verification for Slide Documents Implementation of QRCode Signature Verification for Pdf Documents Implementation of Barcode Signature Verification for Word Documents Implementation of Barcode Signature Verification for Cell Documents Implementation of Barcode Signature Verification for Slide Documents Implementation of Barcode Signature Verification for Pdf Documents Implementation of QR-code Signature features for Word Documents Implementation of QR-code Signature features for Cell Documents Implementation of QR-code Signature features for Slide Documents Implementation of QR-code Signature features for Pdf Documents Implementation of Barcode Signature features for Word Documents Implementation of Barcode Signature features for Cell Documents Implementation of Barcode Signature features for Slide Documents Implementation of Barcode Signature features for Pdf Documents Implementation of Digital Signature for Open Document files format support For more information, please see the API features\nGroupDocs.Signature for .NET - Bug FixesFollowing bug has been fixed in the latest release of the API: Error occurred when passing Digital PFX Certificate file rendered by DSA Algorithm E-Signing API : Available Channels and ResourcesHere are a few channels and resources for you to learn, try and get technical support on Document Signing API for .NET: Download - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/signature/groupdocs.signature-.net-17.6.0-introduces-support-barcode-signature/","summary":"Team GroupDocs is really excited to announce the monthly release of GroupDocs.Signature for .NET 17.06.0. The latest release comes up with a number of new features, improvements and a bug fix. Version 17.6 of GroupDocs.Signature for .NET introduces support for barcode and QR-code signatures. The latest API not just implements adding barcode and QR-code to the supported document formats but also allows verification of the documents signed with QR-code or barcode.","title":"GroupDocs.Signature for .NET 17.6.0 now Supports Barcode Signature"},{"content":"\rToday, we are pleased to announce the release of version 17.7.0 of GroupDocs.Watermark for .NET API. GroupDocs.Watermark for .NET 17.7.0 came up with the support of searching watermarks with a particular text formatting. It also enables you to work with hyperlinks associated with different document entities. Continue to read more about the salient features of this brand new release.\nSearch Watermarks by Text Formatting (font, color etc.) GroupDocs.Watermark for .NET 17.7.0 enables you to search watermarks on the basis of some particular text formatting. You can provide a search criterion containing font name, size, color etc. and the API will find the watermarks with matching properties. Following are the examples of searching watermarks with a particular text formatting in different document formats.\nSearch possible watermarks with a particular text formatting (regardless of document type) Search and remove text shapes with a particular text formatting in Word documents Search and remove text shapes with a particular text formatting Excel documents Search and remove text shapes with a particular text formatting PowerPoint documents Search and remove text shapes with a particular text formatting in Visio documents Search and remove all XObjects containing text with a particular formatting from PDF documents Search and remove all artifacts containing text with a particular formatting from PDF documents Search and remove all annotations containing text with a particular formatting from PDF documents For more details on the supported feature, please visit the article: GroupDocs.Watermark Features\nWorking with Hyperlinks Associated with Document Entities {#GroupDocs.Watermarkfor.NET17.7.0ReleaseNotes-Abilitytoworkwithhyperlinksassociatedwithdocumententities(allformats)} Using GroupDocs.Watermark for .NET 17.7.0, you can also search and remove hyperlinks in a document of any supported format. Following code examples show how to work with hyperlinks in the different document formats.\nRemove hyperlinks with a particular URL from a document of any supported type Remove/replace hyperlink associated with a particular shape or chart inside a PowerPoint document Remove/replace hyperlink associated with a particular shape or chart inside an Excel document Remove/replace hyperlink associated with a particular shape inside a Word document Remove hyperlinks associated with a particular shape inside a Visio document Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Watermark:\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples - Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Watermark Feedback As always, if you have any questions or suggestions, feel free to write on our forum.\n","permalink":"https://blog.groupdocs.com/watermark/search-watermark-by-text-formatting-groupdocs.watermark-for-.net-17.7.0/","summary":"Today, we are pleased to announce the release of version 17.7.0 of GroupDocs.Watermark for .NET API. GroupDocs.Watermark for .NET 17.7.0 came up with the support of searching watermarks with a particular text formatting. It also enables you to work with hyperlinks associated with different document entities. Continue to read more about the salient features of this brand new release.\nSearch Watermarks by Text Formatting (font, color etc.) GroupDocs.Watermark for .","title":"Search Watermark by Text Formatting using GroupDocs.Watermark for .NET 17.7.0"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Signature for Java 17.5.0. This release covers many new features and some improvements. API permits users to obtain document information. Furthermore, users can Optimize Words Signature Implementation for Text and Image types. We would recommend you to download the new release and evaluate the exciting features to enhance document signature experience.\nGroupDocs.Signature for Java 17.5.0 - Features Check Text Signature located into Form Fields of PDF Documents Verify Text Signature located into Form Fields of Words Documents Implement ability to obtain Document Information over Signature Handler Apply Watermark feature for Text Signature of PDF/Slides/Words/Cells Documents Ability to specify new Measure Units Millimeters for Slides and Words Signatures Specify new Measure Units Millimeters for Pdf Signatures Put Text Signature into Template/Form Fields of Pdf Documents Add Text Signature into Form Fields of Words Documents e-Signing API - Improvements Implement Document information features into non static method of Signature Handler Optimize Words Signature Implementation for Text and Image types Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Document Signing API for Java: Download – JAR Files Documentation – API Docs Product Support Forum – Technical Support Forum for GroupDocs.Signature Examples – GitHub source code examples FeedbackWe always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/signature/introducing-groupdocs.signature-java-17.5.0/","summary":"We are pleased to announce another monthly release of GroupDocs.Signature for Java 17.5.0. This release covers many new features and some improvements. API permits users to obtain document information. Furthermore, users can Optimize Words Signature Implementation for Text and Image types. We would recommend you to download the new release and evaluate the exciting features to enhance document signature experience.\nGroupDocs.Signature for Java 17.5.0 - Features Check Text Signature located into Form Fields of PDF Documents Verify Text Signature located into Form Fields of Words Documents Implement ability to obtain Document Information over Signature Handler Apply Watermark feature for Text Signature of PDF/Slides/Words/Cells Documents Ability to specify new Measure Units Millimeters for Slides and Words Signatures Specify new Measure Units Millimeters for Pdf Signatures Put Text Signature into Template/Form Fields of Pdf Documents Add Text Signature into Form Fields of Words Documents e-Signing API - Improvements Implement Document information features into non static method of Signature Handler Optimize Words Signature Implementation for Text and Image types Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Document Signing API for Java: Download – JAR Files Documentation – API Docs Product Support Forum – Technical Support Forum for GroupDocs.","title":"Specify Different Measurement Units using GroupDocs.Signature for Java 17.5.0"},{"content":"\rAt GroupDocs we are always keen to improve our sample front end applications. These applications help users understand how GroupDocs.Viewer for .NET API can be integrated with modern frameworks. We have introduced a bunch of new features in this new Modern UI version v1.1. We would recommend you to download this release and provide your valuable feedback.\nGroupDocs.Viewer for .NET MVC Modern UI - ImprovementsGroupDocs.Viewer for .NET MVC Modern UI v1.1 includes following improvements. Ability to view email attachments Ability to view thumbnails for email attachments Ability to load document from URL Ability to load default document Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/releasing-new-version-groupdocs.viewer-.net-mvc-modern-ui/","summary":"At GroupDocs we are always keen to improve our sample front end applications. These applications help users understand how GroupDocs.Viewer for .NET API can be integrated with modern frameworks. We have introduced a bunch of new features in this new Modern UI version v1.1. We would recommend you to download this release and provide your valuable feedback.\nGroupDocs.Viewer for .NET MVC Modern UI - ImprovementsGroupDocs.Viewer for .NET MVC Modern UI v1.","title":"Releasing new version for GroupDocs.Viewer for .NET MVC Modern UI"},{"content":"\rGroupDocs team is excited to publish another monthly release of GroupDocs.Comparison for .NET 17.6.0 API with new features like adding support for Emails format and Settings for Cloning Document Metadata. This monthly release is also adding improvements like enhanced Cells \u0026amp; HTML Comparison Performance and Improved Summary Pages information along with fixes. Major Changes are done for HTML, Cells, Emails and Words document formats. Detailed information is listed below. Please Click here to download the latest API.\nGroupDocs.Comparison for .NET 17.6.0 – Major ChangesThis monthly release of GroupDocs.Comparison for .NET 17.6.0 introducing four new features, like support of Check Box and Page in Change Info also adding new feature in Words format applying/discarding for category changes. In this monthly release some major improvements are also done like Defining Cells Coordinates for Components\u0026quot; and support of UpdateChanges for StyleChanged changes along with Three fixes. Here are some highlights: Comparison API for .NET v17.6.0 New Features Add support of setting for cloning document metadata Comparison support of Emails format Compare Check Box and Page in Change Info Add ability of Applying or Discarding for category of changes in Words format ImprovementsThese are the features that are improved in the latest version of the GroupDocs.Comparison API. Improve Summary Pages information about comparison results for all formats Comparison performance for Cells format Add support of UpdateChanges for StyleChanged changes in Words format Defining Cells coordinates for components Fix case with absolutely different paragraphs in words document format Improved HTML comparison performance Improved Cells comparison performance FixesThese are the bug fixes that are implemented in the latest version of the GroupDocs.Comparison for .NET v 17.6.0 API. Wrong style of table cells after reject or accept the changes for Cells After rejection of deleted SmartNode was lost content for Cells Incorrect table comparison with different styles for Words For more details about supported document formats, please visit Features Overview. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API: Downloads-MSI Package and Zipped DLLs Nuget Package -NuGet Installation Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples FeedbackYou are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. view the website ","permalink":"https://blog.groupdocs.com/comparison/groupdocs.comparison-.net-api-v17.6.0/","summary":"GroupDocs team is excited to publish another monthly release of GroupDocs.Comparison for .NET 17.6.0 API with new features like adding support for Emails format and Settings for Cloning Document Metadata. This monthly release is also adding improvements like enhanced Cells \u0026amp; HTML Comparison Performance and Improved Summary Pages information along with fixes. Major Changes are done for HTML, Cells, Emails and Words document formats. Detailed information is listed below. Please Click here to download the latest API.","title":"Support of Emails format and Cloning Document Metadata- Introduced in GroupDocs.Comparison for .NET API v17.6.0"},{"content":"\rIt gives us immense pleasure to announce the release of version 17.6.0 of GroupDocs.Viewer for .NET . This release comes up with the support of SVG file format. Furthermore, we have introduced 8 improvements and fixes in this regular monthly release. We recommend you to please upgrade to the latest version for a better experience.\nGroupDocs.Viewer for .NET 17.6.0 - New FeaturesFollowing is the new feature introduced in this version of the API. Support of SVG file format For more details, please visit API Features.\n.NET Document Viewer API - Improvements \u0026amp; FixesGroupDocs.Viewer for .NET 17.6.0 includes following improvements and important bug fixes. Improvement - Move the setting that enables text extraction to ImageOptions class Improvement - Replace backslashes in resource URL\u0026rsquo;s with forward slashes Improvement - Extend support of HtmlOptions.IsResourceEmbedded option for Presentation documents Improvement - Determine resource type based on resource name Improvement - Remove obsolete ViewerConfig properties and fields Improvement - Add code examples to WordsOptions class documentation comments Fix - Image export failed exception when passed CAD layout name does not exist. Fix - File is added to storage when GetDocumentInfo called for stream Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/render-svg-format-groupdocs.viewer-17.6.0/","summary":"It gives us immense pleasure to announce the release of version 17.6.0 of GroupDocs.Viewer for .NET . This release comes up with the support of SVG file format. Furthermore, we have introduced 8 improvements and fixes in this regular monthly release. We recommend you to please upgrade to the latest version for a better experience.\nGroupDocs.Viewer for .NET 17.6.0 - New FeaturesFollowing is the new feature introduced in this version of the API.","title":"Render SVG File Format using GroupDocs.Viewer for .NET 17.6.0"},{"content":"\rConsidering the extensibility of the API, team GroupDocs is pleased to announce another monthly release of GroupDocs.Signature for Java 17.4.0. This release comes with multitude of new features, improvements and bug fixes. Now, GroupDocs.Signature for Java developers can sign PDF documents with text signature as sticker. Furthermore, API permits developers to rotate Text or Image signature appearance. We would recommend you to download the new release and evaluate the exciting features to enhance document signature experience.\nGroupDocs.Signature for Java 17.4.0 - Features Integrate Dynabic.Metered features Implement Text Signature Size Adjustments for Slides Implement Text Signature Size Adjustments for Words Implement Text Signature Size Adjustments for Cells Implement Text Signature Size Adjustments for PDF Implement extended properties for Text Stamp Implementation signature of Pdf Documents Implement Text Signature Opacity for Words Documents Implement Text Signature Opacity for Slides Documents Implement verification for Pdf Text Sticker Annotation Signature Implement alternative Text Signature implementation as Sticker (TextAnnotation) for Pdf Documents Implement Image Signature free angle rotation for Slides Implement Image Signature free angle rotation for Words Implement Image Signature free angle rotation for Cells Implement Image Signature free angle rotation for PDF Implement Image Signature Size Adjustments for Cells Implement Image Signature rotation for Slides Implement Image Signature rotation for Cells Implement Image Signature rotation for Words Implement Image Signature rotation for PDF Implement Text Signature rotation for Slides Implement Text Signature rotation for Cells Implement Text Signature rotation for Words Implement Text Signature rotation for Pdf GroupDocs. Signature for Java 17.4.0 - Improvements Improve Digital Certificate Helper class to release disposable objects GroupDocs.Signature for Java 17.4.0 - Bug Fixes Multiple signature options for Words Documents are intersecting in same Word Node When processing Pdf document with Digital Signature in iterative mode document saved incorrectly Apply lower case for output file extension Fix background appearance of Text Annotation of Pdf Documents Pages Pdf Text Verification doesn\u0026rsquo;t get list of Annotations from Pdf Document Pdf internal resources do not work properly after using Text Sticker default appearance object Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Document Signing API for Java: Download – JAR Files Documentation – API Docs Product Support Forum – Technical Support Forum for GroupDocs.Signature Examples – GitHub source code examples FeedbackWe always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/signature/introducing-groupdocs.signature-for-java-17.4.0/","summary":"Considering the extensibility of the API, team GroupDocs is pleased to announce another monthly release of GroupDocs.Signature for Java 17.4.0. This release comes with multitude of new features, improvements and bug fixes. Now, GroupDocs.Signature for Java developers can sign PDF documents with text signature as sticker. Furthermore, API permits developers to rotate Text or Image signature appearance. We would recommend you to download the new release and evaluate the exciting features to enhance document signature experience.","title":"Sign PDF Documents with Text Signature using GroupDocs.Signature for Java 17.4.0"},{"content":"\rTeam GroupDocs is really pleased to announce the release of GroupDocs.Metadata for .NET version 17.6.0. Four new features and a bug fix are introduced in this regular monthly release of the API. The latest version of the API has focused mainly on adding features related to the image format. It now allows reading maker notes in JPEG images along with providing the ability to parse additional IFD tags like SByte, SShort, SRational and SLong in supported image formats. The API has also resolved an issue related to updating the IPTC metadata in a JPEG image. Apart from making improvements to metadata extraction in images, the API has also added a feature for video format and it now allows reading the XMP metadata of an AVI video file. We recommend our users to download the latest release and enjoy a better experience with the API through the features introduced in this version.\nGroupDocs.Metadata for .NET 17.6.0 - New FeaturesThe following new features have been introduced in version 17.6.0 of the API: Ability to read and write XMP metadata in AVI format Ability to read SONY maker notes in JPEG image Ability to read Nikon maker notes in JPEG image Ability to parse additional IFD tags like SByte, SShort, SRational and SLong For details about the features supported by the API, please visit Features Overview.\nGroupDocs.Metadata for .NET API - Bug FixesThe GroupDocs team is always working at its best to cater to the needs of its customers and to make sure that any bug if found must be fixed at utmost priority. In this regard we have fixed an issue related to updating IPTC metatdata of a JPEG image. The latest release now allows updating the IIM IPTC metadata without any issue. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Download - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata Feedback As always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/read-xmp-metadata-avi-videos-groupdocs.metadata-.net-17.6.0/","summary":"Team GroupDocs is really pleased to announce the release of GroupDocs.Metadata for .NET version 17.6.0. Four new features and a bug fix are introduced in this regular monthly release of the API. The latest version of the API has focused mainly on adding features related to the image format. It now allows reading maker notes in JPEG images along with providing the ability to parse additional IFD tags like SByte, SShort, SRational and SLong in supported image formats.","title":"Read XMP Metadata in AVI Videos With GroupDocs.Metadata for .NET 17.6.0"},{"content":"\rWe have always been improving our APIs to meet the requirements of our customers. Therefore, today, we are announcing another monthly release of GroupDocs.Comparison for Java 17.3.0. API comes with multitude of new features like support for Images, metered licensing and many more. Aside this, many improvements and bug fixes are introduced in this release. We would recommend you to download the new release and evaluate the exciting features to enhance document comparison experience.\nGroupDocs.Comparison for Java 17.3.0 - Features Add support for Shapes Add support of styles to text watermarks Add support for Apply/Discard changes Add support for Watermarks Add support for Hyperlinks Add support for Comments Add support for Text Box Add support of Apply/Discard changes Add support for Shapes Integrate Metered licensing Add support of comparing Text Font in Watermarks Add support for Formulas Add support for Images Add support for Chart Add support for Smart Art Add support for VBA Controls Add support of mobi format Add ability of comparing DICOM documents by Comparison.Imaging Apply/Discard changes for DICOM format Add summary page to images streams GroupDocs.Comparison for Java 17.3.0 - Improvements Improve aligning of slides for more precise changes detection Remove Text Artifacts from documents before Paragraph absorbation Improve set coordinates for components Improve set HorizontalAlignment Add borders for deleted and inserted cells and Range of cells Fix problem when moving modified table into new page and not deleting previous version of added table Improve Trim paragraphs by pages after some change in absorbing paragraphs Improve comparison changes detection for Paragraphs Improve comparison quality for images in header, footer, setting coordinates for components and paragraphs by pages Add support of Imaging DjVu Improve comparison changes detection for Paragraphs Implement the process absorbing of tables with merged cells Improved public API Add ability for comparison of result and original files in Imaging.Tests Add localize exceptions for wrong passwords while opening documents in Cells, Words, Slides and PDF GroupDocs.Comparison for Java 17.3.0 - Bug Fixes Compile Error on Comparison Document for VB.NET Exception: The newChild was created from a different document than the one that created this node. Set type change for paragraph runs after page break Fix cells appearance after critical update for Aligner comparer and Document builder Fix bug when some lines are deleted or inserted where should not be Fix bug when first line of paragraph don\u0026rsquo;t have indent but should have Fix bug when component change its page but dont change its position but should be Fix bug when first line of paragraph use as not paragraph line Fix bug when text from tables use twice with simple paragraphs PDF files with tables and footer lines generating unexpected output Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison: Product Home – GroupDocs.Comparison for Java Documentation – Product Documentations Product Support Forum – Technical Support Forum for GroupDocs.Comparison Examples/Plugins/Showcases – Github source code examples FeedbackWe always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/introducing-groupdocs.comparison-java-api-v17.3.0/","summary":"We have always been improving our APIs to meet the requirements of our customers. Therefore, today, we are announcing another monthly release of GroupDocs.Comparison for Java 17.3.0. API comes with multitude of new features like support for Images, metered licensing and many more. Aside this, many improvements and bug fixes are introduced in this release. We would recommend you to download the new release and evaluate the exciting features to enhance document comparison experience.","title":"Introducing Support for Images in GroupDocs.Comparison for Java v17.3.0"},{"content":"\rGroupDocs team always takes care of customers. Our customers provide us with their valuable feedback which help us improve day by day, keeping it in mind, we are proudly announcing version v1.2 of **GroupDocs.Viewer for .NET**MVC Front End. This new front end includes improvements and fixes for a bunch of issues reported by our customers. Please feel free to download and investigate this new version.\nGroupDocs.Viewer for .NET MVC Front End - ImprovementsFollowing are the improvents introduced in this version of the Front End Search and highlight a text passed from main page while loading the document. Implementation of Initial Zoom Option using JavaScript Parameter GroupDocs.Viewer for .NET MVC Front End - FixesGroupDocs.Viewer for .NET MVC Front End v1.2 includes following bug fixes. Incorrect Rendering of .msg File Dragging Issue when Selecting Text Inside the Viewer Error when Loading .msg File Thumbnails of Email Attachments are not Visible Unable to view the documents containing \u0026lsquo;\u0026amp;\u0026rsquo; in their file name Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/improvements-fixes-groupdocs.viewer-for-.net-mvc-front-end-v1.2/","summary":"GroupDocs team always takes care of customers. Our customers provide us with their valuable feedback which help us improve day by day, keeping it in mind, we are proudly announcing version v1.2 of **GroupDocs.Viewer for .NET**MVC Front End. This new front end includes improvements and fixes for a bunch of issues reported by our customers. Please feel free to download and investigate this new version.\nGroupDocs.Viewer for .NET MVC Front End - ImprovementsFollowing are the improvents introduced in this version of the Front End Search and highlight a text passed from main page while loading the document.","title":"Improvements and Fixes in GroupDocs.Viewer for .NET MVC Front End v1.2"},{"content":"\rGroupDocs team is glad to announce another release of GroupDocs.Conversion for .NET v17.5.0 API. In this monthly release new file formats like XML-FO/ XSL , VSDM, VSSM, VSTM and LATEX support introduced along with new feature \u0026ldquo;Option to set Zoom when Converting to HTML and Improved Memory Usage\u0026rdquo; . This release is also including major fixes and improvements. We recommend our users to download the new release and use the new exciting features to enhance their application.\nGroupDocs.Conversion for .NET API 17.5.0This release of GroupDocs.Conversion for .NET 17.5.0 Implemented Conversion from XML-FO/XSL file formats, Option to set Zoom HTML file Conversion also adding support for different document formats conversion. Here is the list of changes made in new release. Features Implemented support for conversion from XML-FO/XSL to PDF Option to set zoom when converting to HTML Conversion Support for VSDM, VSSM, VSTM file format Implement conversion from LATEX formatL Slide zoom level property for PPTX to HTML file format Improvements and Fixes Improved Slides To Html Saver Improvement - Speed when converting from cells Memory Usage is Improved Remove empty rows and columns before saving document in Cells to Image Conversion Remove empty rows and columns before saving document in Cells to PDF Conversion Tables borders are showing grid-line - property is not working in PPTX to PDF Conversion- Fixed How to set Zoom when Converting Slides to HTML Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - Github source code examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/conversion-support-xml-fo-xsl-vsdm-vssm-vstm-latex-file-format-introduced-groupdocs.conversion-.net-v17.5.0/","summary":"GroupDocs team is glad to announce another release of GroupDocs.Conversion for .NET v17.5.0 API. In this monthly release new file formats like XML-FO/ XSL , VSDM, VSSM, VSTM and LATEX support introduced along with new feature \u0026ldquo;Option to set Zoom when Converting to HTML and Improved Memory Usage\u0026rdquo; . This release is also including major fixes and improvements. We recommend our users to download the new release and use the new exciting features to enhance their application.","title":"Convert  XML-FO, XSL, VSDM, VSSM, VSTM and LATEX file formats using in GroupDocs.Conversion for .NET v17.5.0"},{"content":"\rWe are pleased to announce a new release of GroupDocs.Annotation for Java Servlets Based Front End V2.0.0. This release comes with number of new features, customers reported bug fixes and improvements. It incorporates Java servlets at back-end and angularJS/Paper.js at front that allows it’s users to draw annotations more fluently. We\u0026rsquo;d recommend you to download and explore the latest release of front end, learn how new annotation tools are working and how you can implement them in your own application. We\u0026rsquo;d like to hear your experience.\nGroupDocs.Annotation for Java Front End - Features Pencil tool Point tool Tools moved to left side Selection of annotation Move and drag annotation Comments and replies of selected annotation are displayed in right sidebar Edit and save annotation comment Post Reply to comment Edit and save reply Document Annotation Tool - Fixes Selection issues resolved Fixed positioning of annotations when app is reloaded Removed unnecessary buttons Servlets Based Front End - Improvements Rewritten most of code with a new approach. Neat and clean code for better understanding Now using HTML Canvas for rendering document pages Implemented missing features Servlets Based Showcase - UI View\rAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Document Annotation API for Java: Download – JAR Files Documentation – API Docs Product Support Forum – Technical Support Forum for GroupDocs.Signature Examples – Examples/Plugins/Showcases FeedbackWe always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/edit-save-replies-using-groupdocs.annotation-java-front-end-v2.0.0/","summary":"We are pleased to announce a new release of GroupDocs.Annotation for Java Servlets Based Front End V2.0.0. This release comes with number of new features, customers reported bug fixes and improvements. It incorporates Java servlets at back-end and angularJS/Paper.js at front that allows it’s users to draw annotations more fluently. We\u0026rsquo;d recommend you to download and explore the latest release of front end, learn how new annotation tools are working and how you can implement them in your own application.","title":"Edit and Save Replies using GroupDocs.Annotation for Java Front End V2.0.0"},{"content":"\rWe are really pleased to announce another regular monthly release of GroupDocs.Search for .NET 17.06.0 API. We have introduced two new features along with a couple of enhancements in this release. The latest version comes up with some improvements to the API\u0026rsquo;s performance and implements optimization of search functionality and spelling corrector functionality. As far as new features are concerned, the API has implemented dictionary of letters in this release. Last but not the least; the latest version comes up with the integration of Dynabic.Metered account for the API. We suggest you to download the latest version of the API and check out all the features and enhancements introduced in this release.\nGroupDocs.Search for .NET - New FeaturesGroupDocs.Search for .NET 17.06.0 introduces the following new features in this release: Implementation of dictionary of letters Integration of Dynabic.Metered to GroupDocs.Search for .NET API For further details, please visit Features Overview.\nThe Search Engine API - EnhancementsThe latest release of the API comes up with the following enhancements: Optimization of search functionality Optimization of the spelling corrector Available Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search: Download - MSI Package Zipped DLLs Download - DLLs NuGet - NuGet Install Documentation - API docs Examples/Plugins/Showcases - Source Code Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search FeedbackIf you have any suggestions, questions, or queries related to GroupDocs.Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts. ","permalink":"https://blog.groupdocs.com/search/groupdocs.search-.net-17.06.0-implements-dictionary-letters/","summary":"We are really pleased to announce another regular monthly release of GroupDocs.Search for .NET 17.06.0 API. We have introduced two new features along with a couple of enhancements in this release. The latest version comes up with some improvements to the API\u0026rsquo;s performance and implements optimization of search functionality and spelling corrector functionality. As far as new features are concerned, the API has implemented dictionary of letters in this release.","title":"GroupDocs.Search for .NET 17.06.0 Implements Dictionary of Letters"},{"content":"\rWe are glad to announce another monthly release of GroupDocs.Comparison for .NET 17.5.0 API with Three new features like adding Strikeout option for deleted/style change in words format, also adding support for PNG, JPG and BMP file formats.This monthly release is adding Six improvements like “Improve comparison of Text \u0026amp; Imaging formats” and ” Add styles change detection for Comparison.Imaging (height, width)” along with fixes. Detailed information is listed below. Please Click here to download the latest API.\nGroupDocs.Comparison for .NET 17.5.0 – Major Changes This monthly release of GroupDocs.Comparison for .NET 17.5.0 introducing new features and improvements, like “Strikeout option words document format” along with improvements like “Add styles change detection for Comparison.Imaging” and fixes. Here are some highlights:\nComparison API for .NET 17.5.0 – New Features Add support for JPG, BMP and PNG formats Add comparison of page context before building of the object model – PDF format Improvements and Fixes These are the features that are improved in the latest version of the GroupDocs.Comparison API.\nStrikeout option for deleted/changed text in words comparison Improved Image comparison performance Improved Text comparison performance Fix the support of new settings for PDF Fix case with absolutely different paragraphs in words document format Add styles change detection for Comparison.Imaging (height, width) Adding support for Missing Properties for ChangeInfo – Fix For more details about supported document formats, please visit Features Overview. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API:\nDownloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples Feedback You are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\nview the website\n","permalink":"https://blog.groupdocs.com/comparison/strikeout-option-png-bmp-formats-introduced-groupdocs.comparison-.net-api-v17.5.0/","summary":"We are glad to announce another monthly release of GroupDocs.Comparison for .NET 17.5.0 API with Three new features like adding Strikeout option for deleted/style change in words format, also adding support for PNG, JPG and BMP file formats.This monthly release is adding Six improvements like “Improve comparison of Text \u0026amp; Imaging formats” and ” Add styles change detection for Comparison.Imaging (height, width)” along with fixes. Detailed information is listed below.","title":"Strikeout Option and PNG, BMP Formats - introduced in GroupDocs.Comparison for .NET API v17.5.0"},{"content":"\rWe are excited to release another version of GroupDocs.Watermark for .NET API with new features and enhancements. GroupDocs.Watemark for .NET 17.6.0 supports setting the background image for charts in Excel and PowerPoint documents. It also allows you to add watermark to a specific page of the Word document. Continue to read more about the new features and enhancements.\nGroupDocs.Watermark - New Features and EnhancementsFollowing are the new features and enhancements added in GroupDocs.Watermark for .NET 17.6.0. Setting background image for a chart in Excel document Setting background image for a chart in PowerPoint document Adding watermark to a particular page of a Word document Additional options for slide background image in PowerPoint document For more details on the supported feature, please visit the article: GroupDocs.Watermark Features\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Watermark: Download - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples - Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Watermark FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/watermark/set-background-for-charts-groupdocs.watermark-.net/","summary":"We are excited to release another version of GroupDocs.Watermark for .NET API with new features and enhancements. GroupDocs.Watemark for .NET 17.6.0 supports setting the background image for charts in Excel and PowerPoint documents. It also allows you to add watermark to a specific page of the Word document. Continue to read more about the new features and enhancements.\nGroupDocs.Watermark - New Features and EnhancementsFollowing are the new features and enhancements added in GroupDocs.","title":"Set Background Image for Charts using GroupDocs.Watermark for .NET 17.6.0"},{"content":"\rGroupDocs team is happy to release another document annotation API version, where new file formats are introduced in supporting document format list and also new features are introduced . The latest GroupDocs.Annotation for .NET 17.5.0 API now provides support to annotate HTML and Email file formats along with Improvements and Fixes. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.Annotation for .NET.\nGroupDocs.Annotation for .NET - New Features and ChangesThis monthly release is providing four new features like annotation support for HTML and Email document formats also adding support for Get Document Info from a stream and one improvements in exporting Annotation. Major changes are lists are given below. For more details about supported documents formats to annotate , please visit this article. Support for Html documents annotation Implemented annotation support for Email format Import annotations in tables for Word Improvement - Refactor Annotations export logic Fix- issues with annotations detection in some special cases in Words documents Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET FeedbackWe always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/annotate-html-email-file-format-using-groupdocs.annotation-.net-v17.5.0/","summary":"GroupDocs team is happy to release another document annotation API version, where new file formats are introduced in supporting document format list and also new features are introduced . The latest GroupDocs.Annotation for .NET 17.5.0 API now provides support to annotate HTML and Email file formats along with Improvements and Fixes. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.","title":"Annotate HTML and Email file format using GroupDocs.Annotation for .NET v17.5.0"},{"content":"\rTeam GroupDocs is pleased to announce the monthly release of version 17.06.0 of the GroupDocs.Text for .NET API. This version comes up with a couple of new features along with an enhancement. The text extraction API now allows extracting formatted highlights from supported documents. The ability to extract formatted text from FB2 files has also been added to this version. We recommend you to download the latest version and check out all the enhancements and features introduced in this release.\nGroupDocs.Text For .NET- New Features GroupDocs.Text for .NET introduces the following new features in this release:\nAbility to extract formatted highlights from supported document formats Ability to extract a formatted text from FictionBook (fb2) documents More information about the API and its features can be found here.\nText Extraction API- Enhancements In version 17.6.0 of the GroupDocs.Text for .NET API, an obsolete property named \u0026ldquo;IsRawMode\u0026rdquo; has been removed from PdfTextExtractor, CellsTextExtractor and SlidesTextExtractor classes.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Text:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples - Github Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Text Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/parser/extract-formatted-highlights-using-groupdocs.text-.net-17.6.0/","summary":"Team GroupDocs is pleased to announce the monthly release of version 17.06.0 of the GroupDocs.Text for .NET API. This version comes up with a couple of new features along with an enhancement. The text extraction API now allows extracting formatted highlights from supported documents. The ability to extract formatted text from FB2 files has also been added to this version. We recommend you to download the latest version and check out all the enhancements and features introduced in this release.","title":"Extract Formatted Highlights Using GroupDocs.Text for .NET 17.6.0"},{"content":"\rTeam GroupDocs is delighted to announce the regular monthly release of GroupDocs.Signature for .NET version 17.05.0. The latest release comes up with a couple of enhancements along with a number of new features. The API has not only implemented the ability to put text signature in form fields of a document but it also provides its users with the functionality to verify those signatures. GroupDocs.Signature for .NET 17.5.0 also allows signing text signature on a document as watermark. For better performance, the API has removed some obsolete methods in this release beside optimizing the signature implementation for text and image types. Simply download this latest release and try out all the exciting features and enhancements introduced in this release.\nThe e-Signature API - EnhancementsVersion 17.5.0 of the e-signing API comes up with the following improvements: Implement Document information features into non static method of Signature Handler Optimize Words Signature Implementation for Text and Image types GroupDocs.Signature for .NET API - New FeaturesThe following new features have been introduced in version 17.5.0 of GroupDocs.Signature for .NET API: Implement ability to put text signature into form fields of Words documents Implement ability to put text signature into template/form fields of PDF documents Implement ability to specify new measure units for PDF Signatures Implement ability to specify new measure units for Slides Signatures Implement ability to specify new measure units for Words Signatures Implement watermark feature for text signature of Cells documents Implement watermark feature for text signature of PDF documents Implement watermark feature for text signature of Slides documents Implement watermark feature for text signature of Words documents Implement ability to obtain document information over Signature Handler Implement ability to verify text signature located into Form Fields of PDF Documents Implement ability to verify text signature located into form fields of Words documents E-Signing API : Available Channels and ResourcesHere are a few channels and resources for you to learn, try and get technical support on Document Signing API for .NET: Download - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/signature/groupdocs.signature-.net-17.5.0/","summary":"Team GroupDocs is delighted to announce the regular monthly release of GroupDocs.Signature for .NET version 17.05.0. The latest release comes up with a couple of enhancements along with a number of new features. The API has not only implemented the ability to put text signature in form fields of a document but it also provides its users with the functionality to verify those signatures. GroupDocs.Signature for .NET 17.5.0 also allows signing text signature on a document as watermark.","title":"Put Text Signature into Form Fields Using GroupDocs.Signature for .NET 17.5.0"},{"content":"\rTeam GroupDocs is excited to announce another monthly release of GroupDocs.Conversion for Java 17.3.0. API comes with multitude of new features such as metered licensing, count document pages, conversion to gray-scale image and many more. Aside this, many improvements, bug fixes and some new document formats are introduced in this release. We would recommend you to download the new release and evaluate the exciting features to enhance document conversion experience.\nDocument Conversion API for Java - Features Metered licensing Count document pages Get possible conversions Implement conversion to XPS Implement conversion to SVG Implement conversions of OTP Implement conversions to specific PDF Implement conversion to Grayscale image Implement conversion from/to WebP Implement conversions from ONE Implement conversions from OTS Implement conversions from EMF Implement conversions from DNG Implement conversions from DGN Implement conversions from DjVu Implement conversions from Mobi Implement conversions from WMF Implement conversions from PDF-A Implement conversions from DICOM Implement conversions from VSSX and VSTX Hide comments when converting from word Reduce memory usage GroupDocs Document Conversion API - Improvements Improve performance of Word to Pdf and Word to Epub conversions Improve progress reporting Improve memory handling on save Improve output file name if converting from/to page Improve memory handling in documents Improvement in conversion from HTML to PDF GroupDocs.Conversion for Java 17.3.0 - Bug Fixes Use LZW compression for internal tiff compression Missing \u0026ldquo;Fixedlayout\u0026rdquo; Property while Updating VB Example File name contains extra symbols Converting to image with set DPI options without setting image width and height is producing invalid image HideWordTrackedChanges set to \u0026rsquo;true\u0026rsquo; but still its showing track changes and markup Exception when loading EPUB in multithread Exception when converting DWG to PNG in multithread Exception is thrown when resizing specific Pdf file Convert to HTML from PDF - Words in Bold Letters are not properly displayed Pdf to Html conversion formatting issue Wrong characters when saving in HTML Multipage Tiff is not converted properly to Pdf Page mode conversions do not work HideWordTrackedChanges not respected when converting from word Dpi resolution not respected when converting Cells to Image When converting a Cell to Pdf, the sheet is split into multiple pdf pages System.ArgumentOutOfRange Exception when adding shape to slide and saving Converting TXT to any format with limiting pages produces wrong output Exception when trying to access SaveOptions.ConvertFileType .tif to .png conversion is not as expected Memory leak when converting CAD stream to image % symbol in the file name throws an exception Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion: API Home - GroupDocs.Conversion for Java Download - GroupDocs.Conversion for Java Download Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Product Support Forum - Technical Support Forum for GroupDocs.Conversion ","permalink":"https://blog.groupdocs.com/conversion/convert-xps-svg-webp-formats-groupdocs.conversion-java-17.3.0/","summary":"Team GroupDocs is excited to announce another monthly release of GroupDocs.Conversion for Java 17.3.0. API comes with multitude of new features such as metered licensing, count document pages, conversion to gray-scale image and many more. Aside this, many improvements, bug fixes and some new document formats are introduced in this release. We would recommend you to download the new release and evaluate the exciting features to enhance document conversion experience.","title":"Convert to XPS, SVG and WebP formats with GroupDocs.Conversion for Java 17.3.0"},{"content":"\rGroupDocs team is glad to announce another monthly release where Improved Performance and new features are introduced . The latest GroupDocs.Annotation for .NET 17.4.0 API now provides support to process Hyperlink and Number List in words document format along with Improvements and Fixes. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.Annotation for .NET.\nGroupDocs.Annotation for .NET - New Features and ChangesThis monthly release is providing three new features like processing of \u0026ldquo;Tables and hyperlink\u0026rdquo; in words document format and two improvements in Annotating \u0026ldquo;Words and CAD file formats\u0026rdquo;. Major changes are lists are given below. For more details about supported documents formats to annotate , please visit this article. Process hyperlinks in tables for Words documents Support for Processing of numbered lists in tables for Words documents Processing tables in Word document format Improvement in Annotating CAD files Improvement in import annotations from Word documents Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET FeedbackWe always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/hyperlinks-numbered-lists-support-introduced-groupdocs.annotation-.net-v17.4.0/","summary":"GroupDocs team is glad to announce another monthly release where Improved Performance and new features are introduced . The latest GroupDocs.Annotation for .NET 17.4.0 API now provides support to process Hyperlink and Number List in words document format along with Improvements and Fixes. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.Annotation for .NET.\nGroupDocs.Annotation for .NET - New Features and ChangesThis monthly release is providing three new features like processing of \u0026ldquo;Tables and hyperlink\u0026rdquo; in words document format and two improvements in Annotating \u0026ldquo;Words and CAD file formats\u0026rdquo;.","title":"Process Hyperlinks and Numbered Lists in Words format- Introduced in GroupDocs.Annotation for .NET v17.4.0"},{"content":"\rWe are really delighted to announce the release of version 17.5.0 of the GroupDocs.Assembly for .NET API. This release comes with some very exciting features to enhance the usability of the API. The API permits its users to set the background color of some text dynamically. It also allows using variables in template documents. We recommend you to download the latest release and check out all the features introduced in this version of the API.\nGroupDocs.Assembly for .NET 17.5.0 - FeaturesFollowing features are introduced in the latest release: Add ability to define and use variables in template documents Add ability to set text background color dynamically Add ability not to grow the size of an image container while fitting it for the size of an image For a complete list of features supported by the API, read the API features here.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly: Download - MSI Package as well as Zipped DLLs NuGet - Nuget Installation Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly FeedbackWe observe your feedback carefully, please share your feedback about this Document Generation API. We will be happy to know your thoughts and we will try to enhance your experience with the API. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/assembly/groupdocs.assembly-.net-17.5/","summary":"We are really delighted to announce the release of version 17.5.0 of the GroupDocs.Assembly for .NET API. This release comes with some very exciting features to enhance the usability of the API. The API permits its users to set the background color of some text dynamically. It also allows using variables in template documents. We recommend you to download the latest release and check out all the features introduced in this version of the API.","title":"Set Text Background Color Dynamically Using GroupDocs.Assembly for .NET 17.5.0"},{"content":"\rToday, we are excited to announce version 17.5.0 of GroupDocs.Viewer for .NET API. This brand new release came up with 20 important bug fixes and key improvements. It also supports rendering of comments in Word and Spreadsheet documents. Furthermore, we have introduced settings to adjust quality and size when rendering documents as PDF. We recommend you to please upgrade to the latest version to get improved results.\nGroupDocs.Viewer for .NET 17.5.0 - New FeaturesFollowing are the new features introduced in this version of the API. Show/hide comments when rendering Words (Text documents) and Cells (Spreadsheet documents) documents JpegQuality settings to adjust quality and size when rendering document as PDF For more details, please visit API Features.\n.NET Document Viewer API - Improvements \u0026amp; FixesGroupDocs.Viewer for .NET 17.5.0 includes following improvements and important bug fixes. Improvement - Create lower-case name when rendering document from stream Improvement - Throw GroupDocsViewerException when file type can\u0026rsquo;t be determined for passed stream Improvement - Extend support for setting JpegQuality when rendering documents as pdf Improvement - Improve look of comments in API reference documentation Improvement - Do not set resource prefix when HtmlResourcePrefix is empty string Improvement - Add code examples to EmailOptions class documentation comments Improvement - Add code examples to DiagramOptions class documentation comments Improvement - Remove obsolete CountPagesToConvert and PageNumbersToConvert RenderOptions properties Fix - Text selection flickers in converted HTML Fix - Viewer creates temp folder when caching is disabled Fix - Comments in Word document are not rendered in output HTML/image Fix - File data file updated on each GetDocumentInfo call Fix - Content of Excel document is jumbled up when rendering into HTML Fix - Inline styles are used when styles are set to be saved separately Fix - API is rendering PDF document into blank HTML pages Fix - Incomplete image when converting specific dwg Fix - Save method requires System.Web reference Fix - 3D effect of the text in a shape is lost while converting spreadsheet to HTML Fix - Incorrect font color in rendering Excel to Html Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/show-comments-rendering-word-spreadsheet-documents-using-groupdocs.viewer-.net-17.5.0/","summary":"Today, we are excited to announce version 17.5.0 of GroupDocs.Viewer for .NET API. This brand new release came up with 20 important bug fixes and key improvements. It also supports rendering of comments in Word and Spreadsheet documents. Furthermore, we have introduced settings to adjust quality and size when rendering documents as PDF. We recommend you to please upgrade to the latest version to get improved results.\nGroupDocs.Viewer for .","title":"Show/Hide Comments when Rendering Word and Spreadsheet Documents using GroupDocs.Viewer for .NET 17.5.0"},{"content":"\rWe are glad to announce another release of GroupDocs.Conversion for .NET v17.4.0. In this monthly release new feature \u0026ldquo;Extended Document Information and Improved Performance\u0026rdquo; introduced, along with major fixes and improvements. We recommend our users to download the new release and use the new exciting features to enhance their application.\nGroupDocs.Conversion for .NET API 17.4.0This release of GroupDocs.Conversion for .NET 17.4.0 Implemented Metadata support for different supported document formats. Here is the list of changes made in new release. Features Implement method for getting extended document information Improvements and Fixes Convert Html to Cells improvements Convert Cad to Html improvements Convert Note to Html improvements Convert Slides to Html improvements Convert Tasks to Html improvements Convert Words to Html improvements with UsePdf=true option set Improved handling of extension-less urls Failed to validate PDF_X_3 and PDF_X_1A - Fix Converting Image to Html with UsePdf=true always use direct conversion instead converting through Pdf - Fix Loading Latex document from stream requires FileStream - Fix How to Get Source Document Metadata Information Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - Github source code examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/extended-document-information-introduced-groupdocs.conversion-.net-v17.4.0/","summary":"We are glad to announce another release of GroupDocs.Conversion for .NET v17.4.0. In this monthly release new feature \u0026ldquo;Extended Document Information and Improved Performance\u0026rdquo; introduced, along with major fixes and improvements. We recommend our users to download the new release and use the new exciting features to enhance their application.\nGroupDocs.Conversion for .NET API 17.4.0This release of GroupDocs.Conversion for .NET 17.4.0 Implemented Metadata support for different supported document formats. Here is the list of changes made in new release.","title":"Extended Document Information Support - Introduced in GroupDocs.Conversion for .NET v17.4.0"},{"content":"\rTeam GroupDocs is really excited to announce the monthly release of GroupDocs.Search for .NET 17.5.0 API. We have introduced a number of new features and enhancements in this release. The most notable improvement made to the API in this release is the support for some new formats like epub, OneNote, OpenDocument presentation format etc. For a better user experience the API has implemented optimization of simple and fuzzy search along with optimizing the index data on hard disk. We strongly recommend you to download the latest API and check out all the features and enhancements introduced in this release.\nGroupDocs.Search for .NET - New FeaturesAll the new features introduced in version 17.5.0 of the search API are related to supporting new file formats. The latest version implements support for the following new formats: Implement support of OneNote documents Implement support of Electronic Publications (epub) Implement support of new Presentations formats (pptm and ppsm) Implement support of OpenDocument presentation format (odp) For further details about the file formats supported by the API, please visit Supported Document Formats.\nGroupDocs.Search for .NET 17.05 - EnhancementsGroupDocs.Search for .NET introduces the following enhancements in this release: Optimization of simple search and fuzzy search Optimization of index data on hard disc Removal of LoadSynonyms(string fileName) obsolete method Removal of SearchParameters.UseFuzzySearch obsolete parameter Available Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search: Download - MSI Package Zipped DLLs Download - DLLs NuGet - NuGet Install Documentation - API docs Examples/Plugins/Showcases - Source Code Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search FeedbackIf you have any suggestions, questions, or queries related to GroupDocs.Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts. ","permalink":"https://blog.groupdocs.com/search/groupdocs.search-.net-17.5.0/","summary":"Team GroupDocs is really excited to announce the monthly release of GroupDocs.Search for .NET 17.5.0 API. We have introduced a number of new features and enhancements in this release. The most notable improvement made to the API in this release is the support for some new formats like epub, OneNote, OpenDocument presentation format etc. For a better user experience the API has implemented optimization of simple and fuzzy search along with optimizing the index data on hard disk.","title":"GroupDocs.Search for .NET 17.5.0 Now Supports Some More File Formats"},{"content":"\rWe are glad to announce another monthly release of GroupDocs.Comparison for .NET 17.4.0 API with Three new features like support of \u0026ldquo;Compare CAD format, Improved Comparison Performance and Updated Changes Model for Imaging. This monthly release is adding Three improvements like \u0026ldquo;Improve comparison of Imaging formats\u0026rdquo; and \u0026quot; Cross-format API simplifications across all supported formats\u0026rdquo; along with fixes. Detailed information is listed below. Please Click here to download the latest API.\nGroupDocs.Comparison for .NET 17.4.0 - Major ChangesThis monthly release of GroupDocs.Comparison for .NET 17.4.0 introducing new features and improvements, like \u0026ldquo;Compare CAD format\u0026rdquo; along with improvements like \u0026ldquo;Improve comparison change detection for Paragraphs in PDF format comparison\u0026rdquo; and fixes. Here are some highlights: Comparison API for .NET 17.4.0 - New Features Adding support of comparison CAD format Update Changes Model for Imaging support of multi compare for supported formats Improvements and FixesThese are the features that are improved in the latest version of the GroupDocs.Comparison API. Improved comparison of Imaging formats Cross-format API simplifications across all supported formats Improved comparison changes detection for Paragraphs in PDF format Comparison Text files with HTML content compared by Words engine-Fix Compare html code in .txt files using word comparer in Words format - Fix Fix bug when the text from the paragraphs overlaps tables in PDF Format- Fix Disposed Images in Facade- Fix For more details about supported document formats, please visit Features Overview. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API: Downloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples FeedbackYou are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/improved-comparison-performance-cad-format-images-introduced-groupdocs.comparison-.net-api-v17.4.0/","summary":"We are glad to announce another monthly release of GroupDocs.Comparison for .NET 17.4.0 API with Three new features like support of \u0026ldquo;Compare CAD format, Improved Comparison Performance and Updated Changes Model for Imaging. This monthly release is adding Three improvements like \u0026ldquo;Improve comparison of Imaging formats\u0026rdquo; and \u0026quot; Cross-format API simplifications across all supported formats\u0026rdquo; along with fixes. Detailed information is listed below. Please Click here to download the latest API.","title":"Improved Performance and CAD Format - introduced in GroupDocs.Comparison for .NET API v17.4.0"},{"content":"\rWe are pleased to announce another monthly release of document generation API. GroupDocs.Assembly for Java 17.5.0 now permits users to set text background color dynamically and control size of an image container. We\u0026rsquo;d recommend you to explore this latest release and share your experience.\nGroupDocs.Assembly for Java 17.5.0 - FeaturesFollowing features are introduced in the latest release: Add ability to define and use variables in template documents Add ability to set text background color dynamically Add ability not to grow the size of an image container while fitting it for the size of an image Document Automation API - EnhancementFollowing enhancements are introduced in this latest release: Switch to native JavaDoc utility for API document generation Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly: Download - Jar File Documentation - API Documentation Examples/Plugins/Showcases - Github source code examples Product Support Forum - Technical Support Forum for GroupDocs.Assembly FeedbackWe\u0026rsquo;d like to hear your valuable feedback. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/assembly/introducing-groupdocs.assembly-java-17.5.0/","summary":"We are pleased to announce another monthly release of document generation API. GroupDocs.Assembly for Java 17.5.0 now permits users to set text background color dynamically and control size of an image container. We\u0026rsquo;d recommend you to explore this latest release and share your experience.\nGroupDocs.Assembly for Java 17.5.0 - FeaturesFollowing features are introduced in the latest release: Add ability to define and use variables in template documents Add ability to set text background color dynamically Add ability not to grow the size of an image container while fitting it for the size of an image Document Automation API - EnhancementFollowing enhancements are introduced in this latest release: Switch to native JavaDoc utility for API document generation Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Define and use Variables in Template Documents using GroupDocs.Assembly for Java 17.5.0"},{"content":"\rWe are excited to release GroupDocs.Watermark for .NET API that makes it simple to perform watermarking operations in various document and image formats. The API facilitates you with simple syntax, easy to use methods and a few lines of code to perform any watermarking operation. Using GroupDocs.Watermark, you can add, search, and remove watermark from many popular document and image formats. Continue to read more about the API\u0026rsquo;s features.\nWhy GroupDocs.Watermark Is Developed?Watermarking is a technique to indicate that the document is confidential and contains some sensitive information/data. In many instances, some documents are to be shared among all the stakeholders and partners within a company. In this case, GroupDocs.Watermark can be used to apply the watermark to all the documents to symbolize the sensitivity of the information and to discourage any unauthorized and unaccredited sharing. Example Business CasesFor instance, there might be the case that a company has changed its name and logo and most of the working documents still contain the watermark with old name and logo. In this case, if the CEO wants to remove the watermark from the documents, GroupDocs.Watermark will be helpful. In order to elaborate real life needs, we have envisaged some real life cases. Please feel free to visit the article: Working with Business Cases. GroupDocs.Watermark - Supported FeaturesFollowing are the salient features exposed by GroupDocs.Watermark for .NET. Adding text/image watermark to supported document formats Searching and removing text/image watermark in supported document formats Adding watermark to images inside a document Working with existing watermark objects in PDF documents Working with existing watermark objects in Word formats Working with existing watermark objects in Excel formats Working with existing watermark objects in PowerPoint formats Working with existing watermark objects in Visio formats PDF document rasterization Getting document information GroupDocs.Watermark for .NET also provides features that are specific to the Word, Excel, Powerpoint, Visio, and PDF formats.\nWorking with Word formats Working with Excel formats Working with PowerPoint formats Working with Visio formats Working with PDF documents For more details on the supported feature, please visit the article: GroupDocs.Watermark Features\n.NET Watermarking API - Supported File FormatsGroupDocs.Watermark API supports watermarking operations for following file formats: PDF Word Excel PowerPoint Visio PNG BMP GIF JPEG TIFF JPEG2000 WEBP For more details on supported feature, please visit the article: Supported File Formats\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Watermark: Download - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples- Source Code Examples Product Support Forum - Technical Support Forum for GroupDocs.Watermark FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/watermark/introducing-groupdocs.watermark-.net-watermarking-api/","summary":"We are excited to release GroupDocs.Watermark for .NET API that makes it simple to perform watermarking operations in various document and image formats. The API facilitates you with simple syntax, easy to use methods and a few lines of code to perform any watermarking operation. Using GroupDocs.Watermark, you can add, search, and remove watermark from many popular document and image formats. Continue to read more about the API\u0026rsquo;s features.","title":"Introducing GroupDocs.Watermark for .NET - A Convenient Watermarking API"},{"content":"\rWe as members of GroupDocs team are immensely delighted to see our users community growing every day. Our whole team is always endeavoring to cater to your needs and requirements to our fullest possible potential thus providing the most innovative and enhanced solutions to our valuable customers. In this regard we are really pleased to announce yet another bit of our efforts for you; that is the release of version 17.5.0 of GroupDocs.Metadata for .NET API. As per our customers requirements, we have introduced the feature to work with a document\u0026rsquo;s revisions in this release. The latest version of the API not only has the ability to track changes in a document but it also has the ability to either accept or discard those changes. We highly recommend you to download the latest release and check out the new features introduced in this version.\nGroupDocs.Metadata for .NET 17.05 - New Features The following two major features are introduced in this release:\nAbility to read all revisions in Word format Ability to accept or reject revisions in Word format For details, please visit Features Overview.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Download - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/track-changes-word-document-using-groupdocs.metadata-.net-17.5.0/","summary":"We as members of GroupDocs team are immensely delighted to see our users community growing every day. Our whole team is always endeavoring to cater to your needs and requirements to our fullest possible potential thus providing the most innovative and enhanced solutions to our valuable customers. In this regard we are really pleased to announce yet another bit of our efforts for you; that is the release of version 17.","title":"Track Changes in a Word Document Using GroupDocs.Metadata for .NET 17.5.0"},{"content":"\rWe are really pleased to announce the monthly release of GroupDocs.Text for .NET 17.5.0 API. This release comes up with a number of new features. GroupDocs.Text for .NET now allows text extraction in Fiction books i-e in FB2 files. The latest version now support all the features it supported for other formats e-g extracting text, metadata, structured text, highlighted text etc for FB2 documents as well. The text extraction API has extended the media type detector class and can now detect FB2 documents. Not only this, the latest release allows its users to extract structured text in EPUB documents as well. We highly recommend you to download the latest version and try out all the amazing features introduced in version 17.5.0 of the GroupDocs.Text for .NET API.\nGroupDocs.Text For .NET 17.03 - New Features The following new features have been introduced in version 17.5.0 of the API:\nAbility to extract a text with its structure from EPUB documents. Ability to extract a formatted text from EPUB documents. Ability to extract a text from fb2 (FictionBook) documents. Ability to extract highlights from fb2 (FictionBook) documents. Ability to search a text in fb2 (FictionBook) documents. Ability to extract metadata from fb2 (FictionBook) documents. Ability to detect fb2 (FictionBook) documents. Ability to extract a text with its structure from fb2 (FictionBook) documents. Ability to use Metered keys. For more information, please see the API features\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Text:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples - Github Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Text Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/parser/groupdocs.text-.net-17.5-now-supports-fb2-files/","summary":"We are really pleased to announce the monthly release of GroupDocs.Text for .NET 17.5.0 API. This release comes up with a number of new features. GroupDocs.Text for .NET now allows text extraction in Fiction books i-e in FB2 files. The latest version now support all the features it supported for other formats e-g extracting text, metadata, structured text, highlighted text etc for FB2 documents as well. The text extraction API has extended the media type detector class and can now detect FB2 documents.","title":"GroupDocs.Text for .NET 17.5.0 Now Supports FB2 Files"},{"content":"\rTeam GroupDocs is pleased to announce e-Signing API for Java developers. API comes with many remarkable features including digital, image and text signatures. Moreover, it permits developers to write applications with ability to significantly sign electronic docs of various file formats. Java developers can manipulate signatures using properties offered by the API. We would recommend you to download and explore the API.\nWhy GroupDocs.Signature?GroupDocs.Signature for Java 17.1.0 is a totally back-end, UI and framework independent API. Hence, java developers can integrate it in any Java project quite easily. Some salient features of Document Signing API are given below: Different types of signatures are supported Document Signing is no longer coupled with GUI and web, thus enabling you to use the API in a larger number of scenarios This lightweight API provides single solution for multiple devices (i.e. mobile, web, tablet) Handling all kind of signature properties easily Signature TypesFollowing types of signatures are supported by the API: Text Signature Image Signature Digital Signature Zero Dependency on any External Software/Toole-Signing API itself does not require any additional software, it simply accepts a supported formatted input file to sign. In order to see how to sign various types of documents, please visit Developers Guide. GroupDocs.Signature for Java API : Available Channels and ResourcesHere are a few channels and resources for you to learn, try and get technical support on Document Signing API for Java: Download - JAR Files Documentation - API Docs Examples - GitHub source code examples Product Support Forum - Technical Support Forum for GroupDocs.Signature FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/signature/introducing-groupdocs.signature-for-java-17.1.0/","summary":"Team GroupDocs is pleased to announce e-Signing API for Java developers. API comes with many remarkable features including digital, image and text signatures. Moreover, it permits developers to write applications with ability to significantly sign electronic docs of various file formats. Java developers can manipulate signatures using properties offered by the API. We would recommend you to download and explore the API.\nWhy GroupDocs.Signature?GroupDocs.Signature for Java 17.1.0 is a totally back-end, UI and framework independent API.","title":"Impose Digital Signatures on Electronic Documents using GroupDocs.Signature for Java 17.1.0"},{"content":"\rGroupDocs team is proudly announcing new **Modern Web-Part **for SharePoint Developers for GroupDocs.Viewer for .NET API. Using this release SharePoint developers can not only integrate GroupDocs.Viewer in their SharePoint site, but they can also customize it according to their needs. This new release is simple, efficient and, user friendly. Please download and investigate this new Web-Part.\nLet\u0026rsquo;s explore key highlights in this new user interface.\nModern Look-and-FeelThe look and feel has been completely revamped using Material Design. Desktop, Tablet, PhoneMobile responsiveness is built into the new app. It works fine with all kind of screens ranging from phone, tablet, desktop and even retina display. When you move from large screen to smaller, the viewer will automatically re-arrange its layout to adjust into the available area. Cross-browser CompatibilityThe app is compatible with famous browsers including Internet Explorer. You will get same user experience when using it in any modern day web browser. HTML-based RenderingThe document is rendered in HTML mode and loads very quickly as compared to image-based rendering. This also enables you to copy-paste text from the document. ThumbnailsThe left sidebar of viewer allows you to preview thumbnails of document pages. You can jump to any document page by clicking on its thumbnail. DownloadThe app provides you a button on top toolbar to download and save the original document. You can also download a PDF of document, which can be later used for printing. Pixel-perfect renderingGroupDocs and its upstream products of Aspose are famous for its accurate rendering. The app delivers same promises of GroupDocs and renders the document with high precision. Unlike our previous app, the document is rendered in isolated environment so that the HTML/JS/CSS of app does not conflict with CSS of document itself. Open Multiple FilesThe top toolbar allows the user to switch between available files to open. The list of available files is populated from server automatically. To add new files to the list, just put them in storage directory. Open SourceThe best part is that full source code of the app is available to download from GitHub. You can also contribute to the app by sending a pull-request. API FeaturesThe app covers most APIs of GroupDocs.Viewer for .NET, which allows anyone to see how to use same API in their own apps. Easy IntegrationThe app can be easily embedded or integrated with another app of your choice. You can either use IFRAME or embed it as AngularJS Module. Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/publishing-modern-sharepoint-web-part-groupdocs.viewer-net/","summary":"GroupDocs team is proudly announcing new **Modern Web-Part **for SharePoint Developers for GroupDocs.Viewer for .NET API. Using this release SharePoint developers can not only integrate GroupDocs.Viewer in their SharePoint site, but they can also customize it according to their needs. This new release is simple, efficient and, user friendly. Please download and investigate this new Web-Part.\nLet\u0026rsquo;s explore key highlights in this new user interface.\nModern Look-and-FeelThe look and feel has been completely revamped using Material Design.","title":"Publishing Modern SharePoint Web-Part for GroupDocs.Viewer for .NET"},{"content":"\rTeam GroupDocs is really glad to announce the release of version 17.04 of GroupDocs.Signature for .NET API. A number of new features have been introduced in this release. GroupDocs.Signature for .NET API now allows its users to manipulate a document\u0026rsquo;s password and implements various options in this regard. A user can now protect a signed document with a password, remove password from a protected document and change the password of a document etc. Apart from features pertaining to password protection; the API also introduces some extended options for image signature appearance like specifying gray scale filter, brightness, contrast and gamma filters etc to the image signature. Well, that\u0026rsquo;s not just all; The latest version has also come up with an enhancement related to the implementation of font strike out property for all text signature implementations for supported document types. So what are you waiting for? Simply download this latest release and check out all the new features and improvements made to the API in this release.\nGroupDocs.Signature for .NET API - New FeaturesVersion 17.04 of GroupDocs.Signature for .NET API introduces the following new features: Implementation of Visible flag of Pdf Digital Signature Ability to protect signed document with password Password protection for signed Pdf documents Password protection for signed Cells documents Password protection for signed Words documents Password protection for signed Slides Documents Implementation of alternative appearance features of image signature for PDF documents Implementation of alternative appearance features of image signature for Cells documents Implementation of alternative appearance features of image signature for Slides documents Implementation of alternative appearance features of image signature for Words documents For more details about the API features, please visit features overview.\nE-Signing API - ImprovementsVersion 17.4.0 of GroupDocs.Signature for .NET API comes up with the following enhancement: Implementation of font strike out property for all text signature implementation for supported document types GroupDocs.Signature for .NET API : Available Channels and ResourcesHere are a few channels and resources for you to learn, try and get technical support on Document Signing API for .NET: Download - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/signature/manipulate-documents-password-using-groupdocs.signature-.net-17.4/","summary":"Team GroupDocs is really glad to announce the release of version 17.04 of GroupDocs.Signature for .NET API. A number of new features have been introduced in this release. GroupDocs.Signature for .NET API now allows its users to manipulate a document\u0026rsquo;s password and implements various options in this regard. A user can now protect a signed document with a password, remove password from a protected document and change the password of a document etc.","title":"Manipulate Document's Password Using GroupDocs.Signature for .NET 17.4.0"},{"content":"\rGroupDocs team is glad to announce another monthly release where new file formats are added in supported file format list to annotate documents and image. The latest GroupDocs.Annotation for .NET 17.3.0 API now provides support to CAD, WMFand EMF with all major annotation types like Text, Area, Point, Watermark and Strikeout Annotations. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.Annotation for .NET.\nGroupDocs.Annotation for .NET - New Features and ChangesThis monthly release is providing support for all major Annotation types for CAD, WMF and EMF file formats. GroupDocs.Annotation for .NET 17.3.0 is also providing Distance Annotation for images. Major changes are lists are given below. For more details about supported documents formats to annotate , please visit this article. CAD documents support added EMF documents support added WMF documents support added Implement distance annotation in images file formats Adding Support for Arrow annotation in Image file formats Export to MS-Word exporting the repeated reply comments - Bug Fix Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET FeedbackWe always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/cad-emf-wmf-file-formats-support-introduced-groupdocs.annotation-.net-v17.3.0/","summary":"GroupDocs team is glad to announce another monthly release where new file formats are added in supported file format list to annotate documents and image. The latest GroupDocs.Annotation for .NET 17.3.0 API now provides support to CAD, WMFand EMF with all major annotation types like Text, Area, Point, Watermark and Strikeout Annotations. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.","title":"CAD, EMF \u0026 WMF file formats Support Introduced in GroupDocs.Annotation for .NET v17.3.0"},{"content":"\rWe are glad to announce another monthly release of GroupDocs.Comparison for .NET 17.3.0 API with Three new features like support of \u0026ldquo;Compare DICOM format by Comparison.Imaging\u0026rdquo; and \u0026ldquo;Apply/Discard changes for DICOM format\u0026rdquo;, also providing support for \u0026ldquo;summary page for images\u0026rdquo;. This monthly release is adding Four improvements like \u0026ldquo;comparison of result and original files in Images\u0026rdquo; and \u0026ldquo;process absorbing of tables with merged cells\u0026rdquo; along with fixes. Detailed information is listed below. Please Click here to download the latest API.\nGroupDocs.Comparison for .NET 17.3.0 - Major ChangesThis monthly release of GroupDocs.Comparison for .NET 17.3.0 introducing new features and improvements, like \u0026ldquo;Compare DICOM format by Comparison.Imaging\u0026rdquo; along with improvements like \u0026ldquo;Add ability for comparison of result and original files in Imaging.Tests\u0026rdquo; and fixes. Here are some highlights: Comparison API for .NET 17.3.0 - New Features Add ability of comparing DICOM documents by Comparison.Imaging Apply/Discard changes for DICOM format Add summary page to images streams Improvements and FixesThese are the features that are improved in the latest version of the GroupDocs.Comparison API. Implement the process absorbing of tables with merged cells Add ability for comparison of result and original files in Imaging.Tests Add localize exceptions for wrong passwords while opening documents for Cells, Words, Slides and PDF Improved public API PDF files with tables and footer lines generating unexpected output - Fix For more details about supported document formats, please visit Features Overview. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API: Downloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples FeedbackYou are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/summary-page-dicom-format-images-introduced-groupdocs.comparison-.net-api-v17.3.0/","summary":"We are glad to announce another monthly release of GroupDocs.Comparison for .NET 17.3.0 API with Three new features like support of \u0026ldquo;Compare DICOM format by Comparison.Imaging\u0026rdquo; and \u0026ldquo;Apply/Discard changes for DICOM format\u0026rdquo;, also providing support for \u0026ldquo;summary page for images\u0026rdquo;. This monthly release is adding Four improvements like \u0026ldquo;comparison of result and original files in Images\u0026rdquo; and \u0026ldquo;process absorbing of tables with merged cells\u0026rdquo; along with fixes. Detailed information is listed below.","title":"Summary Page \u0026 DICOM Format for Images - introduced in GroupDocs.Comparison for .NET API v17.3.0"},{"content":"\rWe are is glad to announce another release of GroupDocs.Conversion for .NET v17.3.0. In this monthly release new file formats \u0026ldquo;ONE, DGN DNG VSSX and VSTX\u0026rdquo; are added in supported file format list. This monthly release of Document Conversion API is introducing new features like \u0026quot; show/hide WORD comments when converting from word document formats\u0026quot; and Improvement like \u0026ldquo;conversion performance of HTML to PDF file format\u0026rdquo; along with fixes. We recommend our users to download the new release and use the new exciting features to enhance their application.\nGroupDocs.Conversion for .NET API 17.3.0This release of GroupDocs.Conversion for .NET 17.3.0 Implemented conversion from ONE, DGN, DNG, VSSX and VSTX file extension into different document formats, also added new features like \u0026ldquo;show/hide WORD comments when converting from word document formats\u0026rdquo;. Here is the list of changes made in new release. Features Conversion from ONE file format /li\u0026gt; VSSX and VSTX files Conversion Implemented conversion from DGN and DNG file formats Hide WORD comments when converting from word document formats Improvements and Fixes Improved performance of HTML to PDF conversions Memory leak when converting CAD stream to image Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - Github source code examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/one-dng-dgn-vssx-vstx-file-formats-introduced-groupdocs.conversion-.net-v17.3.0/","summary":"We are is glad to announce another release of GroupDocs.Conversion for .NET v17.3.0. In this monthly release new file formats \u0026ldquo;ONE, DGN DNG VSSX and VSTX\u0026rdquo; are added in supported file format list. This monthly release of Document Conversion API is introducing new features like \u0026quot; show/hide WORD comments when converting from word document formats\u0026quot; and Improvement like \u0026ldquo;conversion performance of HTML to PDF file format\u0026rdquo; along with fixes. We recommend our users to download the new release and use the new exciting features to enhance their application.","title":"ONE, DNG, DGN, VSSX  and VSTX file formats Introduced in GroupDocs.Conversion for .NET v17.3.0"},{"content":"\rTeam GroupDocs is really pleased to announce another regular monthly release of GroupDocs.Search for .NET 17.4.0 API. We have introduced two new features in this release. The API has extended its search functionality and it now allows using date ranges in search. Another exciting feature introduced in this release is the ability to define table discrete function as step function while performing search operation. We suggest you to download the latest version of the API and check out all the features introduced in this release.\nGroupDocs.Search for .NET - New FeaturesGroupDocs.Search for .NET 17.4.0 introduces the following new features in this release: Implementation of using Dates Ranges in search Implementation of defining TableDiscreteFunction class as step function For further details, please visit Features Overview.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search: Download - MSI Package Zipped DLLs Download - DLLs NuGet - NuGet Install Documentation - API docs Examples/Plugins/Showcases - Source Code Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search FeedbackIf you have any suggestions, questions, or queries related to GroupDocs.Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts. ","permalink":"https://blog.groupdocs.com/search/use-date-ranges-search-groupdocs.search-.net-17.4.0/","summary":"Team GroupDocs is really pleased to announce another regular monthly release of GroupDocs.Search for .NET 17.4.0 API. We have introduced two new features in this release. The API has extended its search functionality and it now allows using date ranges in search. Another exciting feature introduced in this release is the ability to define table discrete function as step function while performing search operation. We suggest you to download the latest version of the API and check out all the features introduced in this release.","title":"Use Date Ranges in Search with GroupDocs.Search for .NET 17.4.0"},{"content":"\rWe are happy to announce that GroupDocs.Viewer for .NET 17.4.0 is available for download. This version allows you to access and render layouts in a CAD document. We have also introduced the option to specify Text Overflow modes when rendering cells document into HTML. Furthermore, 15 improvements and fixes have significantly enhanced the performance of the API. For a complete list of new features, improvements, and changes in the API, please read our release notes.\nGroupDocs.Viewer for .NET 17.4.0 - New FeaturesIn GroupDocs.Viewer for .NET 17.4.0, we have introduced following new features. Option for specifying output quality when rendering DjVu documents into PDF Rendering layouts in CAD documents Managing text overflow mode when rendering Cells documents ONE file format support DJVU format support For more details, please visit API Features.\n.NET Document Viewer API - Improvements \u0026amp; FixesFollowing is the list of improvements and fixes included in this version of the API. Improvement - CellsOptions.ShowGridLines property does not work when rendering Cells to PDF Improvement - Setting that switches on more accurate rendering of pdf documents Improvement - Added code examples to CellsOptions class\u0026rsquo;s documentation comments Improvement - Added code examples to PdfOptions class\u0026rsquo;s documentation comments Fix - Aspose.Pdf 10.7: incorrect rendering of hieroglyphs when converting PDF to JPEG and HTML Fix - IgnoreResourcePrefixForCss is ignored when rendering PDF documents Fix - Content is missing when rendering PDF document into HTML Fix - Header of Word document is not rendered in output HTML or image Fix - Overflow text is not visible when rendering excel sheet to HTML Fix - Issue with underline text when rendering PDF into HTML Fix - Aspose.Slides 17.1.0: Black background when rendering pps or ppt to image Fix - Incorrect resource relative path when rendering to Html Fix - HTMLSaveOptions.DefaultFont setting doesn\u0026rsquo;t work properly Fix - Failed to convert djvu file to pdf in the Asp.Net application. Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/releasing-groupdocs.viewer-.net-17.4.0/","summary":"We are happy to announce that GroupDocs.Viewer for .NET 17.4.0 is available for download. This version allows you to access and render layouts in a CAD document. We have also introduced the option to specify Text Overflow modes when rendering cells document into HTML. Furthermore, 15 improvements and fixes have significantly enhanced the performance of the API. For a complete list of new features, improvements, and changes in the API, please read our release notes.","title":"Render Layouts of CAD Document using GroupDocs.Viewer for .NET 17.4.0"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Viewer for Java 17.2.0. Numerous customers reported bugs are resolved in this release. Furthermore, API comes with multitude of improvements and new features such as implementation of settings to prevent glyph grouping when rendering PDF documents. We\u0026rsquo;d recommend you to download latest version of the API and share your valuable feedback.\nGroupDocs.Viewer for Java 17.2.0 - New Features Mobi format support Ability to set default font when rendering Email documents Add OTP format support OTS format support WebP file format support Implement setting to prevent glyphs grouping when rendering pdf documents Partial rendering of large Excel sheets in HTML mode Implement parameterless ViewerHtmlHandler and ViewerImageHandler constructors Add possibility to configurate ViewerConfig class via app.config or web.config file Rendering password-protected MPP(2003) files LaTeX file format support Document Rendering API - Improvements Remove embedded audios from presentation Improve public API of ViewerConfig class Improve rendering CAD (dwg, dxf) documents to Pdf Improve public API of IInputDataHandler interface Display HTML pages of two different documents in the same page in browser without overriding css classes Use current directory when storage path is not specified Implement responsive html output for Slides documents Implement setting to configure content ordering in resultant html document Improve Email documents rendering Implement saving fonts and styles separately when converting Words to Html Add {resource-name} pattern to HtmlOptions.HtmlResourcePrefix Add CountPagesToRender and PageNumbersToRender properties to RenderOptions class Implement IDisposable for container classes Implement setting which allows render pdf document layers separately Add code examples to documentation comments GroupDocs.Viewer for Java API - Bug Fixes Invalid rendering of DWG file into Image or HTML GetDocumentInfo() method is throwing exception Failed to load XPS file in evaluation mode Dwg document is rendered into small image Invalid rendering of DWG file into HTML and Image SheetRender.GetPageSize throws an exception when sheet is empty FormattedText does not return TextWidth for Japanese characters The background is missed for IE 11 Special characters like accents, umlauts and circumflex are displayed incorrectly when saving specific PDF to HTML A ligature is shown incorrectly in HTML produced from PDF Invalid characters while rendering Word document into HTML Throws unsupported file format exception when loading specific doc file Getting exception \u0026ldquo;File type \u0026lsquo;doc\u0026rsquo; is not supported\u0026rdquo; Parameter is not valid exception when rendering xlsx to image Extra blank page created when convering dwg to pdf Failed to convert wmf file to image in Asp.Net application Incorrect Rendering of Radio Buttons, Checkboxes and their Label into Html No text when converting Pdf to Html with FontAbsorber Different exception messages for password encrypted Word document Failed to load SAI image Large scrollbars when viewing pdf converted to html with embedded resources in IE Edge IE Edge displays large scrollbars for generated HTML Failed to load Tex file from stream Failed to load XCF file Position of graph lines is not correct in output HTML or image file Printing Radio Buttons from HTML page Links are converted into plain text when converting PDF to HTML Merged cells in xlsx are not displayed as merged in html Alignment of radio button text and checkbox text is not proper Jumbling words when rendering PDF document to HTML Creates only one page in text(txt) document Radio buttons are not showing as \u0026lsquo;selected\u0026rsquo; or \u0026lsquo;checked\u0026rsquo; when converting to fixed html Radio buttons are not showing as \u0026lsquo;selected\u0026rsquo; or \u0026lsquo;checked\u0026rsquo; Missing characters, invalid formating when saving to html Incorrect conversion from DOCX to PDF Header-links in PDF files do not work Input stream must be FileStream exception when loading Tex file from stream Getting GroupDocs.Foundation Dependency Exception in SharePoint 2013 Background image is missing when converting to image Text and text alignment is messed up in 01_the_manure_tool_baltic_20131215_incl_logo.xlsx A lot of temporary files with name ASPOSE_24_14xxx are created in temp folder Fields are duplicated in fd.xml file Exception is thrown by the API when an XLSX file is queried for info using com.groupdocs.viewer.handler.ViewerHandler.getDocumentInfo Exception when getPages is accessed from multiple threads PDF to HTML rendering generates an exception Attachments present in MSG files are not rendering to HTML EML and MSG files are not properly rendering to HTML and Images ODS files/documents are not rendering to HTML and Images FileData is not serializable Doesn\u0026rsquo;t viewed .doc file Text loss on to HTML conversion Appends null at the end of the path for resources HTML EPUB document loading issue Additional ResourcesFollowing resources will help you to download, learn, try and get technical support. Product Home – GroupDocs.Viewer for Java. Download - JAR Files Documentation – Product Documentations. Product Support Forum – Technical Support Forum for GroupDocs.Viewer. Examples/Plugins/Showcases – Github source code examples. FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/partial-rendering-large-excel-sheets-supported-groupdocs.viewer-java-17.2.0/","summary":"We are pleased to announce another monthly release of GroupDocs.Viewer for Java 17.2.0. Numerous customers reported bugs are resolved in this release. Furthermore, API comes with multitude of improvements and new features such as implementation of settings to prevent glyph grouping when rendering PDF documents. We\u0026rsquo;d recommend you to download latest version of the API and share your valuable feedback.\nGroupDocs.Viewer for Java 17.2.0 - New Features Mobi format support Ability to set default font when rendering Email documents Add OTP format support OTS format support WebP file format support Implement setting to prevent glyphs grouping when rendering pdf documents Partial rendering of large Excel sheets in HTML mode Implement parameterless ViewerHtmlHandler and ViewerImageHandler constructors Add possibility to configurate ViewerConfig class via app.","title":"Partial Rendering of Large Excel Sheets are Supported in GroupDocs.Viewer for Java 17.2.0"},{"content":"\rWe are pleased to announce the monthly release of version 17.04.0 of the GroupDocs.Text for .NET API. This version comes up with a major feature related to the implementation of the architecture to read structured text in documents. The API now allows reading structured text in different file formats like text documents, presentations, spread sheets and emails. For a better user experience with the text extraction API, we recommend you to download and integrate the latest version of the API.\nGroupDocs.Text For .NET 17.04 - New Features GroupDocs.Text for .NET introduces the following new features in this release:\nReading structured text from spread sheets Reading structured text from presentations Reading structured text from text documents Reading structured text from emails More information about the API and its features can be found here.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Text:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples - Github Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Text Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/parser/groupdocs.text-.net-17.04.0/","summary":"We are pleased to announce the monthly release of version 17.04.0 of the GroupDocs.Text for .NET API. This version comes up with a major feature related to the implementation of the architecture to read structured text in documents. The API now allows reading structured text in different file formats like text documents, presentations, spread sheets and emails. For a better user experience with the text extraction API, we recommend you to download and integrate the latest version of the API.","title":"Read Structured Text Using GroupDocs.Text for .NET 17.04.0"},{"content":"\rTeam GroupDocs is really pleased to announce another regular monthly release of GroupDocs.Assembly for .NET 17.3.0. This release comes with some very exciting features to enhance the usability of the API. The latest version now supports document assembly for both HTML and text documents. We recommend you to download and integrate this latest release.\nGroupDocs.Assembly for .NET 17.3.0 - FeaturesFollowing features are introduced in the latest release: Support document assembly for Plain Text file formats Support document assembly for HTML file formats For a complete list of features supported by the API, read the API features here.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly: Download - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly FeedbackWe observe your feedback carefully, please share your feedback about this Document Generation API. We will be happy to know your thoughts and we will try to enhance your experience with the API. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/assembly/groupdocs.assembly-17.3.0-supports-html-text-formats/","summary":"Team GroupDocs is really pleased to announce another regular monthly release of GroupDocs.Assembly for .NET 17.3.0. This release comes with some very exciting features to enhance the usability of the API. The latest version now supports document assembly for both HTML and text documents. We recommend you to download and integrate this latest release.\nGroupDocs.Assembly for .NET 17.3.0 - FeaturesFollowing features are introduced in the latest release: Support document assembly for Plain Text file formats Support document assembly for HTML file formats For a complete list of features supported by the API, read the API features here.","title":"GroupDocs.Assembly 17.3.0 Supports HTML and Text Formats"},{"content":"\rGood news for ASP.NET Web-Form developers, we are proudly announcing the first release of our modern Web-Form based user interface for GroupDocs.Viewer for .NET API. This new release is simple, efficient and, user friendly showcase project. We would recommend you to clone this showcase project from GitHub and provide you valuable feedback.\nLet\u0026rsquo;s explore key highlights in this new user interface.\nModern Look-and-FeelThe look and feel has been completely revamped using Material Design. Desktop, Tablet, PhoneMobile responsiveness is built into the new app. It works fine with all kind of screens ranging from phone, tablet, desktop and even retina display. When you move from large screen to smaller, the viewer will automatically re-arrange its layout to adjust into the available area. Cross-browser CompatibilityThe app is compatible with famous browsers including Internet Explorer. You will get same user experience when using it in any modern day web browser. HTML-based RenderingThe document is rendered in HTML mode and loads very quickly as compared to image-based rendering. This also enables you to copy-paste text from the document. ThumbnailsThe left sidebar of viewer allows you to preview thumbnails of document pages. You can jump to any document page by clicking on its thumbnail. DownloadThe app provides you a button on top toolbar to download and save the original document. You can also download a PDF of document, which can be later used for printing. Pixel-perfect renderingGroupDocs and its upstream products of Aspose are famous for its accurate rendering. The app delivers same promises of GroupDocs and renders the document with high precision. Unlike our previous app, the document is rendered in isolated environment so that the HTML/JS/CSS of app does not conflict with CSS of document itself. Open Multiple FilesThe top toolbar allows the user to switch between available files to open. The list of available files is populated from server automatically. To add new files to the list, just put them in storage directory. Open SourceThe best part is that full source code of the app is available to download from GitHub. You can also contribute to the app by sending a pull-request. API FeaturesThe app covers most APIs of GroupDocs.Viewer for .NET, which allows anyone to see how to use same API in their own apps. Easy IntegrationThe app can be easily embedded or integrated with another app of your choice. You can either use IFRAME or embed it as AngularJS Module. Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/releasing-modern-web-form-front-end-groupdocs.viewer-.net/","summary":"Good news for ASP.NET Web-Form developers, we are proudly announcing the first release of our modern Web-Form based user interface for GroupDocs.Viewer for .NET API. This new release is simple, efficient and, user friendly showcase project. We would recommend you to clone this showcase project from GitHub and provide you valuable feedback.\nLet\u0026rsquo;s explore key highlights in this new user interface.\nModern Look-and-FeelThe look and feel has been completely revamped using Material Design.","title":"Releasing Modern Web-Form Front End for GroupDocs.Viewer for .NET API"},{"content":"\rConsidering the extensibility of the API, team GroupDocs is pleased to announce another monthly release of GroupDocs.Annotation for Java 17.1.0. This release comes with multitude of new features, improvements and bug fixes. Now, GroupDocs.Annotation for Java developers can import annotations from Word and Slide documents. Furthermore, API permits developers to annotate Slide documents with different annotation types. We\u0026rsquo;d recommend you to fetch latest release of the API, integrate it in your project and share your valuable feedback.\nGroupDocs.Annotation for Java 17.1.0 - New Features Import TextField annotation from Words Documents Implement TextRedaction annotation import from Word Implement Shape annotations import from Word Implement TextStrikeout annotation import from Word Implement Underline annotation import from Word Implement Area annotation import from Word Implement Text annotation import from Word Add native Word annotations after export Word documents to Text Replacement annotation Add native Word annotations after export Word documents Add native Word annotations after export Word documents to Strikeout annotation Implement Watermark annotation for Slides format Implement Area annotation for Slides format Implement Arrow annotation for Slides format Implement Text Field annotation in Slides document Implement Polyline annotation for Slides format Implement Point annotation for Slides format Implement Strikeout annotation for Slides format Implement Undreline annotation for Slides format Implement Highlight annotation for Slides format Implement import of Text Field annotation for Slides Implement import of Point annotation for Slides Implement import of Resource Redaction annotation for Slides Implement import of Watermark annotation for Slides Implement import of Polyline annotation for Slides Implement import of Arrow annotation for Slides Implement import of Area annotation for Slides Implement Watermark annotation for images Implement Polyline annotation for images Implement Text Underline annotation for images Implement Text Strikeout annotations for images Implement TextField annotation for images Implement Point annotation for images Implement Resource Redaction annotation for images Implement Area annotation for images Implement annotating GIF format static images (without animation) Implement annotating TIFF format images Implement annotating BMP format images Implement annotating JPEG format images Document Annotation API - Improvements Implement option for ability to auto-import annotations when opening PDF documents Show and store annotation author when export annotation for PDF documents GroupDocs.Annotation for Java API - Bug Fixes Fix users permission for Delete annotations Arrow annotation imported incorrectly on several Words documents Wrong annotation orientation (After export PDF annotations are shifted to other place) While exporting Slide document TextField annotation hasn\u0026rsquo;t text Fix background when import Resource Redaction annotation (for slides) Quality doesn\u0026rsquo;t work Search functionality doesn\u0026rsquo;t work for one pdf Incorrect rendering \u0026ldquo;strickeout text\u0026rdquo; annotation after import Localization works only after a document was rendered Access callbacks ExportPdf and ExportWord do not works Performance issue with .pdf document that has a lot of images Document comments reply issues Issue with showing Excel groups Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Documentation Annotation API: Download - Zipped JARs Documentation - API Documentation Examples/Showcases - GitHub source code examples Product Support Forum - Technical Support Forum for GroupDocs.Annotation FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/import-textfield-annotation-word-documents-using-groupdocs.annotation-java-17.1.0/","summary":"Considering the extensibility of the API, team GroupDocs is pleased to announce another monthly release of GroupDocs.Annotation for Java 17.1.0. This release comes with multitude of new features, improvements and bug fixes. Now, GroupDocs.Annotation for Java developers can import annotations from Word and Slide documents. Furthermore, API permits developers to annotate Slide documents with different annotation types. We\u0026rsquo;d recommend you to fetch latest release of the API, integrate it in your project and share your valuable feedback.","title":"Import TextField Annotation from Word Documents using GroupDocs.Annotation for Java 17.1.0"},{"content":"\rIt gives us immense pleasure to announce the monthly release of GroupDocs.Signature for .NET 17.03.0. This version comes up with a number of new features along with an enhancement related to releasing disposable objects and a bug fix. GroupDocs.Signature for .NET 17.03.0 has implemented classes to verify text signature. The API has also added the ability to set opacity to image signatures in supported document formats. What\u0026rsquo;s more exciting is the ability to put Digital Signature on user specified Document Pages; you can now configure the signature options to add signature to either the first,last, even, odd or any arbitrary page of your choice. We highly recommend you to download this latest release and check out all the improvements made to the API in this release.\nGroupDocs.Signature for .NET API - New FeaturesVersion 17.3.0 of GroupDocs.Signature for .NET API introduces the following new features: Implement Text Signature Verification for Slides Documents Implement Text Signature Verification for Word Documents Implement Image appearance of Digital Signatures for Cells Documents Implement Image appearance of Digital Signatures for Words Documents Implement Image Signature Opacity for Words Documents Implement Digital Signature Opacity for PDF Documents Implement ability to put Text Signature on user specified Document Pages (first, last, even, odd and arbitrary pages list) for Cells Documents Implement ability to put Digital Signature on user specified Document Pages (first, last, even, odd and arbitrary pages list) for Pdf Documents Implement ability to put Image Signature on user specified Document Pages (first, last, even, odd and arbitrary pages list) for Pdf Documents Implement ability to put Text Signature on user specified Document Pages (first, last, even, odd and arbitrary pages list) for Pdf Documents Implement Image Signature Opacity for Slides Documents Implement Image Signature Opacity for Cells Documents Implement Text Signature Verification for Cells Documents For more details about the API features, please visit features overview.\nGroupDocs.Signature API - ImprovementsThe latest release comes up with a single enhancement. GroupDocs.Signature for .NET API has made improvements to the Digital Certificate Helper class to release disposable objects in version 17.3.0. The e-Signature API - Bug FixesIn the previous version of the API, PDF internal resources were not work properly after using Text Sticker default appearance object. We are really glad to inform you that this issue has been resolved in this latest release of GroupDocs.Signature API. E-Signing API : Available Channels and ResourcesHere are a few channels and resources for you to learn, try and get technical support on Document Signing API for .NET: Download - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/signature/groupdocs.signature-.net/","summary":"It gives us immense pleasure to announce the monthly release of GroupDocs.Signature for .NET 17.03.0. This version comes up with a number of new features along with an enhancement related to releasing disposable objects and a bug fix. GroupDocs.Signature for .NET 17.03.0 has implemented classes to verify text signature. The API has also added the ability to set opacity to image signatures in supported document formats. What\u0026rsquo;s more exciting is the ability to put Digital Signature on user specified Document Pages; you can now configure the signature options to add signature to either the first,last, even, odd or any arbitrary page of your choice.","title":"Specify Document Pages to Put Signature on Using GroupDocs.Signature for .NET"},{"content":"\rWe are really excited to announce the release of GroupDocs.Search for .NET 17.3.0 API. This regular monthly release comes up with around nine features, bug fixes and enhancements. Version 17.03 of the API has optimized the fuzzy and regex search functionality. The API now supports all the methods in previous index versions. Well, that\u0026rsquo;s not just all! the API has also added some exciting features like implementation of numeric range search feature, limiting the number of search results and implementation of functions about the relationship between max mistake count and word length for Fuzzy Search. We strongly suggest you to download the latest version of the API and check out all the features introduced in this release.\nGroupDocs.Search for .NET - New Features GroupDocs.Search for .NET 17.03.0 introduces the following new features in this release:\nImplement flow for support all methods in previous index versions Implement Numeric Range search feature Implement function related to relation between max mistake count and word length for Fuzzy Search Implement limitation for number of search results For further details, please visit Features Overview.\nGroupDocs.Search for .NET version 17.03.0 - Enhancements This latest release has improved the API by implementing optimization of both fuzzy and regex search.\nAvailable Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search:\nDownload - MSI Package Zipped DLLs Download - DLLs NuGet - NuGet Install Documentation - API docs Examples/Plugins/Showcases - Source Code Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to GroupDocs.Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/groupdocs.search-.net-17.3.0-optimizes-fuzzy-regex-search/","summary":"We are really excited to announce the release of GroupDocs.Search for .NET 17.3.0 API. This regular monthly release comes up with around nine features, bug fixes and enhancements. Version 17.03 of the API has optimized the fuzzy and regex search functionality. The API now supports all the methods in previous index versions. Well, that\u0026rsquo;s not just all! the API has also added some exciting features like implementation of numeric range search feature, limiting the number of search results and implementation of functions about the relationship between max mistake count and word length for Fuzzy Search.","title":"GroupDocs.Search for .NET 17.3.0 Optimizes Fuzzy and Regex Search"},{"content":"\rTeam GroupDocs is really pleased to announce the release of GroupDocs.Metadata for .NET version 17.3.0. There are four enhancements and one new feature introduced in this regular monthly release. GroupDocs.Metadata for .NET now allows its users to read thumbnails in supported document formats. The API has been enhanced to update and remove EXIF metadata faster. Not only this, the API has also been improved to load only the existing metadata keys in PDF class beside adding the ability to lazy load Document info property for Document formats. So, what are you waiting for? simply download the latest release and enjoy a better experience with the API through the features and enhancements introduced in this version.\nGroupDocs.Metadata for .NET 17.03 - New FeaturesVersion 17.3.0 of GroupDocs.Metadata for .NET API has introduced a single feature related to reading thumbnails. The API now allows its users to read thumbnails in documents formats. More details about the supported formats and how a thumbnail is read can be found here. For details about the features supported by the API, please visit Features Overview.\nThe API - EnhancementsGroupDocs.Metadata for .NET introduces the following enhancements in version 17.03 of the API: Load DocumentInfo property using lazy loading pattern in document formats Load only existing metadata keys into PdfMetadata class Faster deleting of EXIF metadata Faster updating of EXIF metadata Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Download - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/read-thumbnails-document-formats-using-groupdocs.metadata-.net-17.3/","summary":"Team GroupDocs is really pleased to announce the release of GroupDocs.Metadata for .NET version 17.3.0. There are four enhancements and one new feature introduced in this regular monthly release. GroupDocs.Metadata for .NET now allows its users to read thumbnails in supported document formats. The API has been enhanced to update and remove EXIF metadata faster. Not only this, the API has also been improved to load only the existing metadata keys in PDF class beside adding the ability to lazy load Document info property for Document formats.","title":"Read Thumbnails in Document Formats Using GroupDocs.Metadata for .NET 17.3.0"},{"content":"\rWe are really pleased to announce the monthly release of GroupDocs.Text for .NET 17.03 API. This release comes up with five new features. GroupDocs.Text has extended the Media type detector class and the API is now able to detect ZIP containers and EPUB documents. Not only this, the latest release has improved the handling for EPUB documents and allows its users to extract text and highlights beside adding the functionality to search for some text in an EPUB document. We highly recommend you to download the latest version and try out all the amazing features introduced in version 17.03 of the GroupDocs.Text for .NET API.\nGroupDocs.Text For .NET 17.03 - New Features The following new features have been introduced in version 17.03 of the API:\nAbility to detect EPUB documents and ZIP containers Ability to extract metadata from EPUB documents Ability to search a text in EPUB documents Ability to extract highlights from EPUB documents For more information, please see the API features\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Text:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples - Github Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Text Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/parser/groupdocs.text-.net-17.03.0/","summary":"We are really pleased to announce the monthly release of GroupDocs.Text for .NET 17.03 API. This release comes up with five new features. GroupDocs.Text has extended the Media type detector class and the API is now able to detect ZIP containers and EPUB documents. Not only this, the latest release has improved the handling for EPUB documents and allows its users to extract text and highlights beside adding the functionality to search for some text in an EPUB document.","title":"EPUB Documents Now Fully Supported in GroupDocs.Text for .NET 17.03.0"},{"content":"\rIn order to enhance developers experience, we are pleased to announce a monthly release of GroupDocs.Assembly for Java 17.3.0. This release comes with valuable features that enhance API usability. Now, the document assembling API supports XML files of general form. We would recommend you to download and integrate this latest release.\nGroupDocs.Assembly for Java 17.3.0 - FeaturesFollowing features are introduced in the latest release: Support document assembly for Plain Text file formats Support document assembly for HTML file formats Support document assembly for XML files of general form Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly: Download - Jar File Documentation - API Documentation Examples/Plugins/Showcases - Github source code examples Product Support Forum - Technical Support Forum for GroupDocs.Assembly FeedbackWe\u0026rsquo;d like to hear your valuable feedback. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/assembly/introducing-groupdocs.assembly-java-17.3.0/","summary":"In order to enhance developers experience, we are pleased to announce a monthly release of GroupDocs.Assembly for Java 17.3.0. This release comes with valuable features that enhance API usability. Now, the document assembling API supports XML files of general form. We would recommend you to download and integrate this latest release.\nGroupDocs.Assembly for Java 17.3.0 - FeaturesFollowing features are introduced in the latest release: Support document assembly for Plain Text file formats Support document assembly for HTML file formats Support document assembly for XML files of general form Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"Document Assembly Support for HTML File formats in GroupDocs.Assembly for Java 17.3.0"},{"content":"\rAt GroupDocs we are always keen to simplify the API usage for our customers. Keeping that in view team GroupDocs is pleased to release a new simple, efficient and, user friendly showcase project for GroupDocs.Viewer for .NET API.We would recommend you to clone this showcase project from GitHub and provide you valuable feedback.\nLet\u0026rsquo;s explore key highlights in this new user interface.\nModern Look-and-FeelThe look and feel has been completely revamped using Material Design. Desktop, Tablet, PhoneMobile responsiveness is built into the new app. It works fine with all kind of screens ranging from phone, tablet, desktop and even retina display. When you move from large screen to smaller, the viewer will automatically re-arrange its layout to adjust into the available area. Cross-browser CompatibilityThe app is compatible with famous browsers including Internet Explorer. You will get same user experience when using it in any modern day web browser. HTML-based RenderingThe document is rendered in HTML mode and loads very quickly as compared to image-based rendering. This also enables you to copy-paste text from the document. ThumbnailsThe left sidebar of viewer allows you to preview thumbnails of document pages. You can jump to any document page by clicking on its thumbnail. DownloadThe app provides you a button on top toolbar to download and save the original document. You can also download a PDF of document, which can be later used for printing. Pixel-perfect renderingGroupDocs and its upstream products of Aspose are famous for its accurate rendering. The app delivers same promises of GroupDocs and renders the document with high precision. Unlike our previous app, the document is rendered in isolated environment so that the HTML/JS/CSS of app does not conflict with CSS of document itself. Open Multiple FilesThe top toolbar allows the user to switch between available files to open. The list of available files is populated from server automatically. To add new files to the list, just put them in storage directory. Open SourceThe best part is that full source code of the app is available to download from GitHub. You can also contribute to the app by sending a pull-request. API FeaturesThe app covers most APIs of GroupDocs.Viewer for .NET, which allows anyone to see how to use same API in their own apps. Easy IntegrationThe app can be easily embedded or integrated with another app of your choice. You can either use IFRAME or embed it as AngularJS Module. Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/releasing-new-modern-ui-groupdocs.viewer-.net/","summary":"At GroupDocs we are always keen to simplify the API usage for our customers. Keeping that in view team GroupDocs is pleased to release a new simple, efficient and, user friendly showcase project for GroupDocs.Viewer for .NET API.We would recommend you to clone this showcase project from GitHub and provide you valuable feedback.\nLet\u0026rsquo;s explore key highlights in this new user interface.\nModern Look-and-FeelThe look and feel has been completely revamped using Material Design.","title":"Introducing Modern UI for GroupDocs.Viewer for .NET"},{"content":"\rWe are glad to announce another monthly release of GroupDocs.Comparison for .NET 17.2.0 API with eight new features like support of Imaging DjVu file format, Formulas, Smart Art and image comparison in spreadsheet document introduced, also providing support for \u0026ldquo;VBA Controls\u0026rdquo; in Document Comparison API v17.2.0. This monthly release is adding two improvements like \u0026ldquo;Improve comparison changes detection for Paragraphs\u0026rdquo; along with five major fixes. Detailed information is listed below. Click here to download the latest API.\nGroupDocs.Comparison for .NET 17.2.0 - Major ChangesThis monthly release of GroupDocs.Comparison for .NET 17.2.0 introducing new features and improvements, like Formulas, Smart Art comparison support and Integrate Metered licensing, along with improvements and fixes. Here are some highlights: Comparison API for .NET 17.2.0 - New Features Integrate Metered licensing Support of comparing Text Font in Watermarks in PDF document Added support for Formulas for spreadsheet Comments support for Spreadsheet Images Comparison in spreadsheet Support for Smart Art in spreadsheet Chart support for spreadsheet VBA Controls support for spreadsheet Document Comparison API for .NET 17.2.0 - ImprovementsThese are the features that are improved in the latest version of the GroupDocs.Comparison API. Added improved support of Imaging DjVu Improved comparison changes detection for Paragraphs Document Comparison API - FixesThis is the list of fixes done in the latest version of the GroupDocs.Comparison API for .NET 17.2.0. Fixd bug when some lines are deleted or inserted where it should not be like when first line of paragraph don\u0026rsquo;t have indent but should have component change its page but dont change its position but should be first line of paragraph use as not paragraph line text from tables use twice with simple paragraphs For more details about supported document formats, please visit Features Overview. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API: Downloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples FeedbackYou are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/formulas-smart-art-vba-controls-support-introduced-groupdocs.comparison-.net-api-v17.2.0/","summary":"We are glad to announce another monthly release of GroupDocs.Comparison for .NET 17.2.0 API with eight new features like support of Imaging DjVu file format, Formulas, Smart Art and image comparison in spreadsheet document introduced, also providing support for \u0026ldquo;VBA Controls\u0026rdquo; in Document Comparison API v17.2.0. This monthly release is adding two improvements like \u0026ldquo;Improve comparison changes detection for Paragraphs\u0026rdquo; along with five major fixes. Detailed information is listed below.","title":"Formulas, Smart Art and VBA Controls support introduced in GroupDocs.Comparison for .NET API v17.2.0"},{"content":"\rWe are is glad to announce another release of GroupDocs.Conversion for .NET v17.2.0. In this monthly release new file formats \u0026ldquo;Mobi and PDF/A\u0026rdquo; are added in supported file format list. This monthly release of Document Conversion API is introducing new features like \u0026quot; Settings for different horizontal and vertical resolution when converting to image formats\u0026quot; and \u0026ldquo;conversion to PDF with setting for PDF file format\u0026rdquo; along with other five fixes. We recommend our users to download the new release and use the new exciting features to enhance their application.\nGroupDocs.Conversion for .NET API 17.2.0This release of GroupDocs.Conversion for .NET 17.2.0 Implemented conversion from Mobi file extension into different document formats, also added new features like Horizontal and Vertical resolutions for conversions to Image formats. 5 fixes are also included in this monthly release. Here is the list of changes made in new release. Features Conversion to PDF with setting for PDF file format Conversion of PDF-A file to PDF Implemented conversion from Mobi Settings for different horizontal and vertical resolution when converting to image Fixes When converting a Cell to Pdf, the sheet is split into multiple pdf pages System.ArgumentOutOfRangeException when adding shape to slide and saving Converting TXT to any format with limiting pages produces wrong output Exception when trying to access SaveOptions.ConvertFileType Conversion from TIF to PNG is not as expected Important Informationkindly note that from this release and onward DPI setting property is no more available for image conversion, new advance property added to set the image Horizontal Resolution and Vertical Resolution. Example code is shown in below snippet. Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - Github source code examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/mobi-pdfa-file-formats-introduced-groupdocs.conversion-.net-v17.2.0/","summary":"We are is glad to announce another release of GroupDocs.Conversion for .NET v17.2.0. In this monthly release new file formats \u0026ldquo;Mobi and PDF/A\u0026rdquo; are added in supported file format list. This monthly release of Document Conversion API is introducing new features like \u0026quot; Settings for different horizontal and vertical resolution when converting to image formats\u0026quot; and \u0026ldquo;conversion to PDF with setting for PDF file format\u0026rdquo; along with other five fixes.","title":"Convert Mobi \u0026 PDF/A file formats Using GroupDocs.Conversion for .NET v17.2.0"},{"content":"\rWe are delighted to announce another monthly release of GroupDocs.Viewer for .NET API with some exciting new features. GroupDocs.Viewer for .NET 17.3.0 supports rendering of VSTX and VSSX file formats. The latest version also supports metered licensing, size adjustment options for CAD files, removing annotation when rendering PDF documents, hide/show tracked changes when rendering Word documents and much more. Please continue to explore more about GroupDocs.Viewer for .NET 17.3.0.\nGroupDocs.Viewer for .NET 17.3.0 - New FeaturesGroupDocs.Viewer for .NET 17.3.0 came up with following new features. VSTX file format support VSSX file format support Size adjustment options when rendering CAD documents Integrate metered licensing Delete annotations when rendering PDF documents Get original PDF document without annotations Hide/show tracked changes when rendering Word documents Hide/show tracked changes when rendering a Word document as PDF For more details, please visit API Features.\n.NET Document Viewer API - Improvements \u0026amp; FixesFollowing are the improvements and fixes in this latest version of the API. Improvement - Removal of the members marked as obsolete in previous versions Bug - Color filling isn\u0026rsquo;t displayed for some objects Bug - IgnoreResourcePrefixForCss is ignored when rendering Word documents Bug - Issue in HtmlResourcePrefix when rendering .msg file Bug - Character\u0026rsquo;s size issue when rendering PDF document into HTML Bug - Email attachments are not found when setting UsePdf to true Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/render-vstx-vssx-formats-groupdocs.viewer-17.3.0/","summary":"We are delighted to announce another monthly release of GroupDocs.Viewer for .NET API with some exciting new features. GroupDocs.Viewer for .NET 17.3.0 supports rendering of VSTX and VSSX file formats. The latest version also supports metered licensing, size adjustment options for CAD files, removing annotation when rendering PDF documents, hide/show tracked changes when rendering Word documents and much more. Please continue to explore more about GroupDocs.Viewer for .NET 17.3.0.","title":"Render VSTX \u0026 VSSX File Formats using GroupDocs.Viewer for .NET 17.3.0"},{"content":"\rGroupDocs team is glad to announce another monthly release where new file formats are added in supported file format list to annotate documents and image. The latest GroupDocs.Annotation for .NET 17.2.0 API now provides support to DICOM, Otp and DjVu with all major annotation types like Text, Area, Point, Watermark and Strikeout Annotations. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.Annotation for .NET.\nGroupDocs.Annotation for .NET - New FeaturesThis monthly release is providing support for all major Annotation types for DICOM, Otp and DjVu file formats. GroupDocs.Annotation for .NET 17.2.0 is also providing Metered licensing. Major changes are lists are given below. For more details about supported documents formats to annotate , please visit this article. DICOM documents support added Otp documents support added DjVu documents support added Metered licensing support introduced Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET FeedbackWe always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/new-exciting-features-introduced-groupdocs.annotation-.net-v17.2.0/","summary":"GroupDocs team is glad to announce another monthly release where new file formats are added in supported file format list to annotate documents and image. The latest GroupDocs.Annotation for .NET 17.2.0 API now provides support to DICOM, Otp and DjVu with all major annotation types like Text, Area, Point, Watermark and Strikeout Annotations. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.","title":"DICOM, Otp and DjVu file formats Support included in GroupDocs.Annotation for .NET v17.2.0"},{"content":"\rAt GroupDocs, we are always keen to broaden the usability of our APIs across multiple platforms. Keeping that in mind, we are pleased to release GroupDocs.Assembly for Java, a simpe document automation and report generation API that is materialized with multitude of extinct features that you may not have experience before. Such as, support of multiple data sources, multitude of supported file formats. We would encourage you to explore the API and share your valuable feedback.\nReport Generation API - ArchitectureThe first and foremost thing that is considered while shaping the API is to make it UI-Agnostic. We used object oriented approach to simplify the classes access and implementation process in your projects. Hence, document generation is no longer dependent on any GUI or tool, thus enables you to use GroupDocs.Assembly for Java 17.1.0 in a larger number of scenarios. Document Automation API - Supported Features API supports multiple file formats. Hence, it allows to create template in any supported file/document format. Support of multiple data sources makes the process of report generation quite easy by fetching data from different date nodes/sources. Data manipulation capabilities like Formulas, Sequential data operations, Built-in data relation support and many others Easy template syntax. Less coding effort. For instance, generate a bulleted list report. Zero Dependency on any External Software/ToolGroupDocs.Assembly Engine itself does not require any additional software/tool to perform its operations. However, you will require Microsoft Office/Open Office Writer in order to create templates just like you create documents. GroupDocs.Assembly will accept a template document and data source as input, assemble data with the template by evaluating the template syntax and then generate report in the same document format as that of template. In order to see how to create various types of reports, please visit Developer Guide. An Example Business Case and the Reporting RequirementsIt is impractical to automate countless daily basis transactions manually and finalize a report. GroupDocs.Assembly for Java 17.1.0 is here to make it possible with little efforts. In order to get developers learn easily and quickly, we have explored the common business case of a typical Manager-Client Contract System. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly: Download - Jar File Documentation - API Documentation Examples/Plugins/Showcases - Github source code examples Product Support Forum - Technical Support Forum for GroupDocs.Assembly FeedbackWe\u0026rsquo;d like to hear your valuable feedback. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/assembly/releasing-next-generation-groupdocs.assembly-java-17.1.0-api/","summary":"At GroupDocs, we are always keen to broaden the usability of our APIs across multiple platforms. Keeping that in mind, we are pleased to release GroupDocs.Assembly for Java, a simpe document automation and report generation API that is materialized with multitude of extinct features that you may not have experience before. Such as, support of multiple data sources, multitude of supported file formats. We would encourage you to explore the API and share your valuable feedback.","title":"Generate and Automate Documents using Multiple Data Sources in Java"},{"content":"It is an exciting moment for me to announce that a new UI for GroupDocs.Viewer for Java has been released. Re-written from scratch with usability in mind, the new user interface has a good look, better user experience and a neat feeling. GroupDocs.Viewer for Java is an API to render vast variety of documents into HTML and images. It allows you to convert pages of a document into separate HTML or image files which can be later be used in your application. Let’s discuss what is special about this release.\nModern Look-and-FeelThe look and feel has been completely revamped using Material Design. Desktop, Tablet, PhoneMobile responsiveness is built into the new app. It works fine with all kind of screens ranging from phone, tablet, desktop and even retina display. When you move from large screen to smaller, the viewer will automatically re-arrange its layout to adjust into the available area. Cross-browser CompatibilityThe app is compatible with famous browsers including Internet Explorer. You will get same user experience when using it in any modern day web browser. HTML-based RenderingThe document is rendered in HTML mode and loads very quickly as compared to image-based rendering. This also enables you to copy-paste text from the document. ThumbnailsThe left sidebar of viewer allows you to preview thumbnails of document pages. You can jump to any document page by clicking on its thumbnail. DownloadThe app provides you a button on top toolbar to download and save the original document. You can also download a PDF of document, which can be later used for printing. Pixel-perfect renderingGroupDocs and its upstream products of Aspose are famous for its accurate rendering. The app delivers same promises of GroupDocs and renders the document with high precision. Unlike our previous app, the document is rendered in isolated environment so that the HTML/JS/CSS of app does not conflict with CSS of document itself. Open Multiple FilesThe top toolbar allows the user to switch between available files to open. The list of available files is populated from server automatically. To add new files to the list, just put them in storage directory. Open SourceThe best part is that full source code of the app is available to download from GitHub. You can also contribute to the app by sending a pull-request. API FeaturesThe app covers most APIs of GroupDocs.Viewer for Java, which allows anyone to see how to use same API in their own apps. Easy IntegrationThe app can be easily embedded or integrated with another app of your choice. You can either use IFRAME or embed it as AngularJS Module. Additional ResourcesFollowing resources will help you to download, learn, try and get technical support. Product Home – GroupDocs.Viewer for Java. Documentation – Product Documentations. Product Support Forum – Technical Support Forum for GroupDocs.Viewer. Examples/Plugins/Showcases – Github source code examples. FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/announcing-modern-ui-groupdocs.viewer-java/","summary":"It is an exciting moment for me to announce that a new UI for GroupDocs.Viewer for Java has been released. Re-written from scratch with usability in mind, the new user interface has a good look, better user experience and a neat feeling. GroupDocs.Viewer for Java is an API to render vast variety of documents into HTML and images. It allows you to convert pages of a document into separate HTML or image files which can be later be used in your application.","title":"Announcing a new Modern UI for GroupDocs.Viewer for Java"},{"content":"\rGroupDocs team is always looking for the ways to provide improved features and make the GroupDocs.Viewer for .NET API more rich and straightforward. The brand new GroupDocs.Viewer for .NET release, 17.2.0 comes up with 11 key improvements and bug fixes. Not only this, it also supports rendering of LaTeX format and password protected MPP(2003) files. You can download the version 17.2.0 for an improved experience.\nGroupDocs.Viewer for .NET 17.2.0 - New FeaturesBelow are the new features that are introduced in GroupDocs.Viewer for .NET 17.2.0. Rendering password-protected MPP(2003) files LaTeX file format support For more details, please visit API Features.\n.NET Document Viewer API - Improvements \u0026amp; FixesGroupDocs.Viewer for .NET 17.2.0 includes following improvments and bug fixes. Improvement - Addition of {resource-name} pattern to HtmlOptions.HtmlResourcePrefix Improvement - Rendering of PDF document\u0026rsquo;s layers separately Improvement - Saving fonts and styles separately when converting Words to Html Improvement - Implementation of CountPagesToRender and PageNumbersToRender properties in RenderOptions class Improvement - Implementation of IDisposable for container classes Fix - Incorrect conversion from DOCX to PDF Fix - Header-links in PDF files do not work Fix - Exception when loading Tex file from stream Fix - GroupDocs.Foundation dependency exception in SharePoint 2013 Fix - Background image is missing when converting to image Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/groupdocs.viewer-.net-17.2.0/","summary":"GroupDocs team is always looking for the ways to provide improved features and make the GroupDocs.Viewer for .NET API more rich and straightforward. The brand new GroupDocs.Viewer for .NET release, 17.2.0 comes up with 11 key improvements and bug fixes. Not only this, it also supports rendering of LaTeX format and password protected MPP(2003) files. You can download the version 17.2.0 for an improved experience.\nGroupDocs.Viewer for .NET 17.2.0 - New FeaturesBelow are the new features that are introduced in GroupDocs.","title":"Key Improvements and Bug Fixes in GroupDocs.Viewer for .NET 17.2.0"},{"content":"\rTeam GroupDocs is really excited to announce the monthly release of GroupDocs.Signature for .NET 17.2.0. About 30 improvements, numerous new features and fixes are introduced in this release. GroupDocs.Signature for .NET 17.2.0 provides various options for dealing with a signature\u0026rsquo;s appearance. The API implements rotation,transparency,size adjustment \u0026amp; opacity for a signature and adds the ability to verify a Pdf document signed with text sticker/annotation signature. Simply download this latest release and try out all the exciting features introduced in this release.\nThe e-Signature API - New FeaturesThe following new features have been introduced in version 17.2.0 of GroupDocs.Signature for .NET API: Implement Text Signature Size Adjustments for Slides Implement Text Signature Size Adjustments for Words Implement Text Signature Size Adjustments for Cells Implement Text Signature Size Adjustments for PDF Implement extended properties for Text Stamp Implementation signature of Pdf Documents Implement Text Signature Opacity for Words Documents Implement Text Signature Opacity for Slides Documents Implement verification for Pdf Text Sticker Signature Implement verification for Pdf Text Annotation Signature Implement alternative Text Signature implementation as Sticker (TextAnnotation) for Pdf Documents Implement Image Signature free angle rotation for Slides Implement Image Signature free angle rotation for Words Implement Image Signature free angle rotation for Cells Implement Image Signature free angle rotation for PDF Implement Image Signature Size Adjustments for Cells Implement Image Signature rotation for Slides Implement Image Signature rotation for Cells Implement Image Signature rotation for Words Implement Image Signature rotation for PDF Implement Text Signature rotation for Slides Implement Text Signature rotation for Cells Implement Text Signature rotation for Words Implement Text Signature rotation for PDF GroupDocs.Signature for .NET - Bug FixesFollowing bugs have been fixed in the latest release of the API: Multiple signature options for Words Documents are intersecting in same Word Node When processing Pdf document with Digital Signature in iterative mode document saved incorrectly Apply lower case for output file extension Fix background appearance of Text Annotation of Pdf Documents Pages Pdf Text Verification doesn\u0026rsquo;t get list of Annotations from Pdf Document E-Signing API : Available Channels and ResourcesHere are a few channels and resources for you to learn, try and get technical support on Document Signing API for .NET: Download - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/signature/groupdocs.signature-17.2.0/","summary":"Team GroupDocs is really excited to announce the monthly release of GroupDocs.Signature for .NET 17.2.0. About 30 improvements, numerous new features and fixes are introduced in this release. GroupDocs.Signature for .NET 17.2.0 provides various options for dealing with a signature\u0026rsquo;s appearance. The API implements rotation,transparency,size adjustment \u0026amp; opacity for a signature and adds the ability to verify a Pdf document signed with text sticker/annotation signature. Simply download this latest release and try out all the exciting features introduced in this release.","title":"Add Rotation to Signature Appearance Using GroupDocs.Signature 17.2.0"},{"content":"\rTeam GroupDocs is really delighted to announce the monthly release of version 17.02.0 of the GroupDocs.Text for .NET API. This version comes up with a number of new features along with an enhancement related to using highlight extraction modes with search functionality. GroupDocs.Text for .NET API has improved the search functionality by adding the ability to search for some text using regular expression and searching a whole word. What\u0026rsquo;s more exciting is the addition of features dealing with the extraction of highlighted text in documents. You can now extract a highlight to a line\u0026rsquo;s start/end or with the limited words count. We recommend you to download the latest version and check out all the improvements and features introduced in this release.\nGroupDocs.Text For .NET- New Features GroupDocs.Text for .NET introduces the following new features in this release:\nSupport for extracting text from EPUB documents Ability to search with regular expression Ability to search the whole word Ability to extract a highlight to a line\u0026rsquo;s start/end Ability to extract a highlight with the limited words count More information about the API and its features can be found here.\nGroupDocs.Text For .NET- Enhancements GroupDocs.Text for .NET has introduced the following enhancement in version 17.02.0 of the API:\nImplement the ability to use all highlight extraction modes with search functionality Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Text:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples - Github Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Text Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/parser/groupdocs.text-.net-17.02.0/","summary":"Team GroupDocs is really delighted to announce the monthly release of version 17.02.0 of the GroupDocs.Text for .NET API. This version comes up with a number of new features along with an enhancement related to using highlight extraction modes with search functionality. GroupDocs.Text for .NET API has improved the search functionality by adding the ability to search for some text using regular expression and searching a whole word. What\u0026rsquo;s more exciting is the addition of features dealing with the extraction of highlighted text in documents.","title":"Use All Highlight Extraction Modes with Search Functionality in GroupDocs.Text for .NET 17.02.0"},{"content":"\rWe are really excited to announce the release of GroupDocs.Metadata for .NET version 17.02.0. The latest release comes up with a number of new features and enhancements. Users can now export the extracted metadata of various formats to a CSV or Excel file. The GroupDocs.Metadata API now supports video format too. Moreover, detecting DICOM format, reading Photoshop layers of a PSD format etc are some other enhancements introduced in this version of the API. We recommend you to download the latest release and enjoy the features and enhancements introduced in this version.\nThe API - EnhancementsGroupDocs.Metadata for .NET introduces the following enhancements while dealing with the content type properties of an Excel Spreadsheet in version 17.02: Ability to export Excel content type properties to csv, excel Ability to process Excel content type properties using XlsMetadata class (add, remove, clear operations) GroupDocs.Metadata for .NET 17.02 - New Features Version 17.02.0 of the GroupDocs.Metadata API comes up with a number of new features. Not just Audio, the API is now capable of extracting metadata from video formats like AVI format. The major features introduced in this release are as follows:\nAbility to read Photoshop layers of PSD format Ability to detect AVI video format Ability to read header of AVI video format Ability to export metadata of AVI format to csv, excel Ability to use Dynabic.Metered account Ability to detect DICOM format Ability to read metadata of DICOM format Ability to export DICOM metadata to csv, excel file Ability to read ByteOrder (little-endian, big-endian) for image formats For details, please visit Features Overview.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Download - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/groupdocs.metadata-.net-17.2.0-now-supports-metadata-export/","summary":"We are really excited to announce the release of GroupDocs.Metadata for .NET version 17.02.0. The latest release comes up with a number of new features and enhancements. Users can now export the extracted metadata of various formats to a CSV or Excel file. The GroupDocs.Metadata API now supports video format too. Moreover, detecting DICOM format, reading Photoshop layers of a PSD format etc are some other enhancements introduced in this version of the API.","title":"GroupDocs.Metadata for .NET 17.2.0 Now Supports Metadata Export"},{"content":"\rWe as GroupDocs team is excited to announce another monthly release of GroupDocs.Conversion for .NET v17.1.0. In this release new file format \u0026ldquo;XPS, SVG and OTS\u0026rdquo; are added in supported file format list. Monthly release of Document Conversion API is adding new features like \u0026quot; Metered licensing and conversion to gray-scale image\u0026quot;. Also introducing some improvements like \u0026ldquo;memory handling on save and Improved output file name if converting from/to page\u0026rdquo; along with other four fixes. We recommend our users to download the new release and use the new exciting features to enhance their application.\nGroupDocs.Conversion for .NET API 17.1.0In this monthly release of GroupDocs.Conversion for .NET 17.1.0 added support for SVG,OTS and XPS file conversion into different document formats and also added new features like Metered licensing and Gray-scale image conversion, along with Improvements and fixes. Here is the list of changes made in new release. Features Metered licensing Implement conversion to Grayscale image Implement conversion from OTS Implement conversion to XPS Implement conversion to SVG Improvements Improving memory handling on save Improving output file name if converting from/to page Improve memory handling in documents Fixes Multipage Tiff is not converted properly to Pdf Page mode conversions do not work HideWordTrackedChanges not respected when converting from word Dpi resolution not respected when converting Cells to Image Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - Github source code examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/convert-xps-svg-ots-formats-groupdocs.conversion-.net-api-v17.1.0/","summary":"We as GroupDocs team is excited to announce another monthly release of GroupDocs.Conversion for .NET v17.1.0. In this release new file format \u0026ldquo;XPS, SVG and OTS\u0026rdquo; are added in supported file format list. Monthly release of Document Conversion API is adding new features like \u0026quot; Metered licensing and conversion to gray-scale image\u0026quot;. Also introducing some improvements like \u0026ldquo;memory handling on save and Improved output file name if converting from/to page\u0026rdquo; along with other four fixes.","title":"Convert to XPS, SVG and OTS  formats with GroupDocs.Conversion for .NET API v17.1.0"},{"content":"\rTeam GroupDocs is keen to announce another release of GroupDocs.Conversion for Java 16.10.1. Numerous customers reported bugs are resolved in this release. Moreover, API encompasses multitude of new features. Support of converting documents to and from PSD format is introduced. Using latest version of the API developers can implement multi-thread conversion as well. We would recommend you to download and experience GroupDocs.Conversion for Java 16.10.1 and share your feedback.\nDocument Conversion API for Java - Features Implement document conversion from stream with auto detect source file type Autodetect source document type when converting from stream Report conversion progress Return all supported conversions types with single method When converting to PDF return each page in separate stream When converting to HTML return each page in separate stream Place watermark in the converted document Add support for converting to PSD format Add support for converting from PSD format Implement ConversionCompleted event with conversion details ConversionStart event Introducing two public interfaces IConversionProgressListener and IConversionStatusListener Show grid lines when converting Excel files Show hidden sheets when converting Excel files Option for removing comments when converting slides documents Implement SVG document conversion Implement XPS document conversion Implement conversion to ICO Option when converting from Words for show/hide markup and tack changes Html to image conversion Convert from CAD documents to Cells, Html, Image, Pdf, Slides, Words Setting default Fonts Add FixedLayout option to Words to Html conversions Add FixedLayout option to Pdf to Html conversions Implement functionality for convert Project file to multipage Tiff file GroupDocs Document Conversion API - Improvements Return conversion guid in ConversionProgressEventArgs GroupDocs.Conversion for Java 16.10.1 - Bug Fixes Client Response - In-Proper conversion From PPTX to PDF, Image and Word Document formats Exception when converting from ODP to PPT and PPS While Converting Xlsx file to HTML with HtmlSaveOptions Specific Pages (Sheets) does not work Client Response - HTML to Doc and Docx is not proper for Headings and contents are mixed Client Response - Only first page converts to PNG from TIF file (With and Without License) Client Response - Convert to HTML from Excel, PDF, MS Word overlaps the images AND some of Words with styling Can not find CallBack function to get Conversion Progress for MVC/WebForms Applications Client Respose - Could not open the file stream on azure Client Response - FileType not supported Exceptions are not handled Client Response - Error for Empty Input Documents as Stream for Conversion xlsx to png Object null Reference exception Conversion from XLSX to PNG/JPG/HTML not Working Properly Converted File Name issue in Excel file to PNG Converting large XLS file to image with UsePdf=false is producing blurred images Missing pages when converting XLS file to image with UsePdf=true Excel to PNG/JPG/JPEG Low Image Quality Dpi not effecing PDF to Image conversion - target resolution is not changed when setting Dpi Words to Image conversion - target resolution is not changed when setting Dpi Slides to Image conversion - target resolution is not changed when setting Dpi Tasks to Image conversion - target resolution is not changed when setting Dpi Image to Image conversion - target resolution is not changed when setting Dpi Diagram to Image conversion - target resolution is not changed when setting Dpi Image to Image conversion - target resolution is not changed when setting Dpi Diagram to Image conversion - target resolution is not changed when setting Dpi Txt to Pdf is causing \u0026ldquo;Unknown format\u0026rdquo; exception % symbol in the file name trowns an exception Exception in HTML to Excel Conversion Convert Excel from Html - Table with background colour and some html controls are not converted properly Coversion with document as Stream input not working Multithread conversion is not working Unable to convert excel files containing empty sheets Converting excel file to HTML not displaying the entire excel file After conversion can\u0026rsquo;t render first page , throws an error \u0026ldquo;Out of Memory\u0026rdquo; Conversion .pptx to .pdf doesn\u0026rsquo;t work with multi-threading Header and footer incorrect rendered after conversion to .html Using resolution parameter together height and width parameters Count pages does not match specified number of pages after conversion Static logger binder warning Converted tiff file has incorrect page count in some TIFF viewers Incorrect converts to png format Conversion Jpg to Png trows an error \u0026ldquo;LoadingException\u0026rdquo; Incorrectly resizing documents when converting to image Aspose.Words 15.8.0: Lost text after convert Incorrect order of the documents after merging Output file after CCITT4 compression not rendered well in IBM Viewer and Google viewer Path to image isn\u0026rsquo;t correct after conversion .xls document to .html Image resolution/size is not effecting by changing DPI com.groupdocs.conversion.exception.InternalException: Can\u0026rsquo;t convert to image! for conversion from .xls to multipage .tiff file ConversionHandler not releasing the source file\u0026rsquo;s resource Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nAPI Home - GroupDocs.Conversion for Java Download - GroupDocs.Conversion for Java Download Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Product Support Forum - Technical Support Forum for GroupDocs.Conversion ","permalink":"https://blog.groupdocs.com/conversion/groupdocs.conversion-for-java-16.10.1-released/","summary":"Team GroupDocs is keen to announce another release of GroupDocs.Conversion for Java 16.10.1. Numerous customers reported bugs are resolved in this release. Moreover, API encompasses multitude of new features. Support of converting documents to and from PSD format is introduced. Using latest version of the API developers can implement multi-thread conversion as well. We would recommend you to download and experience GroupDocs.Conversion for Java 16.10.1 and share your feedback.","title":"GroupDocs.Conversion for Java 16.10.1 Implements PSD Conversion"},{"content":"\rWe are excited to announce another monthly release where new document formats is added in supported format list for annotating images. The latest GroupDocs.Annotation for .NET 17.1.0 API now provides support to GIF, TIFF, BMP and JPEG with all major annotation types like Text, Area, Point, Watermark and Strikeout Annotations. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.Annotation for .NET.\nGroupDocs.Annotation for .NET - New FeaturesIn this monthly release support for all major Annotation types in Image file with different formats like GIF, TIFF, BMP and JPEG are introduced. . GroupDocs.Annotation for .NET 17.1.0 is also providing fixes for spreadsheet format. Major changes are lists are given below. Text Annotation Point Annotation Area Annotation Resource Redaction Annotation TextField Annotation Polyline Annotation Watermark Annotation Underline Text Annotation Text Strikeout Annotation Document Annotation API - Improvements \u0026amp; Fixes While exporting Slide document Text Field annotation hasn\u0026rsquo;t text Fixed background when import Resource Redaction annotation for slides For more details about supported documents formats to annotate , please visit this article.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET FeedbackWe always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/annotate-gif-tiff-bmp-jpeg-groupdocs.annotation-.net-16.12.0/","summary":"We are excited to announce another monthly release where new document formats is added in supported format list for annotating images. The latest GroupDocs.Annotation for .NET 17.1.0 API now provides support to GIF, TIFF, BMP and JPEG with all major annotation types like Text, Area, Point, Watermark and Strikeout Annotations. We recommend our user to download the latest API release to use new exciting features and enhance their application with GroupDocs.","title":"Annotate GIF, TIFF, BMP and JPEG formats using GroupDocs.Annotation for .NET v17.1.0"},{"content":"\rGroupDocs team is excited to announce another monthly release of GroupDocs.Comparison for .NET 17.1.0 API with seven new features like Apply or Discard changes for spreadsheet, PDF file formats and support for hyperlink comparison is also introduced along with five improvements like change detection for paragraphs in PDF document, deleted or inserted borders comparison in Spreadsheet and change of table comparison are included. This monthly release also has two major fixes for PDF document . Major changes are done for spreadsheet, PDF and words document formats. Detailed information is listed below. Click here to download the latest API.\nGroupDocs.Comparison for .NET 17.1.0 - Major ChangesIn this monthly release of GroupDocs.Comparison for .NET 17.1.0 new features and improvements are introduced, like support for Apply or Discard comparison changes for spreadsheet and PDF file format, Shapes Comparison for Spreadsheet format, Watermark Comparison for PDF document format etc.. along with improvements. Here are some highlights: Comparison API for .NET 17.1.0 - New Features Add support for Apply/Discard changes for PDF document Support for Watermarks in PDF document Hyperlinks comparison for spreadsheet Comments support for Spreadsheet support for Text Box in spreadsheet Add support of Apply/Discard changes for spreadsheet Shapes support for spreadsheet Document Comparison API for .NET 17.1.0 - ImprovementsThese are the features that are improved in the latest version of the GroupDocs.Comparison API. Add borders for deleted and inserted cells and Range of cells Fix problem when moving modified table into new page and not deleting previous version of added table Improve Trim paragraphs by pages after some change in absorbing paragraphs Improve comparison changes detection for Paragraphs for PDF comparison quality for images in header, footer, setting coordinates for components and paragraphs by pages for PDF Document Comparison API - FixesThis is the list of fixes done in the latest version of the GroupDocs.Comparison API for .NET 17.1.0. Set type change for paragraph runs after page break for PDF Fix cells appearance after critical update for Aligner compares and Document builder For more details about supported document formats, please visit Features Overview. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API: Downloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples FeedbackYou are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/apply-discard-comparison-changes-groupdocs.comparison-.net-api-v17.1.0/","summary":"GroupDocs team is excited to announce another monthly release of GroupDocs.Comparison for .NET 17.1.0 API with seven new features like Apply or Discard changes for spreadsheet, PDF file formats and support for hyperlink comparison is also introduced along with five improvements like change detection for paragraphs in PDF document, deleted or inserted borders comparison in Spreadsheet and change of table comparison are included. This monthly release also has two major fixes for PDF document .","title":"Apply or Discard Comparison  Changes With GroupDocs.Comparison for .NET API v17.1.0"},{"content":"\rGroupDocs team is pleased to announce exciting new features in Front End for GroupDocs.Text for .NET API. In this new release, we are providing user ability to search text within document and extract highlighted text. Furthermore, user can now extract text from ZIP containers and password protect OneNote sections.Using this Front End, user can simply upload file and apply features on it using tool buttons. The developers are allowed to modify the application to fulfill their own requirements. This project is available at GitHub\nGroupDocs.Text Front End New FeaturesIn this new version of GroupDocs.Text Front End we are introducing following new features: Ability to search a text Ability to extract highlight Support for ZIP containers Ability to open password-protected OneNote sections Here is a snap shot of our sample GroupDocs.Text MVC Front End: Pre-Requisites Visual Studio 2012 or later Any latest browsers (Firefox, Chrome ,IE9 or greater, Safari etc. ) Installation Visual Studio 2012 or later Download the code, open it in MS Visual Studio Update the required or missing libraries from Nuget Set License path in Global.asax.cs Run the code FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/parser/introducing-new-features-groupdocs.text-frontend/","summary":"GroupDocs team is pleased to announce exciting new features in Front End for GroupDocs.Text for .NET API. In this new release, we are providing user ability to search text within document and extract highlighted text. Furthermore, user can now extract text from ZIP containers and password protect OneNote sections.Using this Front End, user can simply upload file and apply features on it using tool buttons. The developers are allowed to modify the application to fulfill their own requirements.","title":"Introducing New Features in GroupDocs.Text Front End"},{"content":"\rIt gives us great pleasure to announce the monthly release of GroupDocs.Search for .NET 17.2.0 API. We have introduced two enhancements and a new feature in this release. The API now supports multiple search features in a single search query. Another exciting feature introduced in this release is the ability to recognize queries written in a different keyboard layout. We suggest you to download the latest API and check out all the features introduced in this release.\nGroupDocs.Search for .NET - New FeaturesGroupDocs.Search for .NET 17.2.0 introduces the following new feature in this release: Ability to recognize the queries written in a different keyboard layout For further details, please visit Features Overview.\nGroupDocs.Search for .NET 17.02 - EnhancementsThe following enhancements have been made to the API in this latest release: Support different search features in one search query Inherit Password dictionary from IEnumerable to make it work like other dictionaries Available Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search: Download - MSI Package Zipped DLLs Download - DLLs NuGet - NuGet Install Documentation - API docs Examples/Plugins/Showcases - Source Code Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search FeedbackIf you have any suggestions, questions, or queries related to GroupDocs.Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts. ","permalink":"https://blog.groupdocs.com/search/groupdocs.search-.net-17.2.0-release/","summary":"It gives us great pleasure to announce the monthly release of GroupDocs.Search for .NET 17.2.0 API. We have introduced two enhancements and a new feature in this release. The API now supports multiple search features in a single search query. Another exciting feature introduced in this release is the ability to recognize queries written in a different keyboard layout. We suggest you to download the latest API and check out all the features introduced in this release.","title":"GroupDocs.Search for .NET 17.2.0 Recognizes Queries in Different Keyboard Layout"},{"content":"We are really pleased to announce another monthly release of GroupDocs.Signature for .NET 17.01.0. The latest version of the API comes up with a number of new features, enhancements and bug fixes; ability to check, load and verify digitally signed documents, ability to name the output file in save options, adjust the opacity of text signatures etc are just to name a few. We would suggest you to download this latest release and check out all the improvements we have made to the API.\nGroupDocs.Signature for .NET 17.01.0 - New Features Implement alternative Text Signature implementation as Annotation for PDF Documents Implement ability to setup output file name for Save Options Implement Text Signature Verification for Pdf Documents Implement Unique Identifier of Text Signature for Pdf Documents Provide alternative Text Signature implementation as Image for Slides Documents Provide alternative Text Signature implementation as Image for Words Documents Provide alternative Text Signature implementation as Image for Cells Documents Provide alternative Text Signature implementation as Image for PDF Documents Implement ability to check, load and verify digitally signed Words documents Implement ability to check, load and verify digitally signed Cells documents Implement ability to check, load and verify digitally signed PDF documents Implement Text Signature Opacity for Cells Documents Implement Text Signature Opacity for PDF Documents Implement Image Signature Size Adjustments for Slides Implement Image Signature Size Adjustments for Words Implement Image Signature Size Adjustments for PDF e-Signature API - EnhancementsGroupDocs.Signature for .NET 17.01.0 introduces the following enhancements in this release: Update Digital Verification Options with ability to pass Certificate from Stream Update Digital Signature Options with ability to pass Certificate from Stream Improve logic of Words finding page algorithm Improve logic for cells text and image signature position Provide alternative Text Signature implementation for PDF Documents GroupDocs.Signature for .NET 17.01.0 - Bug Fixes Word Text Signature - Fix wrong alignment Cells Documents Text Signature -Fix Border and Transparency appearance Word Text Signature - Fix Text signature visibility issue Intentions for a PDF document with Text Signature don\u0026rsquo;t work Not able to set PDF/Cells test signature opacity Text signature with font and background options looks wrong Wrong exception\u0026rsquo;s text for wrong password OpenOffice doesn\u0026rsquo;t open .xls with default encryption method. Detection of a type of an encrypted cells file starts an inappropriate exception When saving signed Words Document to different format - signature disappears E-Signing API : Available Channels and ResourcesHere are a few channels and resources for you to learn, try and get technical support on Document Signing API for .NET: Download - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/signature/digital-signature-validation-options-introduced-groupdocs.signature-.net-17.01.0/","summary":"We are really pleased to announce another monthly release of GroupDocs.Signature for .NET 17.01.0. The latest version of the API comes up with a number of new features, enhancements and bug fixes; ability to check, load and verify digitally signed documents, ability to name the output file in save options, adjust the opacity of text signatures etc are just to name a few. We would suggest you to download this latest release and check out all the improvements we have made to the API.","title":"Digital Signature Verification Options Introduced in GroupDocs.Signature for .NET 17.01.0"},{"content":"\rGroupDocs team always works hard to provide great solutions for our users; in this regard we are proudly announcing UI example project for ASP.NET Developers for GroupDocs.Text for .NET API. This UI example is developed to provide a user friendly interface for working with GroupDocs.Text API. Furthermore, all functions are implemented in this example. User can simply upload file and apply features on it using tool buttons. The developers are allowed to modify the application to fulfill their own requirements. This project is available at GitHub\nGroupDocs.Text Front End FeaturesFirst version of GroupDocs.Text Front End introduces the following features: Text Extraction Metadata Extraction Extract text from columns in cells Extract text from rows in cells Extract text from rows and columns in cells Extract table with format Extract text with markdown Detect document encoding Count word statistics Extract text from password protected document Here is a snap shot of our sample GroupDocs.Text MVC Front End: Pre-Requisites Visual Studio 2012 or later Any latest browsers (Firefox, Chrome ,IE9 or greater, Safari etc. ) Installation Visual Studio 2012 or later Download the code, open it in MS Visual Studio Update the required or missing libraries from Nuget Set License path in Global.asax.cs Run the code FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/parser/releasing-new-groupdocs.text-mvc-front-end/","summary":"GroupDocs team always works hard to provide great solutions for our users; in this regard we are proudly announcing UI example project for ASP.NET Developers for GroupDocs.Text for .NET API. This UI example is developed to provide a user friendly interface for working with GroupDocs.Text API. Furthermore, all functions are implemented in this example. User can simply upload file and apply features on it using tool buttons. The developers are allowed to modify the application to fulfill their own requirements.","title":"Releasing new GroupDocs.Text MVC Front End"},{"content":"\rWe are delighted to announce that the first monthly release of GroupDocs.Viewer for .NET for the year 2017 is out and available. Using GroupDocs.Viewer for .NET 17.1.0 users will be able to partially render the large Excel sheets. The latest version also supports the configuration of ViewerConfig class via app.config or web.config file. Furthermore, 9 issues have been fixed in this release. Continue to read more about v17.1.0.\nGroupDocs.Viewer for .NET 17.1.0 - New FeaturesGroupDocs.Viewer for .NET 17.1.0 has come with following new features. Settings to prevent glyphs grouping when rendering PDF documents Partial rendering of large Excel sheets in HTML mode Parameterless ViewerHtmlHandler and ViewerImageHandler constructors Configuration of ViewerConfig class via app.config or web.config file For more details, please visit API Features.\n.NET Document Viewer API - Improvements \u0026amp; FixesIn GroupDocs.Viewer for .NET 17.1.0, we have fixed as well as improved following issues. Improvement - Settings to configure content ordering in resultant HTML document Improvement - Rendering of email documents Fix - Issue in printing radio buttons from HTML page Fix - Links are converted into plain text when converting PDF to HTML Fix - Merged cells in Excel sheet are not displayed as merged in HTML Fix - Alignment of radio button text and checkbox text is not correct Fix - Jumbling words when rendering PDF document to HTML Fix - Rendering of only one page in text(txt) document Fix - Radio buttons are not appearing as \u0026lsquo;selected\u0026rsquo; or \u0026lsquo;checked\u0026rsquo; Fix - Missing characters and invalid formatting when rendering to HTML Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/groupdocs.viewer-supports-partial-rendering-of-excel-sheets/","summary":"We are delighted to announce that the first monthly release of GroupDocs.Viewer for .NET for the year 2017 is out and available. Using GroupDocs.Viewer for .NET 17.1.0 users will be able to partially render the large Excel sheets. The latest version also supports the configuration of ViewerConfig class via app.config or web.config file. Furthermore, 9 issues have been fixed in this release. Continue to read more about v17.1.0.\nGroupDocs.Viewer for .","title":"Partially Render Large Excel Sheets with GroupDocs.Viewer for .NET 17.1.0"},{"content":"\rTeam GroupDocs is really excited to announce the monthly release of GroupDocs.Search for .NET 17.1.0 API. We have introduced four new features in this release. The most notable feature introduced in this release is the functionality to merge indexes. The API has also extended its search functionality and introduces correction of a misspelled search query before searching. The latest API implements homophone dictionary functionality and alias dictionary functionality as well. Download the latest API and check out all the features introduced in this release.\nGroupDocs.Search for .NET - New FeaturesGroupDocs.Search for .NET 17.1.0 introduces the following new features in this release: Ability to use alias dictionary Ability to use homophone dictionary Ability to correct misspelled words in search query before searching Ability to merge indexes For further details, please visit Features Overview.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search: Download - MSI Package Zipped DLLs Download - DLLs NuGet - NuGet Install Documentation - API docs Examples/Plugins/Showcases - Source Code Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search FeedbackIf you have any suggestions, questions, or queries related to GroupDocs.Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts. ","permalink":"https://blog.groupdocs.com/search/groupdocs.search-.net-17.1.0/","summary":"Team GroupDocs is really excited to announce the monthly release of GroupDocs.Search for .NET 17.1.0 API. We have introduced four new features in this release. The most notable feature introduced in this release is the functionality to merge indexes. The API has also extended its search functionality and introduces correction of a misspelled search query before searching. The latest API implements homophone dictionary functionality and alias dictionary functionality as well.","title":"Merge Indexes With GroupDocs.Search for .NET 17.1.0"},{"content":"\rWe are really pleased to announce the monthly release of GroupDocs.Text for .NET API. In this release, we have introduced four new features along with an enhancement related to setting extraction mode. GroupDocs.Text now supports extraction from ZIP containers. Not only this, the latest release provides its users with the functionality to search for some text in documents, extracting highlighted text from documents and opening password-protected OneNote sections. Simply Download the latest version and try out all the amazing features of GroupDocs.Text for .NET 17.01.0 API.\nGroupDocs.Text For .NET- New Features The latest release of GroupDocs.Text for .NET API introduces the following new features:\nAbility to search a text Ability to extract highlight Support for ZIP containers Ability to open password-protected OneNote sections For more information, please see the API features\nGroupDocs.Text For .NET- Enhancements The API has improved the method of setting extraction mode and allows to set extraction mode via enumeration.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Text:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples - Github Source Code Examples Video Tutorials – YouTube Video Tutorials Product Support Forum – Technical Support Forum for GroupDocs.Text Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/parser/groupdocs.text-.net-17.01-introduces-support-zip-containers/","summary":"We are really pleased to announce the monthly release of GroupDocs.Text for .NET API. In this release, we have introduced four new features along with an enhancement related to setting extraction mode. GroupDocs.Text now supports extraction from ZIP containers. Not only this, the latest release provides its users with the functionality to search for some text in documents, extracting highlighted text from documents and opening password-protected OneNote sections. Simply Download the latest version and try out all the amazing features of GroupDocs.","title":"GroupDocs.Text For .NET 17.01.0 Introduces Support For ZIP Containers"},{"content":"\rGroupDocs team is really delighted to announce the release of** GroupDocs.Metadata for .NET version 17.01.0**. The latest release comes up with a number of new features and enhancements. Users can now detect or remove digital signatures from documents. The API has also improved document\u0026rsquo;s information retrieval and implements the ability to recognize file type of a document. And That\u0026rsquo;s not all! The API has also introduced some really exciting enhancements related to power point presentation documents and audio formats. So, what are you waiting for? Simply download the latest version and try out all the exciting features and enhancements introduced in this version.\nGroupDocs.Metadata for .NET 17.01 - New Features In version 17.1.0, we have introduced the following new features.\nAbility to read page count, characters count, words count, page size in document formats Ability to recognize file type of the document format (DOCX, DOC, DOT etc) Ability to detect digital signature in document formats Ability to remove all digital signatures in document formats For details, please visit Features Overview.\nGroupDocs.Metadata for .NET 17.01 - EnhancementsVersion 17.1.0 of the API has improved the metadata related functionalities of a power point document. Besides, it has also introduced some improvements to the MP3 audio format. The details are as follows: Ability to update ContentType, ContentStatus, HyperlinkBase SharedDoc properties in PPTX format Load metadata without loading whole PowerPoint document Ability to read ID3 metadata directly in Mp3 format Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Download - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/releasing-goupdocs.metadata-.net-17.01.0/","summary":"GroupDocs team is really delighted to announce the release of** GroupDocs.Metadata for .NET version 17.01.0**. The latest release comes up with a number of new features and enhancements. Users can now detect or remove digital signatures from documents. The API has also improved document\u0026rsquo;s information retrieval and implements the ability to recognize file type of a document. And That\u0026rsquo;s not all! The API has also introduced some really exciting enhancements related to power point presentation documents and audio formats.","title":"GroupDocs.Metadata for .NET 17.1.0 Now Detects Digital Signatures in Documents"},{"content":"\rIn order to enrich the document comparison experience, team GroupDocs is pleased to release GroupDocs.Comparison for Java 16.11.0 that comes with multitude of new features such as comparison of comments, WordArt objects, forms and many more. API also sums up a lot of improvements and bug fixes. We would recommend you to download latest release of the API and integrate it in your project.\nGroupDocs.Comparison for Java 16.11.0 - New FeaturesAPI comes with following new features: Added page numbers comparison for MS Word Added comparison of group shapes for Word Documents Comparison of comments for MS Word Comparison of WordArt objects in MS Word Comparison of tables in MS Word Comparison of Forms in MS Word Comparison of multi-language in MS Word Object model of Paragraph for PDF Implemented absorber of paragraphs for the basic cases for PDF Added option to compose multiple result list from result lists of each document for MS Word Support comparing multiple documents with track changes for MS Words Added support of absorption of the Page Footer for PDF Added support of absorption of the Page Header for PDF Added apply/discard changes support for multiple result changes list for MS Word Added support for new components: media objects, image positioning for PDF Added support of comparing watermarks for PDF Added support of comparing charts for MS Power Point Presentations Added support of comparing comments for MS Power Point Presentations Added support of style changes detection for MS Power Point Presentations Added support of detection of Picture Frames for MS Power Point Presentations Document Comparison API for Java - ImprovementsFollowing are the features that are improved in the latest version of the GroupDocs.Comparison API: Improve the comparison of tables, Some tables differ on two cell but algorithm not defined the tables as similar for MS Word Improve comparison for contents list for MS Word Improve cells performance for spreadsheets Improve working with tables for PDF implementation of tables absorption for simple cases for PDF Implement the function cleanOperatorsList for PDF Document processing performance improvement for MS Word Divide text into paragraphs by checking if the text fragments are contained in different parent objects for PDF Improved Comparison paragraph absorber for cases with plain text for PDF Improved text comparison support for all Adobe Acrobat formats for PDF Improved compare tables for PDF Improved comparisonParagraphAbsorber for cases with tables for PDF Improved document builder and page mapper for PDF Improved comparisonParagraphAbsorber for cases with plain text for PDF Improved comparison performance for MS Power Point Presentation Extended engine to support all kind of images for MS Power Point Presentation The case the comparison of tables with different results for all formats Added support for new components to new core for PDF GroupDocs.Comparison for Java 16.11.0 - Bug FixesGiven below is the list of bug fixes: Fix bug when you can not open document with tables after comparison for PDF Files generating zero output (no change is detected ) for attached files only for MS Word Some tables differ on two cell but algorithm not defined the tables as similar for PDF The target file is modification of source file but defined as different for MS Word Cannot open result file: graphics objects for MS Word Some images (or graphical objects) are not displayed for MS Word fix function getText of ComparisonCell class for PDF Identical text from neighboring paragraphs is defined as deleted and inserted for MS Word Files are not opened after comparison for MS Power Pint Presentation If content of row is unique then row should be marked as Inserted or Deleted for Spreadsheets The result table structure not conforming to primary table structure for Spreadsheets Exception: The new Child was created from a different document than the one that created this node for MS Word Comparing PDF documents neither generate any error nor the output PDF with Gradle For more details about supported document formats, please visit Features Overview. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for Java API: Downloads-Zipped JARS Documentation -Product Docs Support Forum -Technical Support Forum Example / Plugins-Github source code examples FeedbackYou are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/groupdocs.comparison-java-api-v16.11.0/","summary":"In order to enrich the document comparison experience, team GroupDocs is pleased to release GroupDocs.Comparison for Java 16.11.0 that comes with multitude of new features such as comparison of comments, WordArt objects, forms and many more. API also sums up a lot of improvements and bug fixes. We would recommend you to download latest release of the API and integrate it in your project.\nGroupDocs.Comparison for Java 16.11.0 - New FeaturesAPI comes with following new features: Added page numbers comparison for MS Word Added comparison of group shapes for Word Documents Comparison of comments for MS Word Comparison of WordArt objects in MS Word Comparison of tables in MS Word Comparison of Forms in MS Word Comparison of multi-language in MS Word Object model of Paragraph for PDF Implemented absorber of paragraphs for the basic cases for PDF Added option to compose multiple result list from result lists of each document for MS Word Support comparing multiple documents with track changes for MS Words Added support of absorption of the Page Footer for PDF Added support of absorption of the Page Header for PDF Added apply/discard changes support for multiple result changes list for MS Word Added support for new components: media objects, image positioning for PDF Added support of comparing watermarks for PDF Added support of comparing charts for MS Power Point Presentations Added support of comparing comments for MS Power Point Presentations Added support of style changes detection for MS Power Point Presentations Added support of detection of Picture Frames for MS Power Point Presentations Document Comparison API for Java - ImprovementsFollowing are the features that are improved in the latest version of the GroupDocs.","title":"Releasing GroupDocs.Comparison for Java 16.11.0 - Compare more than just Text in Documents"},{"content":"\rThe GroupDocs team is always motivated to provide extra ordinary solutions to its users, in this regard we are glad to announce the front-end sample project for the ASP.NET MVC developers for GroupDocs.Comparison for .NET API. Although GroupDocs.Comparison for .NET and GroupDocs.Viewer for .NET APIs have been used to develop this UI Example, but mainly the purpose for this release is to empower the developers to write their own document comparison front-end using GroupDocs.Comparison for .NET 3.x. almost all the features have been applied in this project which was given in the old GroupDocs.Comparison for .NET 2.x UI Based API. The developers are allowed to modify the application to fulfill their own requirements. This project is available at github.com.\nSupported Document Comparison FeaturesThe ASP.NET MVC front-end brings end users with tools required for convenient viewing using GroupDocs.Viewer for .NET API and Comparison of a documents using GroupDocs.Comparison for .NET API. The front end provides almost all the common comparison features including: Render Comparisons Search Changes Pagination controls Page thumbnails Accept changes Reject Changes List View Category View Comparison Summary Requirements to Deploy and Run ASP.NET MVC Front-End If you want to run the GroupDocs.Comparison for .NET supported application it doesn’t need any download or installation on client side. End user can render and compare the source and target documents from any standard web-client browser, like IE8+, Mozila Firefox, Chrome, Opera, Safari 5+ and their mobile version. To deploy and properly configure the GroupDocs.Comparison ASP.NET MVC Front-End application on server, you will need a Microsoft .NET Framework version 4.0+ and a “.NET Compatible Web-Server: Internet Information Services (IIS), IIS Express or ASP.NET Development Server (Cassini). GroupDocs.Comparison ASP.NET MVC Front-End application is using GroupDocs.Viewer for .NET and GroupDocs.Comparison for .NET APIs. Therefore, you need a separate licenses for both APIs or you can use GroupDocs.Total for .NET to avail the full features of front-end application. Downloads of ASP.NET MVC Front EndThe ASP.NET MVC Front End can be downloaded from GitHub Repository. Please click here to download or visit the release page at GitHub.com To Contribute in ASP.NET MVC Front EndThe developers can also contribute to the Front-End through one of the following ways: Find an issue or an idea of new feature – fix it and submit a pull request. Create an issue in the Github. In this case, GroupDocs Support Team will look on it. Every effort by the developers/customers would be appreciated.\n","permalink":"https://blog.groupdocs.com/total/groupdocs.comparison-.net-mvc-based-front-end/","summary":"The GroupDocs team is always motivated to provide extra ordinary solutions to its users, in this regard we are glad to announce the front-end sample project for the ASP.NET MVC developers for GroupDocs.Comparison for .NET API. Although GroupDocs.Comparison for .NET and GroupDocs.Viewer for .NET APIs have been used to develop this UI Example, but mainly the purpose for this release is to empower the developers to write their own document comparison front-end using GroupDocs.","title":"GroupDocs.Comparison for .NET MVC based Front-End Powered by GroupDocs.Total"},{"content":"\rAfter spreading the magic of next generation GroupDocs .Net APIs around the globe, the GroupDocs team is happy to announce the release of GroupDocs.Total for .NET which is a complete suit of GroupDocs .NET APIs. In the other words, the GroupDocs.Total for .NET is a compilation of every .NET API offered by GroupDocs. It is compiled on daily basis to ensure that it contains the most up to dated versions of each of our .NET document manipulation APIs. GroupDocs.Total for .NET allows the developers to use all our APIs with a single license. However, they(developers) can order any individual API as well.\nThe APIs included in GroupDocs.Total GroupDocs.Viewer for .NET GroupDocs.Annotation for .NET GroupDocs.Conversion for .NET GroupDocs.Comparison for .NET GroupDocs.Signature for .NET GroupDocs.Assembly for .NET GroupDocs.Metadata for .NET GroupDocs.Search for .NET GroupDocs.Watermark for .NET Development Environment Framework Microsoft .NET Framework 3.5 or greater versions are supported.\nIDE Visual Studio 2010 or later can be used to run this project.\nSupported Browsers Mozilla Firefox Internet Explorer (version 9 or later) Google Chrome Available Channels and Resources Here are a few channels and resources for you to learn, try and get technical support on GroupDocs.Total for .NET:\nDownload - MSI Package as well as Zipped DLLs Documentation - Product Docs Product Support Forum - Technical Support Forum for GroupDocs.Total ","permalink":"https://blog.groupdocs.com/total/inaugurating-groupdocs.total-.net-ultimate-solution/","summary":"After spreading the magic of next generation GroupDocs .Net APIs around the globe, the GroupDocs team is happy to announce the release of GroupDocs.Total for .NET which is a complete suit of GroupDocs .NET APIs. In the other words, the GroupDocs.Total for .NET is a compilation of every .NET API offered by GroupDocs. It is compiled on daily basis to ensure that it contains the most up to dated versions of each of our .","title":"Announcing GroupDocs.Total for .NET - An Ultimate Solution"},{"content":"\rTeam groupdocs ecstatically releasing Annotation for Java Servlets based Front-end V1.2.0. Considering the valuable customers feedback, this release covers a lot of bug fixes and new features. GroupDocs users are free to customize and enhance the application by their own. This project is opensource and already published on GitHub.\nGroupDocs.Annotaion for Java front-end V1.2.0The GroupDocs.Annotation for Java front-end is a WYSIWYG editor designed to simplify annotating documents using GroupDocs.Annotation for Java API. It incorporates Java servlets at back-end and angularJS at front that allows it’s users to annotate the documents more fluently. We are especially thankful to those who have contributed. Your feedback and support has enabled us to deliver our first stable release. Loading the license fileIn order experience the application fluently and error free, users have to provide the license file for GroupDocs.Annotation for Java or GroupDocs.Total for Java. More precised annotationThis release of servlets front-end brings end users with tools to annotate documents more accurately using GroupDocs.Annotation for Java API so the resultant documents have the same results which you have seen in the browser. Annotations availabilityNow the application remembers all the annotations you\u0026rsquo;ve made to prevent its user from the fear of losing the annotated state of document. Deleting annotationsNow user can delete any made annotation with its associated comment through a single click only. Java Servlets Front-end V1.2.0 New FeaturesFeatures introduced in Servlets based Front-end V1.2.0 are: Ability to delete any made Annotation. Displaying previously made annotations every time application starts. More accurate annotation drawing. Result document is same as the annotated document in browser. Java Servlets based Front-end - DownloadsThe application can be downloaded from GitHub Repository. Contribute in Java Servlets Front-endThe developers can also contribute to the Front-end through one of the following ways: Find an issue or an idea of new feature – fix it and submit a pull request. Find an issue or an idea of new feature – create an issue in the Github. In this case, GroupDocs Support Team will look on it. Every effort by the developers/customers would be appreciated.\n","permalink":"https://blog.groupdocs.com/annotation/groupdocs-annotation-java-front-end-using-servlets-v1.2.0/","summary":"Team groupdocs ecstatically releasing Annotation for Java Servlets based Front-end V1.2.0. Considering the valuable customers feedback, this release covers a lot of bug fixes and new features. GroupDocs users are free to customize and enhance the application by their own. This project is opensource and already published on GitHub.\nGroupDocs.Annotaion for Java front-end V1.2.0The GroupDocs.Annotation for Java front-end is a WYSIWYG editor designed to simplify annotating documents using GroupDocs.Annotation for Java API.","title":"Releasing GroupDocs.Annotation for Java front end using Servlets"},{"content":"\rWe are excited to announce another monthly release of GroupDocs.Comparison for .NET 16.12.0 API new features, Improvements and fixes are introduced in this release. Major changes are done for Spreadsheet and PDF document formats. This monthly release is also introduced enhanced Support for Visual Basic Scripts handling and detection of shapes for Spreadsheet format and watermark text style for PDF document format.In this monthly release 2 new feature are introduced along with 4 improvements and 2 Bug fixes. Download the latest GroupDocs.Comparison for .NET API to implement the new and improved features.\nGroupDocs.Comparison for .NET 16.12.0 - New FeaturesIn this monthly release of GroupDocs.Comparison for .NET 16.12.0 new features and improvements are introduced, like support for Shapes Comparison for Spreadsheet format and Watermark Text style changes detection for PDF document format along with improvements. Here are some highlights: Added support for Shapes Comparison in Spreadsheet format Support of styles to text watermarks in PDF document format Document Comparison API for .NET 16.12.0 - ImprovementsThese are the features that are improved in the latest version of the GroupDocs.Comparison API. Improved aligning of presentation format for more precise changes detection Remove Text Artifacts from documents before Paragraph absorbation for PDF document format Improve set Horizontal Alignment for PDF document format Document Comparison API - FixesThis is the list of fixes done in the latest version of the GroupDocs.Comparison API for .NET 16.12.0. Compile Error on Comparison Document for VB.NET Exception: The newChild was created from a different document than the one that created this node. For more details about supported document formats, please visit Features Overview. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API: Downloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples FeedbackYou are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/groupdocs.comparison-.net-api-v16.12.0/","summary":"We are excited to announce another monthly release of GroupDocs.Comparison for .NET 16.12.0 API new features, Improvements and fixes are introduced in this release. Major changes are done for Spreadsheet and PDF document formats. This monthly release is also introduced enhanced Support for Visual Basic Scripts handling and detection of shapes for Spreadsheet format and watermark text style for PDF document format.In this monthly release 2 new feature are introduced along with 4 improvements and 2 Bug fixes.","title":"Compare Shapes and Watermark Text Style With GroupDocs.Comparison for .NET API v16.12.0"},{"content":"Experience the basics of GroupDocs e-Signing API through an open source ASP.NET MVC front end. This front end demonstrates essential functionalities provided by GroupDocs.Signature for .NET API, the easy to grasp UI permits .NET developers to develop their own front end or extend the existing one. We would recommend you to clone/download and explore the front end.\ne-Signature Front End - Features Type Signature Draw Signature, apply different colors Upload image signature Download signed document Print signed document Pagination Development Environment FrameworkMicrosoft .NET Framework 3.5 or greater versions are supported. IDEVisual Studio 2010 or later can be used to run this project. Supported Browsers Mozilla Firefox Internet Explorer (version 9 or later) Google Chrome User and Developer GuideFollowing resources will help you in understanding the front end: About GroupDocs.Signature UI Application Technical Overview Developer Guide Digital Signing API : Available Channels and ResourcesHere are a few channels and resources for you to learn, try and get technical support on Document Signing API for .NET: Download - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials ","permalink":"https://blog.groupdocs.com/signature/releasing-esignature-front-end/","summary":"Experience the basics of GroupDocs e-Signing API through an open source ASP.NET MVC front end. This front end demonstrates essential functionalities provided by GroupDocs.Signature for .NET API, the easy to grasp UI permits .NET developers to develop their own front end or extend the existing one. We would recommend you to clone/download and explore the front end.\ne-Signature Front End - Features Type Signature Draw Signature, apply different colors Upload image signature Download signed document Print signed document Pagination Development Environment FrameworkMicrosoft .","title":"Releasing e-Signing Front End using GroupDocs.Signature for .NET"},{"content":"\rGroupDocs team is glad to announce another monthly release of GroupDocs.Conversion for .NET v16.12.0. In this release new file format \u0026ldquo;Webp\u0026rdquo; is added in supporting formats list. Monthly release of Document Conversion API is also introducing some improvements like \u0026ldquo;LZW compression for internal tiff compression \u0026quot; and \u0026ldquo;Improve memory handling\u0026rdquo; along with 8 fixes. So why you are waiting just download the new release and use the new exciting features.\nGroupDocs.Conversion for .NET API 16.12.0In this monthly release of GroupDocs.Conversion for .NET 16.12.0 added support for Webp file conversion into different document formats and also added new features, Improvements and fixes. Here is the list of changes made in new release. Features Implement conversion from Webp Implement conversion to Webp Improvements Use LZW compression for internal tiff compression Improve memory handling Fixes Converting to image with set DPI options without setting image width and height is producing invalid image HideWordTrackedChanges set to \u0026rsquo;true\u0026rsquo; but still its showing track chnages and markup Exception when loading EPUB in multithread Exception when converting DWG to PNG in multithread Exception is thrown when resizing specific Pdf file Convert to HTML from PDF - Words in Bold Letters are not properly displayed Pdf to Html conversion formatting issue Wrong characters when saving in HTML Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - Github source code examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/groupdocs.conversion-.net-v16.12.0/","summary":"GroupDocs team is glad to announce another monthly release of GroupDocs.Conversion for .NET v16.12.0. In this release new file format \u0026ldquo;Webp\u0026rdquo; is added in supporting formats list. Monthly release of Document Conversion API is also introducing some improvements like \u0026ldquo;LZW compression for internal tiff compression \u0026quot; and \u0026ldquo;Improve memory handling\u0026rdquo; along with 8 fixes. So why you are waiting just download the new release and use the new exciting features.","title":"Webp file format Introduced - GroupDocs.Conversion for .NET API v16.12.0"},{"content":"\rGroupDocs team is excited to announce another amazing monthly release where new document format is added in supported format list, Now Image file Annotation is also introduced. The latest GroupDocs.Annotation for .NET provides support all major annotation types like (Text, Area, Point, Watermark, Strikeout Annotations etc) for Image file along with improvements and fixes. We recommend that download the latest API release to add new exciting features and enhance your application with GroupDocs.Annotation for .NET.\nAnnotation API for .NET - New Features This monthly release included support for all major Annotation types for Image file**.** GroupDocs.Annotation for .NET 16.12.0 is released along with improvement and enhancement. New feature lists are given below.\nText Annotation Point Annotation Area Annotation Resource Redaction Annotation TextField Annotation Polyline Annotation Watermark Annotation Underline Text Annotation Text Strikeout Annotation Document Annotation API - Improvements \u0026amp; Fixes wrong Annotation orientation (After export PDF Annotations are shifted to other place) For more details about supported documents formats to annotate, please visit this article.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation:\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos API References - Annotation API References Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET Feedback We always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/annotation/groupdocs.annotation-for-.net-16.12.0/","summary":"GroupDocs team is excited to announce another amazing monthly release where new document format is added in supported format list, Now Image file Annotation is also introduced. The latest GroupDocs.Annotation for .NET provides support all major annotation types like (Text, Area, Point, Watermark, Strikeout Annotations etc) for Image file along with improvements and fixes. We recommend that download the latest API release to add new exciting features and enhance your application with GroupDocs.","title":"Image file Annotation with GroupDocs.Annotation for .NET"},{"content":"\rWe are fervent to enhance developer experience by providing variety of compelling features in our APIs. Hence, we are pleased to announce another monthly release of GroupDocs.Assembly for .NET 16.12.0 that comes with new essential features and few enhancements. API supports metered licensing and provides ability to use Spreadsheets as data sources. We would recommend you to experience our new release and share your valuable feedback.\nGroupDocs.Assembly for .NET 16.12.0 - New Features Support metered licensing Use Spreadsheets as Data Sources Provide ability to use tables of Word Processing documents as data sources Provide ability to use tables of Presentation documents as data sources Document Generation API - Enhancements Support fully qualified type names in templates Support indexers while using contextual object member access Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly: Download - MSI Package as well as Zipped DLLs NuGet - Nuget Installation Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly FeedbackWe observe your feedback carefully, please share your feedback about this Document Generation API. We will be happy to know your thoughts and we will try to enhance your experience with the API. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/assembly/groupdocs.assembly-for-.net-16.12.0-released/","summary":"We are fervent to enhance developer experience by providing variety of compelling features in our APIs. Hence, we are pleased to announce another monthly release of GroupDocs.Assembly for .NET 16.12.0 that comes with new essential features and few enhancements. API supports metered licensing and provides ability to use Spreadsheets as data sources. We would recommend you to experience our new release and share your valuable feedback.\nGroupDocs.Assembly for .NET 16.","title":"GroupDocs.Assembly for .NET 16.12.0 Provides Ability to use Spreadsheets as Data Sources"},{"content":"\rThe GroupDocs team is excitedly announcing the GroupDocs.Annotation Frontend for the Java Servlets developers. The purpose behind this release is to expedite the developers to understand the implementation of GroupDocs.Annotation or write their own document Annotation Application using GroupDocs.Annotation for Java 3.x.. It is an alpha release of the project but most important functionalities have been implemented in this release. GroupDocs users are free to customize and enhance the application by their own. This project is already published on GitHub.\nJava Servlets Frontend FeaturesThe servlets based Frontend provides end users with tools needed for annotating and viewing of a documents in a browser. The application provides all the most commonly used UI controls, including: Apply Annotations. Add comments. Download As PDF Ability to change the source document by providing its path in the application Supported Annotations Types in Servlets FrontendSince it is an alpha release of the product so, GroupDocs.Annotation for Java provides only the rectangle annotation with PDF documents only. Requirements to Run Servlets based Frontend Pre-requisites for GroupDocs.Annotation for Java Servlets front-end are: Java Development Kit (JDK) 8 Maven 3 Any latest browsers (Firefox, Chrome, IE9 or greater, Safari etc. ) To run the application from command line, follow the given steps. Inside the project folder, run mvn jetty:run command. Go to browser and type \u0026ldquo;http://localhost:8080/\u0026rdquo;. Java Servlets based Frontend - DownloadsThe application can be downloaded from GitHub Repository. Contribute in Java Servlets FrontendThe developers can also contribute to the Frontend through one of the following ways: Find an issue or an idea of new feature – fix it and submit a pull request. Find an issue or an idea of new feature – create an issue in the Github. In this case, GroupDocs Support Team will look on it. Every effort by the developers/customers would be appreciated.\n","permalink":"https://blog.groupdocs.com/annotation/servlet-based-front-end-groupdocs.annotation-java/","summary":"The GroupDocs team is excitedly announcing the GroupDocs.Annotation Frontend for the Java Servlets developers. The purpose behind this release is to expedite the developers to understand the implementation of GroupDocs.Annotation or write their own document Annotation Application using GroupDocs.Annotation for Java 3.x.. It is an alpha release of the project but most important functionalities have been implemented in this release. GroupDocs users are free to customize and enhance the application by their own.","title":"Launching Servlet based Front-end of GroupDocs.Annotation for Java 3.0.0"},{"content":"\rWe\u0026rsquo;ve been delighted to see the response that we received from the users since we released next generation GroupDocs.Viewer for .NET. Therefore, we always keep improving the API and adding more attractive features to it and today, we are much excited to release GroupDocs.Viewer for .NET 16.12.0. With this latest release of the year, users will be able to render and view OTS and WebP file formats. This release also contains some important bug fixes and improvements. We strongly recommend you to upgrade the API to the latest version.\nGroupDocs.Viewer for .NET 16.12.0 - New FeaturesWe have added support of following file formats in the latest version of GroupDocs.Viewer for .NET. OTS file format WebP file format For more details, please visit API Features.\n.NET Document Viewer API - Improvements \u0026amp; FixesIn GroupDocs.Viewer for .NET 16.12.0, we have fixed as well as improved following issues. Improvement - Use current directory as storage directory when storage path is not specified Improvement - Responsive HTML output for Slides documents Fix - Different exception messages for password encrypted Word document Fix - Issue in loading SAI image Fix - Scrollbars issue when rendering pdf into HTML with embedded resources in IE Edge Fix - Unable to load Tex file from stream Fix - Unable to load XCF file Fix - Incorrect position of graph lines in output HTML or image file Related Links and ResourcesWe have a few channels and resources for you to download, learn, try and get technical support on document viewer API. Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, if you have any questions or suggestions, feel free to write on our forum. ","permalink":"https://blog.groupdocs.com/viewer/render-ots-webp-with-groupdocs-viewer-16-12/","summary":"We\u0026rsquo;ve been delighted to see the response that we received from the users since we released next generation GroupDocs.Viewer for .NET. Therefore, we always keep improving the API and adding more attractive features to it and today, we are much excited to release GroupDocs.Viewer for .NET 16.12.0. With this latest release of the year, users will be able to render and view OTS and WebP file formats. This release also contains some important bug fixes and improvements.","title":"Render OTS and WebP File Formats with GroupDocs.Viewer for .NET 16.12.0"},{"content":"\rWe are really pleased to announce the monthly release of GroupDocs.Search for .NET 16.12 API. In this release, we have introduced three new features. You can now apply search to password protected documents. Not only this, the latest release provides its users with the functionality to maintain list of synonyms and stop words. Download the latest version and try out all the amazing features of GroupDocs.Search for .NET 16.12 API.\nGroupDocs.Search for .NET - New Features In version 16.12, we have introduced the following new features:\nSupport for password protected documents Managing Stop Words Managing Synonyms For details, please visit Features Overview.\nAvailable Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search:\nDownload - MSI Package Zipped DLLs Download - DLLs NuGet - NuGet Install Documentation - API Docs Examples/Plugins/Showcases - Source Code Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to GroupDocs.Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/groupdocs-search-net-16-12-supports-indexing-password-protected-documents/","summary":"We are really pleased to announce the monthly release of GroupDocs.Search for .NET 16.12 API. In this release, we have introduced three new features. You can now apply search to password protected documents. Not only this, the latest release provides its users with the functionality to maintain list of synonyms and stop words. Download the latest version and try out all the amazing features of GroupDocs.Search for .NET 16.12 API.","title":"GroupDocs.Search for .NET 16.12 Supports Searching for Password Protected Documents"},{"content":"We are contented to present another monthly release of our E-signing API that will certainly augment developers experience. GroupDocs.Signature for .NET 16.12.0 crops up with plentiful new features and a bug fix. API permits users to define signature options collection that ultimately helps in applying multiple signatures in a document. We would suggest you to download this latest release and go through the new features.\ne-Signature API - New Features Add ability to sign files with digital signature by given pattern in folder Add ability to sign files with image signature by given pattern in folder Implement Text Signature alignment for PDF Documents Implement Text Signature alignment for Words Documents Implement Text Signature alignment for Cells Documents Implement Text Signature alignment for Slides Documents Add ability to sign files with text signature by given pattern in folder Implement Digital Signature for all pages for Pdf documents Implement Text Signature Margins for PDF Documents Implement Text Signature Margins for Cells Documents Implement Text Signature Margins for Words Documents Implement Text Signature Margins for Slides Documents Implement Digital Signature Alignment for Pdf Documents Implement ability to sign Pdf Documents with given list of Signature Options Implement ability to sign Cells Documents with given list of Signature Options Implement ability to sign Words Documents with given list of Signature Options Implement ability to sign Slides Documents with given list of Signature Options GroupDocs.Signature for .NET 16.12.0 - Bug Fixes Pdf Text Signature - Adjust Signature Area when Width or Height properties are specified E-Signing API : Available Channels and ResourcesHere are a few channels and resources for you to learn, try and get technical support on Document Signing API for .NET: Download - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature Video Tutorials - YouTube Video Tutorials FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/signature/groupdocs-signature-for-net-16-12-0-released/","summary":"We are contented to present another monthly release of our E-signing API that will certainly augment developers experience. GroupDocs.Signature for .NET 16.12.0 crops up with plentiful new features and a bug fix. API permits users to define signature options collection that ultimately helps in applying multiple signatures in a document. We would suggest you to download this latest release and go through the new features.\ne-Signature API - New Features Add ability to sign files with digital signature by given pattern in folder Add ability to sign files with image signature by given pattern in folder Implement Text Signature alignment for PDF Documents Implement Text Signature alignment for Words Documents Implement Text Signature alignment for Cells Documents Implement Text Signature alignment for Slides Documents Add ability to sign files with text signature by given pattern in folder Implement Digital Signature for all pages for Pdf documents Implement Text Signature Margins for PDF Documents Implement Text Signature Margins for Cells Documents Implement Text Signature Margins for Words Documents Implement Text Signature Margins for Slides Documents Implement Digital Signature Alignment for Pdf Documents Implement ability to sign Pdf Documents with given list of Signature Options Implement ability to sign Cells Documents with given list of Signature Options Implement ability to sign Words Documents with given list of Signature Options Implement ability to sign Slides Documents with given list of Signature Options GroupDocs.","title":"GroupDocs.Signature for .NET 16.12.0 Supports Multiple Signature Options"},{"content":"\rGroupDocs team is announcing another exciting monthly release. The latest GroupDocs.Annotation for .NET 16.11.0 API provides support for Import Annotations and new types (TextStrikeout , TextUndreline and TextHighlight ) for Presentation file format along with improvements and fixes. We recommend that download the latest API release to add new exciting features and enhance your application with GroupDocs.Annotation for .NET API.\nNew Features Introduced - GroupDocs.Annoation for .NETIn this monthly release new annotation types like (TextStrikeout , TextUndreline and TextHighlight ) and import functionality introduced for Presentation file format. New feature lists are given below. TextHighlight Annotation Support TextStrikeout Annotation Support TextUndreline Annotation Support Resource Redaction Annotation Import Text Field Annotation Import Area Annotation Import Arrow Annotation Import Polyline Annotation Import Watermark Annotation Import Point Annotation Import Improvements \u0026amp; Fixes - Document Annotation API Arrow annotation imported incorrectly on several Words documents For more details about supported documents formats to annotate , please visit this article.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET FeedbackWe always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/groupdocs-annotation-net-16-11-0/","summary":"GroupDocs team is announcing another exciting monthly release. The latest GroupDocs.Annotation for .NET 16.11.0 API provides support for Import Annotations and new types (TextStrikeout , TextUndreline and TextHighlight ) for Presentation file format along with improvements and fixes. We recommend that download the latest API release to add new exciting features and enhance your application with GroupDocs.Annotation for .NET API.\nNew Features Introduced - GroupDocs.Annoation for .NETIn this monthly release new annotation types like (TextStrikeout , TextUndreline and TextHighlight ) and import functionality introduced for Presentation file format.","title":"Import Annotations for Presentation format now Supported in GroupDocs.Annotation for .NET 16.11.0"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Metadata for .NET v16.12. The latest release involves a number of new features and enhancements including support for Open Document format, BMP and DjVu image formats and improved methods for metadata retrieval. Simply download the latest version and try out all the newly introduced features and enhancements.\n.NET Metadata API - New Features In version 16.12, we have introduced the following new features.\nReading and writing metadata of Open Document format Implementation of DjVu image format Implementation of BMP image format Reading header of BMP image Reading metadata property by defined key for any supported format For details, please visit Features Overview.\nGroupDocs.Metadata for .NET - EnhancementsGroupDocs.Metadata for .NET 16.12 introduces the following enhancements: Reading all available keys of the specific metadata Enumerating any type of metadata Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Download - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/introducing-bmp-djvu-formats-groupdocs-metadata-net-16-12/","summary":"We are pleased to announce another monthly release of GroupDocs.Metadata for .NET v16.12. The latest release involves a number of new features and enhancements including support for Open Document format, BMP and DjVu image formats and improved methods for metadata retrieval. Simply download the latest version and try out all the newly introduced features and enhancements.\n.NET Metadata API - New Features In version 16.12, we have introduced the following new features.","title":"Improved Methods of Metadata Retrieval Introduced in GroupDocs.Metadata for .NET 16.12"},{"content":"\rTeam GroupDocs delightedly announcing another release of Spring front-end of GroupDocs.Viewer for Java. The release includes fixes and improvements. We recommend to download and try the latest version. GroupDocs.Viewer for Java API have capabilities to render variety of documents into HTML, SVG and images to view them on different platforms. The Spring front-end is an open source example application so you can explore the API and learn that how to use the API in your own projects.\nViewer API HTML rendering improvementHTML rendering of the documents is fundamental part of our API and has been implemented in all of our Java front-ends. This release have some further improvements in the rendering and fixes some formatting issues. Java Viewer API Rendering Images FeatureGroupDocs.Viewer for Java also have the capability to render complex image formats like DWG and PSD. One of our user (thanks Simon) reported that there was some difficulty in rendering of images in a specific scenario, which we have resolved in this release. Supported formatsFollowing are some common document formats for viewer. Microsoft Excel: XLS, XLSX, XLSM, XLSB Word Documents: DOC, DOCM, DOCX, DOT, DOTX, DOTM Portable Document Formats: PDF PowerPoint Presentation Formats: PPT, PPTX, PPS, PPSX Some helpful ResourcesFollowing resources will help you to download, learn, try and get technical support on Java document viewer API: Product Home - GroupDocs.Viewer for Java. Documentation - Product Documentations. Product Support Forum - Technical Support Forum for GroupDocs.Viewer. Examples/Plugins/Showcases - Github source code examples. FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-java-spring-front-end-v16-11-0/","summary":"Team GroupDocs delightedly announcing another release of Spring front-end of GroupDocs.Viewer for Java. The release includes fixes and improvements. We recommend to download and try the latest version. GroupDocs.Viewer for Java API have capabilities to render variety of documents into HTML, SVG and images to view them on different platforms. The Spring front-end is an open source example application so you can explore the API and learn that how to use the API in your own projects.","title":"Spring Front-end of GroupDocs.Viewer for Java v16.11.0"},{"content":"\nGroupDocs team is glad to announce another monthly release of GroupDocs.Comparison for .NET 16.11.0 API along with Improved Performance ,new features and fixes. Major changes are done for Presentation document format and introduced enhanced Support for advanced Visual Basic Scripts and detection of Picture Frames.In this monthly release 3 new feature are introduced along with 4 improvements and 3 Bug fixes. Download the latest GroupDocs.Comparison for .NET API to implement the new and improved features.\nGroupDocs.Comparison for .NET 16.11.0 - New FeaturesIn this monthly release of GroupDocs.Comparison for .NET 16.11.0 new features and improvements are introduced for Presentation document format like support for detection of Picture Frames,style changes detection and Improved comparison performance. Here are some highlights: style changes detection for Presentation document format detection of Picture Frames for Presentation document format comparing objects with VBA scripts for Presentation document format Document Comparison API for .NET 16.11.0 - ImprovementsThese are the features that are improved in the latest version of the GroupDocs.Comparison API. Improved comparison performance for Presentation document format Extend engine to support all kind of images for Presentation document format Cross-format engine: The case the comparison of tables with different results for all formats Support for new components to new core for GroupDocs.Comparison.PDF Document Comparison API - FixesThis is the list of fixes done in the latest version of the GroupDocs.Comparison API for .NET 16.11.0. If content of row is unique then row should be marked as Inserted or Deleted for Spreadsheet document format The result table structure not conforming to primary table structure for Spreadsheet document format The new child was created from a different document than the one that created this node for Words document format For more details about supported document formats, please visit Features Overview. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API: Downloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples FeedbackYou are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-net-16-11-0/","summary":"GroupDocs team is glad to announce another monthly release of GroupDocs.Comparison for .NET 16.11.0 API along with Improved Performance ,new features and fixes. Major changes are done for Presentation document format and introduced enhanced Support for advanced Visual Basic Scripts and detection of Picture Frames.In this monthly release 3 new feature are introduced along with 4 improvements and 3 Bug fixes. Download the latest GroupDocs.Comparison for .NET API to implement the new and improved features.","title":"Improved Performance introduced in GroupDocs.Comparison for .NET API v16.11.0"},{"content":"\rWe are excited to announced another release of Servlets front-end of GroupDocs.Viewer for Java scheduled this November. The release comes with improvements and fixes. We recommend to download and try the latest version. GroupDocs.Viewer for Java API allow us to render a wide range of documents into HTML, SVG and images to view them on any platform. The Servlets front-end is an example application to let you learn how to use the API in your own implementations.\nBetter HTML renderingHTML rendering is integral part of our API and has been implemented in our Java front-ends from the beginning. This release further improves the rendering and fixes some formatting issues. Image viewerGroupDocs.Viewer for Java supports rendering of complex image formats like PSD and DWG. One of our user (thanks Simon) reported that there was some difficulty in rendering of images in a specific scenario, which we have addressed in this release. Java viewer API supported formatsWidely used document formats for viewer are Word Document Formats (DOC, DOCM, DOCX, DOT, DOTX, DOTM), Excel Document Formats (XLS, XLSX, XLSM, XLSB), Presentation Document Formats (PPT, PPTX, PPS, PPSX), and Portable Document Formats (PDF) documents. Useful ResourcesFind more channels and resources to download, learn, try and get technical support on GroupDocs.Viewer for Java: Product Home - GroupDocs.Viewer for Java. Documentation - Product Documentations. Product Support Forum - Technical Support Forum for GroupDocs.Viewer. Examples/Plugins/Showcases - Github source code examples. FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-java-servlets-frontend-v16-11/","summary":"We are excited to announced another release of Servlets front-end of GroupDocs.Viewer for Java scheduled this November. The release comes with improvements and fixes. We recommend to download and try the latest version. GroupDocs.Viewer for Java API allow us to render a wide range of documents into HTML, SVG and images to view them on any platform. The Servlets front-end is an example application to let you learn how to use the API in your own implementations.","title":"GroupDocs.Viewer for Java Servlets Front-end"},{"content":"\rTeam GroupDocs is excitedly releasing a new version of GroupDocs.Viewer for Java. Many of the new features have been introduced in GroupDocs.Viewer for Java 3.7.0, such as the rendering of Email attachments and Rendering PDF document with layered content. Some of the important fixes about outstanding issues and improvements have also packed with this release. In order to enable all the rich features in your project please upgrade your document viewer applications with the latest version of the API. For more details, please continue to read on.\nJava Document Viewer API - New FeaturesFollowing features has included in this release of GroupDocs.Viewer. Render Attachment as HTML from Email Document Render PDF as Html with layered content Support for hyperlinks referencing a worksheet in the same document Opacity setting for Watermark See more features here.\nViewer API - FixesFollowing are the issues that were found in previous versions and are fixed in version 3.7.0. GetDocumentInfo Method Throws Exception in Evaluation Mode The HtmlResourcePrefix {page-number} is not set in DiagramToHtmlConverter Some characters are not showing in correct format when render as HTML System.OutOfMemoryException thrown while rendering as image Only first frame or tiff document converted in image mode MSG file is not rendering properly Failed to get document information in image mode with text from epub document Failed to get document information in image mode with text in trial File description document type format is Unknown when extension is upper case Small images are not visible in image mode Invalid parameter exception while converting mpt to image File is corrupted or damaged exception while converting mpt document to image Project reading exception in multithreading environment GetPdfFile returns all pages in trial mode JpegQuality is not applied for watermarked images Incorrect Rendering of Excel File into Html and Image GetPages for Email Attachment Throws Path Exception for Relative Storage Path Invalid Parameter Exception in Html Rendering GetPages Throws Exception In Case of Stream Object Failed to load xps document in image mode with pdf API Renders First Sheet Twice in Excel Workbook Incorrect Spacing between Characters in Html Rendering Cannot add page to pdf document OutOfMemoryException raised when total readed file size reached upto 250MB The operation is not supported error raised when loading epub document IOException is raised when try to move a loaded document(into the viewer) to any other directory Cell shading is not applied uniformly while converting spreadsheet to HTML Ott file stream detects as ods file format GetDocumentInfo Throws Parameter is not valid Exception Excel file is not properly rendering into HTML Header contents of Word document are not appearing in rendered html or images Exception generated while calling handler.getDocumentInfo(guid) Exception when calling GetPdfFile/RotatePage/ReorderPage with guid without extension Incorrect watermark position and text in PDF file Out Of Memory Exception While Rendering Excel File into HTML The bookmark range is invalid for .docx Text document format detected as Unknown GetPages Method Throws \u0026ldquo;Parameter is not valid\u0026rdquo; Exception Output html contains garbled characters and few characters are merged GetPages throws exception for email attachments API throws exception in Mono User can\u0026rsquo;t catch GroupDocsException Html watermark style block contains garbage characters. Watermark is Rendered Incorrectly in Html Representation Wmf file dimmensions are different from dimmensions in the MS Paint. TeX to Html conversion error Incorrect Rendering of PDF Document into Image The output pdf file contains black pages instead of content when converting djvu to pdf. Slanting line does not appear in html rendering DefaultRegularFont setting doesn\u0026rsquo;t work properly Specific pdf document can\u0026rsquo;t be saved as HTML Exception when converting document to html after cleanup Some characters not displayed when render HTML or PNG Different HTML generated for the same document Outlines are rendered incorrectly in HTML Some text extracted from document twice Text is shifted and duplicated in a PDF produced from VSD Diagram file rendering regression Incorrect saving XLSX to HTML Text coordinates are incorrect for a specific document Not all content of the Visio file is stored when converting to the PDF Document Viewer API - ImprovementsFollowing features are improved in the latest version of document viewer API for Java. The GroupDocs.Viewer 3.x is slower than 2.19 in performance Update DocumentInfoOptions Cells/Words/Email DocumentInfoOptions properties names and types Remove duplicated document name header in Project document converted to html Deprecated border in html that was converted from words document Implement adding prefix to font-family property if it can be overriden Added transparent watermarking in html mode Improve performance of extracting document information in image mode Apply HtmlResourcePrefix to fonts mentioned in css files Load document only when not cached Changed temp files folder structure Faster Processing remote files by Uri New RotatePage method that returns void Better API performance Applying watermark more quickly Brushed up get pdf file performance Enhanced GetPdfFile method usability Boost Words files to html rendering speed Applied saving file data separately based on options Converters resources can be released now Changed applying pdf document transformations Ability to set the encoding standard automatically No more GetDocumentInfo method response Detach XHTML xmlns attribute Cleanup html markup for Cells documents Convert Pdf Dynamic XFA Form to Standard AcroForm Mark CachedPageDescription redundant constructor as Obsolete Save html resources to cache without saving them to local disc. Implement GetPdfFile from stream or remote file Hide the hidden sheets for .xls file A document page can be converted to JPEG in about 0.1 second Links for mail attachments Related Links and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on document viewer API: Download - JAR Documentation - Product Docs Forum - Technical Support Forum Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications Document Viewer API Tutorials - YouTube Tutorials FeedbackAs always, we shall be happy to know your thoughts. Just create a forum thread to share your issues or suggestions with us. ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-java-3-7-0-released/","summary":"Team GroupDocs is excitedly releasing a new version of GroupDocs.Viewer for Java. Many of the new features have been introduced in GroupDocs.Viewer for Java 3.7.0, such as the rendering of Email attachments and Rendering PDF document with layered content. Some of the important fixes about outstanding issues and improvements have also packed with this release. In order to enable all the rich features in your project please upgrade your document viewer applications with the latest version of the API.","title":"GroupDocs.Viewer for Java 3.7.0 makes easy to render Email attachments and PDF document with layered content"},{"content":"\rTeam GroupDocs is pleased to release GroupDocs.Text for .NET API which allows users to extract text from files and documents of various formats. The API facilitates the user with simple syntax, easy to use methods and few lines of code to perform text extraction operations.\nWhy GroupDocs.Text Is Developed? Suppose you are developing a text searching or text analyzing system, wouldn\u0026rsquo;t it be great if your system can read or analyze a document even if no document reader is installed on your system?\nGroupDocs.Text for .NET accomplishes the above mentioned purpose. It is a convenient text extraction API that permits users to extract raw or formatted text from different document formats. Besides, it is not only a text extractor API, the user can extract the metadata of the document as well. This document text extraction API allows the user to read a document\u0026rsquo;s content or its metadata properties.\nFeatures provided by GroupDocs.Text for .NET Following are some key features of GroupDocs.Text:\nRaw text Extraction Formatted text Extraction Metadata Extraction Extensible and flexible For more details related to these features, you can read more here.\nSupported Documents Format GroupDocs.Text for .NET supports the following file formats:\nWord Processing Document Formats (DOC/DOCX/RTM/DOCM/ODT) Presentation Document Formats (PPT/PPTX/PPS/PPSM/PPSX/ODP) Spreadsheet Document Formats (XLS/XLSX/XLSM/XLSB/CSV/ODS) TXT HTML MHTML For more details on supported formats, please visit the article: Supported File Formats.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Text:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples - Github Source Code Examples Product Support Forum – Technical Support Forum for GroupDocs.Text Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/parser/releasing-groupdocs-text-net-convenient-text-extractor-api/","summary":"Team GroupDocs is pleased to release GroupDocs.Text for .NET API which allows users to extract text from files and documents of various formats. The API facilitates the user with simple syntax, easy to use methods and few lines of code to perform text extraction operations.\nWhy GroupDocs.Text Is Developed? Suppose you are developing a text searching or text analyzing system, wouldn\u0026rsquo;t it be great if your system can read or analyze a document even if no document reader is installed on your system?","title":"Releasing GroupDocs.Text for .NET – A Convenient Text Extractor API"},{"content":"\rBased on our customers\u0026rsquo; feedbacks and suggestions GroupDocs team is pleased to release another version of GroupDocs.Viewer ASP.NET WebForm Front End. With new enhancements and fixes, most of the reported issues have also been resolved in ASP.NET WebForm Front End. We recommend you to download and try the latest version of the application to explore our new and improved functionalities. Let\u0026rsquo;s have a look at the list of enhancements and fixes.\nASP.NET WebForm Document Viewer - Enhancements**ASP.NET WebForm Front End **has come with following new features. Display all email attachments after mail message in viewer Search Functionality in Image based Representation Ability to handle relative URl\u0026rsquo;s ASP.NET WebForm Front End - FixesFollowing are the issues that are fixed in the latest release. Rendering image type file in the HTML based rendering is not working correctly Incorrect highlighted mark and font background in IE Font color turns to black and zooms incorrectly for first slide in IE Related Links and Helpful ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer for .NET: Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications How to Contribute?All of our Showcase projects are open source, using MIT license. Therefore, developers can freely use whole project or part of it in their applications. We would be happy if you want to contribute by suggesting or adding a new feature or improving the existing ones, so other developers could also benefit from it. FeedbackAs always, we shall be happy to know your thoughts. Just create a forum thread to share your issues or suggestions with us. ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-asp-net-webform-enhancements-fixes/","summary":"Based on our customers\u0026rsquo; feedbacks and suggestions GroupDocs team is pleased to release another version of GroupDocs.Viewer ASP.NET WebForm Front End. With new enhancements and fixes, most of the reported issues have also been resolved in ASP.NET WebForm Front End. We recommend you to download and try the latest version of the application to explore our new and improved functionalities. Let\u0026rsquo;s have a look at the list of enhancements and fixes.","title":"More Enhanced GroupDocs.Viewer ASP.NET WebForm Front End"},{"content":"\rGroupDocs team is happy to release another version of ASP.NET MVC Front End with a bunch of new features that were demanded by the customers. Not only this but most of the reported issues have also been resolved in the latest ASP.NET MVC Front End. We recommend you to download and try this version of the application to get a much better experience. Let\u0026rsquo;s have a look at the list of enhancements, fixes, and improvements.\nASP.NET MVC Document Viewer - Enhancements**ASP.NET MVC Front End **has come with following new features. Zooming Options in MVC front end application Implementation of printWithWatermark option when using Pdf printing Implementation of popup messages in case of exceptions Ability to drag the image when zoomed in instead of using the scroll bars Responsive behavior of the viewer container Implement watermark opacity feature View next and previous files in viewer using navigation buttons Search functionality in image-based representation Enable/disable right click menu Provide an option to supply URL Display all email attachments after mail message in viewer ASP.NET MVC Front End - FixesFollowing are the issues that are fixed in the latest release. Unable to view Visio (*.vsd) files in HTML mode Thumbnails are not generated correctly when using the API in evaluation mode ASP.NET MVC Front End - ImprovementsFollowing improvement has been incorporated in the latest version of online document viewer application. Prevent multiple requests to get same page image Related Links and Helpful ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer for .NET: Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications How to Contribute?All of our Showcase projects are open source, using MIT license. Therefore, developers can freely use whole project or part of it in their applications. We would be happy if you want to contribute by suggesting or adding a new feature or improving the existing ones, so other developers could also benefit from it. FeedbackAs always, we shall be happy to know your thoughts. Just create a forum thread to share your issues or suggestions with us. ","permalink":"https://blog.groupdocs.com/viewer/asp-net-mvc-front-end-enhancements-fixes-improvements/","summary":"GroupDocs team is happy to release another version of ASP.NET MVC Front End with a bunch of new features that were demanded by the customers. Not only this but most of the reported issues have also been resolved in the latest ASP.NET MVC Front End. We recommend you to download and try this version of the application to get a much better experience. Let\u0026rsquo;s have a look at the list of enhancements, fixes, and improvements.","title":"Releasing Improved ASP.NET MVC Front End"},{"content":"\rWe are happy to announce that release of GroupDocs.Viewer for .NET for the month of November is available now. GroupDocs.Viewer for .NET 16.11.0 is packed with the new features such as the rendering of OTP file format and setting default font for email documents. This release also contains improvements and some important fixes of the outstanding issues. We would like you to upgrade your document viewer applications with the latest version of GroupDocs.Viewer for .NET. For more details, please continue to read on.\n.NET Document Viewer API - New FeaturesGroupDocs.Viewer for .NET 16.11.0 includes following new features. Set default font when rendering Email documents Render OTP file format For more details, please visit API Features.\nGroupDocs.Viewer for .NET 16.11.0 - FixesFollowing are the issues that were found in previous versions and are fixed in version 16.11.0. The background is missed for IE 11 Special characters like accents, umlauts and circumflex are displayed incorrectly when saving specific PDF to HTML A ligature is shown incorrectly in HTML produced from PDF Invalid characters while rendering Word document into HTML Throws unsupported file format exception when loading specific doc file Getting exception \u0026ldquo;File type \u0026lsquo;doc\u0026rsquo; is not supported\u0026rdquo; Parameter is not valid exception when rendering xlsx to image Extra blank page created when converting DWG to pdf. Failed to convert WMF file to image in Asp.Net application Incorrect rendering of radio buttons, checkboxes, and their label into Html No text when converting Pdf to Html with FontAbsorber GroupDocs.Viewer for .NET 16.11.0 - ImprovementsFollowing features are improved in the latest version of document viewer API for .NET. Public API of ViewerConfig class Rendering CAD (DWG, DXF) documents to Pdf Public API of IInputDataHandler interface Display HTML pages of two different documents into the same page in browser without overriding CSS classes Related Links and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on document viewer API: Download - MSI Package and Zipped DLLs NuGet Package - NuGet Installation Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, we shall be happy to know your thoughts. Just create a forum thread to share your issues or suggestions with us. ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-16-11-supports-otp-format/","summary":"We are happy to announce that release of GroupDocs.Viewer for .NET for the month of November is available now. GroupDocs.Viewer for .NET 16.11.0 is packed with the new features such as the rendering of OTP file format and setting default font for email documents. This release also contains improvements and some important fixes of the outstanding issues. We would like you to upgrade your document viewer applications with the latest version of GroupDocs.","title":"GroupDocs.Viewer for .NET 16.11.0 - Render OTP File Format and Set Default Font for Email Documents"},{"content":"\rGroupDocs.Conversion for .NET API supports document conversion operations back and forth over 50 documents and image file formats but we are expanding its feature and trying to add more document and image format support .In this regard are happy to announce another monthly release of GroupDocs.Conversion for .NET 16.11.0 API. This release has included new features like return possible conversions , page count from file and stream also added support for new file formats DjVu, EMF, WMF, DICOM, OTP along with some improvements and fixes. So why you are waiting just download the new release and use the new exciting features.\nNew Features - GroupDocs.Conversion for .NET API 16.11.0 In this monthly release of GroupDocs.Conversion for .NET 16.11.0 added support for new document and image format conversion into different document formats and also added new features, Improvements and fixes. Here is the list of changes made in new release.\nFeatures DjVu format Support Added EMF format Support Added WMF format Support Added DICOM format Support Added OTP format Support Added Helper method to return possible conversions from file extension or stream Helper method to return pages count of a document which will be converted Improvements Improved progress reporting Improved performance of Word to Pdf and Word to Epub conversions Fixes Progress report is not working Mssing \u0026ldquo;Fixedlayout\u0026rdquo; Property while Updating VB Example File name contains extra symbols Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - Github source code examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/groupdocs-conversion-net-16-11-0/","summary":"GroupDocs.Conversion for .NET API supports document conversion operations back and forth over 50 documents and image file formats but we are expanding its feature and trying to add more document and image format support .In this regard are happy to announce another monthly release of GroupDocs.Conversion for .NET 16.11.0 API. This release has included new features like return possible conversions , page count from file and stream also added support for new file formats DjVu, EMF, WMF, DICOM, OTP along with some improvements and fixes.","title":"DjVu EMF WMF DICOM and OTP formats are introduced in GroupDocs.Conversion for .NET 16.11.0"},{"content":"\rWe as members of GroupDocs team are immensely delighted to see our users community growing every day. There has also been an inflow of customers recommendations and feedback, for which we owe you our gratitude. We thank you , for providing us the impetus to work even harder at improving our performance. Our whole team is always endeavoring to cater to your needs and requirements to our fullest possible potential thus providing the most innovative and enhanced solutions to our valuable customers. In this regard we are really pleased to announce yet another bit of our efforts for you that is the release of our monthly GroupDocs.Search for .NET. In this release, we have introduced case sensitive search that enables the users to narrow down their search based on the letter casing. Download the latest version to upgrade your applications.\nGroupDocs.Search for .NET - New Features In version 16.11, we have introduced the following new feature:\nCase Sensitive Search For details, please visit Features Overview.\nAvailable Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search:\nDownload - MSI Package Zipped DLLs Download - DLLs NuGet - NuGet Install Documentation - API Docs Examples/Plugins/Showcases - Source Code Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to GroupDocs.Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/groupdocs-search-net-16-11-introduces-case-sensitive-search/","summary":"We as members of GroupDocs team are immensely delighted to see our users community growing every day. There has also been an inflow of customers recommendations and feedback, for which we owe you our gratitude. We thank you , for providing us the impetus to work even harder at improving our performance. Our whole team is always endeavoring to cater to your needs and requirements to our fullest possible potential thus providing the most innovative and enhanced solutions to our valuable customers.","title":"GroupDocs.Search for .NET 16.11 Introduces Case Sensitive Search"},{"content":"\rWait is over now, GroupDocs team is glad to announce another exciting monthly release where in supported document formats list, Presentation file format is introduced. The latest GroupDocs.Annotation for .NET 16.10.0 API provides support for all major annotation types (Highlight Text, Area Annotation, and Strikeout etc) for Presentation file format along with improvements and fixes. We recommend that download the latest API release to add new exciting features and enhance your application with GroupDocs.Annotation for .NET\nNew Features Introduced - GroupDocs.Annoation for .NETIn this monthly release All major Annotations support for Presentation file format is now introduced in Next Generation GroupDocs.Annotation for .NET 16.10.0 along with improvement and enhancement. New feature lists are given below. Text Annotation Point Annotation Area Annotation Resource Redaction Annotation Arrow Annotation TextField Annotation Polyline Annotation Watermark Annotation Improvements \u0026amp; Fixes - Document Annotation API Show and store annotation author when export annotation for PDF documents For more details about supported conversions between different document formats, please visit this article.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Annotation for .NET FeedbackWe always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/groupdocs-annotation-net-16-10-0-supports-slides/","summary":"Wait is over now, GroupDocs team is glad to announce another exciting monthly release where in supported document formats list, Presentation file format is introduced. The latest GroupDocs.Annotation for .NET 16.10.0 API provides support for all major annotation types (Highlight Text, Area Annotation, and Strikeout etc) for Presentation file format along with improvements and fixes. We recommend that download the latest API release to add new exciting features and enhance your application with GroupDocs.","title":"GroupDocs.Annotation for .NET 16.10.0 introduced Support for Presentation Format"},{"content":"\rWe’ve just published some important updates for GroupDocs.Metadata for the .NET community and we’re really pleased to announce our newest stable GroupDocs.Metadata for .NET 16.11 release, which includes support for even some more document formats as well as some great new features for images and audio files. To try out all of the awesome features available now in our latest release, simply download this latest version or check for updates in Visual Studio and install the release .\nGroupDocs.Metadata for .NET - New Features In version 16.11, we have introduced following new features.\nWMF image format detection WebP image format detection Removal of ID3v2 tag in Mp3 format Detection of MIME type of the specific file EMF image format detection Reading content type properties in Excel document Image size retrieval For details, please visit Features Overview.\n.NET Metadata API - EnhancementsGroupDocs.Metadata for .NET 16.11 comes with a number of enhancements. We have now added support for some more document formats, the details of which are as follows: XLSM, XLT, XLTX, XLTM for Excel documents POT, POTX for PowerPoint documents You can get more information about supported formats here. Well, that\u0026rsquo;s not all. This newer release comes with some more improvements while working with the audio files. GroupDocs.Metadata for .NET 16.11 introduces the following enhancements for MP3 format:\nRead even more properties of an MPEG audio header like HeaderPosition, Bitrate, ChannelMode, Copyright etc Read/Write additional information like artist,album,title,track number, year etc from ID3V2 tag in Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Download - MSI Package as well as Zipped DLLs NuGet - NuGet Installation Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API Videos Product Support Forum - Technical Support Forum for GroupDocs Metadata FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/groupdocs-metadata-16-11-supports-webp-emf-wmf/","summary":"We’ve just published some important updates for GroupDocs.Metadata for the .NET community and we’re really pleased to announce our newest stable GroupDocs.Metadata for .NET 16.11 release, which includes support for even some more document formats as well as some great new features for images and audio files. To try out all of the awesome features available now in our latest release, simply download this latest version or check for updates in Visual Studio and install the release .","title":"Introducing WebP EMF and WMF formats in GroupDocs.Metadata for .NET 16.11"},{"content":"\rWe are as GroupDocs team member glad to see that our users community is growing with each and every day. We are also receiving many feedback and suggestions from users therefore we always try to provide new and enhanced solutions to our valuable customers to fulfill their requirements and incorporate their valuable suggestions. In this regard we are happy to announce another monthly release of GroupDocs.Comparison for .NET 16.10.0 API. In this monthly release 4 new feature are introduced along with 4 improvements and 2 Bug fixes. Download the latest GroupDocs.Comparison for .NET API to implement the new and improved features.\nNew Features - GroupDocs.Comparison for .NET 16.10.0In this monthly release of GroupDocs.Comparison for .NET 16.10.0 new features and improvements are introduced for PDF and Slides document format like support for Watermark , Media Objects and Image postilion comparison for PDF document and Charts and Comments comparison for slides file format. Here are some highlights: Support for new components: media objects, image positioning for PDF document. Watermarks Comparison for PDF document. Charts Comparison support for Slides file format. Comments Comparison support for Slides file format. Improvements - Document Comparison API for .NET 16.10.0These are the features that are improved in the latest version of the GroupDocs.Comparison API. Improved tables comparison for PDF document. Comparison Paragraph Absorber for cases with tables for PDF document. Document builder and page mapper for PDF document. Paragraph Absorber for cases with plain text for PDF document. Fixes - Document Comparison APIThis is the list of fixes done in the latest version of the GroupDocs.Comparison API for .NET 16.10.0. Identical text from neighboring paragraphs is defined as deleted and inserted for words document. Files are not opened after comparison for Slides file format For more details about supported document formats, please visit Features Overview. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API: Downloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples FeedbackYou are always welcome to share your feedback and suggestions to improve this product, we take it very seriously and try to incorporate it as much as its possible for upcoming releases . We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-net-16-10-0-ap/","summary":"We are as GroupDocs team member glad to see that our users community is growing with each and every day. We are also receiving many feedback and suggestions from users therefore we always try to provide new and enhanced solutions to our valuable customers to fulfill their requirements and incorporate their valuable suggestions. In this regard we are happy to announce another monthly release of GroupDocs.Comparison for .NET 16.10.0 API.","title":"GroupDocs.Comparison for .NET 16.10.0 Supports Watermark \u0026 Charts"},{"content":"\rDocument conversion now becomes easier with GroupDocs.Conversion for Java front end. Team GroupDocs delightedly releasing the servlets based front end of the API, facilitating the user to explore all of the conversion functionalities of the API.\nGroupDocs.Conversion front-end using Servlet This front end simplify the process to convert any document format into other formats. It is a single page application which allows user to upload any document, select target format and click Convert, then user must allow browser to download the converted document. By exploring this application you can also get the idea of using our Conversion API in your own project.\nSupported Formats by Conversion APIGroupDocs.Conversion API supports several document formats including Microsoft Word: DOC, DOCM, DOCX, DOT, DOTX, DOTM MS Excel: XLS, XLSX, XLSM, XLSB Presentation: PPT, PPTX, PPS, PPSX Portable Document Format: PDF Pre-requisitesBefore running this project on your local machine you’ll need: Java Development Kit 7 Maven 3 Any modern web browser like Mozilla Firefox, Google Chrome, Safari Running the Conversion API front endIn order to run this front-end application: Open Command Prompt Navigate to the project directory in command prompt Using command prompt run mvn jetty:run command. Navigate to http://localhost:8080/ in your web browser. Available Channels and ResourcesFind more channels and resources to download, learn, try and get technical support on GroupDocs.Conversion for Java: Product Home - GroupDocs.Conversion for Java. Documentation - Product Documentations. Product Support Forum - Technical Support Forum for GroupDocs.Conversion. Examples/Plugins/Showcases - Github source code examples. FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/conversion/groupdocs-conversion-java-servlet-frontend/","summary":"Document conversion now becomes easier with GroupDocs.Conversion for Java front end. Team GroupDocs delightedly releasing the servlets based front end of the API, facilitating the user to explore all of the conversion functionalities of the API.\nGroupDocs.Conversion front-end using Servlet This front end simplify the process to convert any document format into other formats. It is a single page application which allows user to upload any document, select target format and click Convert, then user must allow browser to download the converted document.","title":"Servlets based front-end Powered by GroupDocs.Conversion for Java"},{"content":"\rWe are excited to announce a simple front-end for GroupDocs.Viewer for Java API so newbies can start using it quickly, instead of learning the rich features and complexities provided in GroupDocs.Viewer for Java using Struts2 or GroupDocs.Viewer for Java Using Servlets.\nSimplicity comes with many advantages and disadvantages. JSP front-end is a minimum implementation and demonstrates how simple it is to get started with GroupDocs.Viewer for Java. This removes features some useful features, like the user cannot download the document, cannot print, zoom, etc. It just renders the document into HTML, SVG and CSS to make them display on the browser.\nJSP-based Front-end The application contains single JSP page, that creates a UI, and a Java class which is a wrapper for GroupDocs.Viewer for Java API. The following features have been removed:\nThumbnails Page Zooming Document Downloading Document Printing File Browser Watermark Ajax-based Document Navigation Supported Formats Widely used document formats for viewer are Word Document Formats (DOC, DOCM, DOCX, DOT, DOTX, DOTM), Excel Document Formats (XLS, XLSX, XLSM, XLSB), Presentation Document Formats (PPT, PPTX, PPS, PPSX), and Portable Document Formats (PDF) documents.\nPre-requisitesIn order to run GroupDocs.Viewer for Java JSP Front-end you’ll need: Java Development Kit 7 Maven 3 Any modern web browser like Mozilla Firefox, Google Chrome, Safari Running the applicationFollowing steps should be followed in order to run GroupDocs.Viewer for Java JSP Front-end: Navigate to the project directory Copy your desired file to storage folder Set the filename in index.jsp Using command prompt and run mvn jetty:run command. Navigate to http://localhost:8080/ in your web browser. Available Channels and Resources Find more channels and resources to download, learn, try and get technical support on GroupDocs.Viewer for Java:\nProduct Home - GroupDocs.Viewer for Java. Documentation - Product Documentations. Product Support Forum - Technical Support Forum for GroupDocs.Viewer. Examples/Plugins/Showcases - Github source code examples. FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-java-jsp-frontend/","summary":"We are excited to announce a simple front-end for GroupDocs.Viewer for Java API so newbies can start using it quickly, instead of learning the rich features and complexities provided in GroupDocs.Viewer for Java using Struts2 or GroupDocs.Viewer for Java Using Servlets.\nSimplicity comes with many advantages and disadvantages. JSP front-end is a minimum implementation and demonstrates how simple it is to get started with GroupDocs.Viewer for Java. This removes features some useful features, like the user cannot download the document, cannot print, zoom, etc.","title":"Simple JSP Front End example for GroupDocs.Viewer for Java users"},{"content":"\rGreat news for SharePoint developers, now they can add GroupDocs.Annotation for .NET 3.x. as custom Web-Part. Team GroupDocs is glad to announce the addition of GroupDocs.Annotation Web- Part Front End for SharePoint developers. Using this release SharePoint developers can not only explore and investigate GroupDocs.Annotation for .NET Front End but can also customize this Web-Part according to their needs. This project is already published on GitHub.\nSharePoint Web-Part Front End FeaturesThe SharePoint Web-Part Front End provides end users with tools needed for convenient annotating, viewing and navigation of a documents in a browser. The front end provides all the most commonly used UI controls available in native Adobe Reader’s plugin, including: Apply Annotations. Delete Annotation. Add/Delete comments. Thumbnail images for Annotation. Import Annotation. Page Zoom-in and Zoom-Out File Browser. Download As PDF Image Representation of the document Scroll view, one page in a row, two pages in a row view, double page flipping Pagination controls Text selection and copying to the clipboard GroupDocs.Annotation for SharePoint Plugin Prerequisites SharePoint Server 2013 Visual Studio 2013 or above Windows server 2008 or above Any standard web-browser, including IE8+, Mozilla Firefox, Chrome, Opera, Safari. How to Run Plugin Download GroupDocs.Annotation SharePoint Web-Part from GitHub Open GroupDocs.Annotation SharePoint Web-Part in your visual studio Open project properties, set your Site URL Set your license path in Default.aspx.cs Click Run. SharePoint Web-part Front End - DownloadsThe SharePoint Web-Part Front End can be downloaded from GitHub Repository. Please click here to download or visit the release page at GitHub.com Contribute in SharePoint Web-Part Front End SharePoint developers can also contribute to the Front End through one of the following ways:\nFind an issue or an idea of new feature – fix it and submit a pull request. Find an issue or an idea of new feature – create an issue in the Github. In this case, GroupDocs Support Team will look on it. Every effort by the developers/customers would be appreciated.\n","permalink":"https://blog.groupdocs.com/annotation/releasing-sharepoint-web-part-groupdocs-annotation-net/","summary":"Great news for SharePoint developers, now they can add GroupDocs.Annotation for .NET 3.x. as custom Web-Part. Team GroupDocs is glad to announce the addition of GroupDocs.Annotation Web- Part Front End for SharePoint developers. Using this release SharePoint developers can not only explore and investigate GroupDocs.Annotation for .NET Front End but can also customize this Web-Part according to their needs. This project is already published on GitHub.\nSharePoint Web-Part Front End FeaturesThe SharePoint Web-Part Front End provides end users with tools needed for convenient annotating, viewing and navigation of a documents in a browser.","title":"Releasing SharePoint Web-Part for GroupDocs.Annotation for .NET"},{"content":"\rThe GroupDocs team is glad to Announce the sample project for the ASP.NET Web-Form developers. The purpose behind this release is to expedite the developers to understand the implementation of GroupDocs.Annotation or write their own document Annotation Application using GroupDocs.Annotation for .NET 3.x. Practically all the functionalities have been implemented in this project which was given in the old GroupDocs.Annotation for .NET 2.x UI Based API. GroupDocs users are free to customize and enhance the application by their own. This project is already published on GitHub.\nASP.NET Web-Form Front End Features The ASP.NET Web-Form Front End provides end users with tools needed for convenient annotating, viewing and navigation of a documents in a browser. The front end provides all the most commonly used UI controls available in native Adobe Reader’s plugin, including:\nApply Annotations. Delete Annotation. Add/Delete comments. Thumbnail images for Annotation. Import Annotation. Page Zoom-in and Zoom-Out File Browser. Download As PDF Image Representation of the document Scroll view, one page in a row, two pages in a row view, double page flipping Pagination controls Text selection and copying to the clipboard Supported Annotations Types in Web-Forms Front-end GroupDocs.Annotation for .NET provides almost all types of annotations for different document formats. In this ASP.NET Web-Forms front end we have implemented all the annotations available for PDF document format. Here is the list of Annotations used in front-end example.\nText Annotation Area Annotation Point Annotation TextStrikeout Annotation Polyline Annotation TextField Annotation Watermark Annotation TextReplacement Annotation Arrow Annotation TextRedaction Annotation ResourcesRedaction Annotation TextUnderline Annotation Distance Annotation Requirements to Run ASP.NET WebForm Front End GroupDocs.Annotation for .NET Web-form based front-end doesn’t require any downloads or installations on the client side after deployment. it downloads all the required packages from Nuget including GroupDocs.Annotation for .NET API. End users can view the documents from any standard web-browser, including IE8+, Mozilla Firefox, Chrome, Opera, Safari5+ and their mobile versions. To deploy and properly configure the sample on the server, you will need a .NET Framework version 4.0+ and a “.NET-compatible” web-server: IIS, IIS Express or ASP.NET Development Server (Cassini). ASP.NET Web-Form Front End - Downloads The ASP.NET WebForm Front End can be downloaded from GitHub Repository. Please click here to download or visit the release page at GitHub.com\nContribute in ASP.NET Web-Form Front End The developers can also contribute to the FrontEnd through one of the following ways:\nFind an issue or an idea of new feature – fix it and submit a pull request. Find an issue or an idea of new feature – create an issue in the Github. In this case, GroupDocs Support Team will look on it. Every effort by the developers/customers would be appreciated.\n","permalink":"https://blog.groupdocs.com/annotation/groupdocs-annotation-web-form-front-end-example-net-users/","summary":"The GroupDocs team is glad to Announce the sample project for the ASP.NET Web-Form developers. The purpose behind this release is to expedite the developers to understand the implementation of GroupDocs.Annotation or write their own document Annotation Application using GroupDocs.Annotation for .NET 3.x. Practically all the functionalities have been implemented in this project which was given in the old GroupDocs.Annotation for .NET 2.x UI Based API. GroupDocs users are free to customize and enhance the application by their own.","title":"ASP.NET WebForm Front End powered by GroupDocs.Annotation for .NET"},{"content":"\rIn the modern times, the data is increasing dramatically. As a result, the large organizations may have maintained servers to store their organizational data in the form of files located in different directories. Very often, these organization may need to apply some filters to get files of a specific type i-e *.docx or *.txt etc. Filtering through a huge number files is not an easy job for the human beings and they might think if there is some automated system to achieve this. Of course, there is! We are happy to release such a business case example using GroupDocs.Metadata for .NET. Let\u0026rsquo;s see the available options and then how to do the same with GroupDocs.Metadata for .NET.\nFiltering Files using .NET ClassesThere are in-box solutions using System.IO.Directory or System.IO.DirectoryInfo classes in .NET Framework. Next code samples demonstrate how to get JPEG images in a specific directory. SolutionsUsing Directory.GetFiles: string\\[\\] files = Directory.GetFiles(@\u0026#34;C:\\\\download files\u0026#34;, \u0026#34;\\*.jpeg\u0026#34;); Using DirectoryInfo.GetFiles:\nDirectoryInfo dirInfo = new DirectoryInfo(@\u0026#34;C:\\\\download files\u0026#34;); string\\[\\] files = dirInfo.GetFiles(\u0026#34;\\*.jpeg\u0026#34;); Disadvantage The disadvantage of these approaches is that we are getting the file by extension and not by signature. Also, file type could have more than one extension and multiple filters could not be applied.\nFiltering files using GroupDocs.Metadata for .NET GroupDocs.Metadata for .NET provides a smooth way to filter the files of a specific file type by their signatures. Let\u0026rsquo;s see how can we perform this filtering.\nSolutions 1. Using DocumentTypeDetector Static Class\n// For complete examples and data files, please go to https://github.com/groupdocs-metadata/GroupDocs.Metadata-for-.NET public static class DocumentTypeDetector { /// \u0026lt;summary\u0026gt; /// Gets and returns document type of the file /// \u0026lt;/summary\u0026gt; /// \u0026lt;param name=\u0026#34;path\u0026#34;\u0026gt;File Path\u0026lt;/param\u0026gt; /// \u0026lt;returns\u0026gt;Document Type\u0026lt;/returns\u0026gt; public static DocumentType GetDocumentType(string path) { using (FileFormatChecker fileFormatChecker = new FileFormatChecker(path)) { return fileFormatChecker.GetDocumentType(); } } /// \u0026lt;summary\u0026gt; /// Gets and returns files of a specific document type /// \u0026lt;/summary\u0026gt; /// \u0026lt;param name=\u0026#34;directory\u0026#34;\u0026gt;Directory Path\u0026lt;/param\u0026gt; /// \u0026lt;param name=\u0026#34;documentType\u0026#34;\u0026gt;Document Type\u0026lt;/param\u0026gt; /// \u0026lt;returns\u0026gt;String array containing file paths\u0026lt;/returns\u0026gt; public static string\\[\\] GetFiles(string directory, DocumentType documentType) { // get all files using Directory.GetFiles approach string\\[\\] files = Directory.GetFiles(directory, \u0026#34;\\*.\\*\u0026#34;); // return empty array if directory is empty if (files.Length == 0) { return new string\\[0\\]; } List\u0026lt;string\u0026gt; result = new List\u0026lt;string\u0026gt;(); foreach (string path in files) { using (FileFormatChecker fileFormatChecker = new FileFormatChecker(path)) { if (fileFormatChecker.VerifyFormat(documentType)) { result.Add(path); } } } return result.ToArray(); } } 2. Defining Extension Method for System.IO.DirectoryInfo Class\n// For complete examples and data files, please go to https://github.com/groupdocs-metadata/GroupDocs.Metadata-for-.NET namespace System.IO { public static class MyExtension { /// \u0026lt;summary\u0026gt; /// Gets and returns files of a specific document type /// \u0026lt;/summary\u0026gt; /// \u0026lt;param name=\u0026#34;directory\u0026#34;\u0026gt;Directory Path\u0026lt;/param\u0026gt; /// \u0026lt;param name=\u0026#34;documentType\u0026#34;\u0026gt;Document Type\u0026lt;/param\u0026gt; /// \u0026lt;returns\u0026gt;File info array\u0026lt;/returns\u0026gt; public static FileInfo\\[\\] GetFiles(this DirectoryInfo directoryInfo, DocumentType documentType) { FileInfo\\[\\] files = directoryInfo.GetFiles(); // return empty array if directory is empty if (files.Length == 0) { return new FileInfo\\[0\\]; } List\u0026lt;FileInfo\u0026gt; result = new List\u0026lt;FileInfo\u0026gt;(); foreach (FileInfo fileInfo in files) { using (FileFormatChecker fileFormatChecker = new FileFormatChecker(fileInfo.FullName)) { if (fileFormatChecker.VerifyFormat(documentType)) { result.Add(fileInfo); } } } return result.ToArray(); } } } Complete Article For more details, please visit our new article: Detect Document Type\nRelated Links and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET.\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API videos Product Support Forum - Technical Support Forum for GroupDocs Metadata queries ","permalink":"https://blog.groupdocs.com/metadata/get-specific-file-type-using-groupdocs-metadata-net/","summary":"In the modern times, the data is increasing dramatically. As a result, the large organizations may have maintained servers to store their organizational data in the form of files located in different directories. Very often, these organization may need to apply some filters to get files of a specific type i-e *.docx or *.txt etc. Filtering through a huge number files is not an easy job for the human beings and they might think if there is some automated system to achieve this.","title":"Get Files of Specific Type using GroupDocs.Metadata for .NET"},{"content":"\rAre you interested in broadening the scope of your document viewer applications? Get started with GroupDocs.Viewer for .NET 16.10.0, coming up with the support of Mobipocket e-book format. Furthermore, 7 issues being found in earlier versions have been fixed in the latest release. Be the first to download this new release for a better experience.\nGroupDocs.Viewer for .NET 16.10.0 - New FeaturesBelow is the new feature added to** GroupDocs.Viewer for .NET 16.10.0.** Support of Mobipocket e-book format Document Viewer API for .NET- Improvements \u0026amp; FixesFollowing are the issues that are fixed or improved in the latest version of document viewer API for .NET. Improvement - Removing embedded audios from presentation Fix - Invalid rendering of DWG file into Image or HTML Fix - GetDocumentInfo() method is throwing exception Fix - Failed to load XPS file in evaluation mode Fix - DWG document is rendered into a small image Fix - SheetRender.GetPageSize throws an exception when the sheet is empty Fix - FormattedText does not return TextWidth for Japanese characters Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on document viewer API: Download - MSI Package and Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, you are welcome to share your suggestions with us. We shall be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-supports-mobi-format/","summary":"Are you interested in broadening the scope of your document viewer applications? Get started with GroupDocs.Viewer for .NET 16.10.0, coming up with the support of Mobipocket e-book format. Furthermore, 7 issues being found in earlier versions have been fixed in the latest release. Be the first to download this new release for a better experience.\nGroupDocs.Viewer for .NET 16.10.0 - New FeaturesBelow is the new feature added to** GroupDocs.Viewer for .","title":"GroupDocs.Viewer for .NET 16.10.0 Supports Mobipocket e-book Format"},{"content":"Launching GroupDocs.Annotation for Java 3.1.0 The best just got better, Team GroupDocs is pleased to introduce the Next Generation GroupDocs.Annotation for Java 3.1.0. This API has more advanced capabilities to annotate documents with area annotation, text highlight, text underline, text strikeout, watermarking, reply based comments and many more. The Next Generation GroupDocs.Annotation for Java 3.1.0 is a UI less API to facilitate the developers to create any kind of application including Desktop, Web and cloud applications.\nWhy newer version Older 2.x versions of GroupDocs.Annotation for java had UI and very complex and dependent API structure, becuase of which it required more coding efforts even for a simple application. Also developers have to code in a specific way for each development environment. Whereas, Next Generation GroupDocs.Annotation for Java API don\u0026rsquo;t have any UI, instead, all of its features are on back-end, implemented using simplified Object Oriented approach. In order to get more control over Annotations Management Processes (Adding, Removing, and Editing) in your PDF document, a new release of GroupDocs.Annotation is on board by GroupDocs team. Read more\nWhat are the Features GroupDocs.Annotation Provides?Listed below are the wide range of supported features of the Next Generation GroupDocs.Annotation for java API. Basic Annotations Area Annotation Point Annotation Text Annotation Highlight Annotation Strikeout/Underline Annotation Poly line Annotation Arrow Annotation Watermark Annotation Text Redaction Area Redaction Distance Annotation Reply Based Comments Abstract Data Storage GroupDocs.Annotation API provides abstract storage. User can use abstract storage by using implemented interface provided by API. Export Annotations API provides capability to export annotations to the PDF file. Users Management API provides Abstract-ready user management where every user can customize annotations according to their needs. Annotations Compatibility Annotations added by GroupDocs.Annotation API are compatible with native PDF annotations. Read more\nWhat Document Formats GroupDocs.Annotation Supports?Currently, GroupDocs.Annotation for Java supports Microsoft Word Documents (DOCX), Excel Worksheets (XLSX), PowerPoint Presentation (PPTX) and Portable Document Format (PDF) documents only. However, some other formats are planned to be supported in next releases. Zero Dependency on any External Software/ToolThis Document Annotation API is stand alone API and does not depend upon any external software or tool. Developers can create variety of applications using this API. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - SDK Package as well as Zipped JARs Documentation - Product Docs Examples/Showcases - Github source code examples Product Support Forum - Technical Support Forum for GroupDocs.Annotation FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/groupdocs-annotation-java-3-1-0-released/","summary":"Launching GroupDocs.Annotation for Java 3.1.0 The best just got better, Team GroupDocs is pleased to introduce the Next Generation GroupDocs.Annotation for Java 3.1.0. This API has more advanced capabilities to annotate documents with area annotation, text highlight, text underline, text strikeout, watermarking, reply based comments and many more. The Next Generation GroupDocs.Annotation for Java 3.1.0 is a UI less API to facilitate the developers to create any kind of application including Desktop, Web and cloud applications.","title":"Inaugurating Next Generation GroupDocs.Annotation for Java 3.1.0 - Simplifying Document Annotation"},{"content":"\rWhen you need to convert image file into other document format it seems very difficult task and when it comes to convert AutoCad drawing document into other document format like PDF, Cells , HTML etc. it seems almost impossible with ordinary tools available in market. At GroupDocs we always tries to provide something innovative to our users, in this regard we are happy to announce another monthly release of GroupDocs.Conversion for .NET 16.10.0 in the month of October 2016. This release has major feature for providing enhanced support for CAD file format conversion into other different formats, Default font for slides conversion and Fixed layout property for HTML when converting it into Word and PDF document format introduced along with 1 fix for stream conversion.\nNew Features - GroupDocs.Conversion 16.10.0 In this monthly release of GroupDocs.Conversion for .NET 16.10.0 Enhanced support provided for AutoCad document into different document formats are introduced .HTML conversion into PDF and Words document fixed layout property introduced along with 1 fix.\nFeatures Convert from CAD documents to Cells, Html, Image, PDF, Slides, Words. Setting default Fonts Add \u0026quot; FixedLayout \u0026quot; option to Words to Html conversions Add \u0026quot; FixedLayout \u0026quot; option to PDF to Html conversions Fixes Conversion with document as Stream input not working Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - Github source code examples Feedback We always welcome you to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/enhanced-autocad-document-conversion-introduced-groupdocs-conversion-net-16-10-0/","summary":"When you need to convert image file into other document format it seems very difficult task and when it comes to convert AutoCad drawing document into other document format like PDF, Cells , HTML etc. it seems almost impossible with ordinary tools available in market. At GroupDocs we always tries to provide something innovative to our users, in this regard we are happy to announce another monthly release of GroupDocs.","title":"CAD Document Support Introduced- GroupDocs.Conversion for .NET 16.10.0"},{"content":"\rIn order to enhance the user experience, we are pleased to announce a monthly release of GroupDocs.Signature for .NET that emerges with appealing features and bug fixes. Boost your e-signing experience with GroupDocs.Signature for .NET 16.10.0 by adding more options and properties to text, image or digital signatures and saving the signed document with different format. We would suggest you to download this latest release and go through the new features.\ne-Signature API - New Features Font options for Text Signature Background options for Text Signature Border setting for Text Signature Image Alignment for Image Signature Image signature Margins on Document Page Save Format options for different Documents types Improved Validation layer GroupDocs.Signature for .NET 16.10.0 - Bug Fixes Adjust Pdf Size options to document points dimension When signing a password-protected Words file with a digital signature, an exception is thrown When signing a PPTX and a password is set in the options, Aspose.Slides.PptxUnsupportedFormatException is thrown Fix Words Provider to locate Image Signature on Page Number from Option E-Signing API : Available Channels and ResourcesHere are a few channels and resources for you to learn, try and get technical support on Document Signing API for .NET: Download - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/signature/groupdocs-signature-for-net-16-10-0-released/","summary":"In order to enhance the user experience, we are pleased to announce a monthly release of GroupDocs.Signature for .NET that emerges with appealing features and bug fixes. Boost your e-signing experience with GroupDocs.Signature for .NET 16.10.0 by adding more options and properties to text, image or digital signatures and saving the signed document with different format. We would suggest you to download this latest release and go through the new features.","title":"GroupDocs.Signature for .NET 16.10.0 Supports Document Save Format Options"},{"content":"\rWe have always been improving our APIs to meet the requirements of our customers. Therefore, today, we are announcing another monthly release of GroupDocs.Search for .NET. GroupDocs.Search for .NET 16.10 introduces exact phrase search that enables the users to search the documents containing the exact query string. Furthermore, the working of the API is improved by introducing a couple of enhancements and a fix. Download the latest version to upgrade your applications.\nGroupDocs.Search for .NET - New Features Following is the new feature that is being introduced in version 16.10.\nExact Phrase Search .NET Search API - Enhancements and Fixes GroupDocs.Search for .NET 16.10 comes up with following enhancements and fixes.\nEnhancement - Get Matched Words in the Found Documents Enhancement - View Progress Percentage of Indexing or Updating Fix - Fix Query Parser to parse file names with extensions having one field name Available Channels and Resources Here are a few channels and resources for you to download, try, learn and get technical support on GroupDocs.Search:\nDownload - MSI Package Zipped DLLs Download - DLLs NuGet - NuGet Install Documentation - API Docs Examples/Plugins/Showcases - Source Code Examples and Open Source Application Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback If you have any suggestions, questions, or queries related to GroupDocs.Search API, we will be happy to hear from you. Just create a forum thread to share your thoughts.\n","permalink":"https://blog.groupdocs.com/search/groupdocs-search-dotnet-1610-exact-phrase-search/","summary":"We have always been improving our APIs to meet the requirements of our customers. Therefore, today, we are announcing another monthly release of GroupDocs.Search for .NET. GroupDocs.Search for .NET 16.10 introduces exact phrase search that enables the users to search the documents containing the exact query string. Furthermore, the working of the API is improved by introducing a couple of enhancements and a fix. Download the latest version to upgrade your applications.","title":"Introducing Exact Phrase Search in GroupDocs.Search for .NET 16.10"},{"content":" Team GroupDocs is contented to release Next Generation GroupDocs.Conversion for Java, a totally back-end API in the era of document conversion. API enables Java developers to convert a document in various supported formats. As the API is UI-Agnostic and no additional tool or service is required for it, developers can integrate it in their existing projects as well. We would suggest you to explore the API and share your valuable feedback\nWhy Next Generation GroupDocs.Conversion? The quite captivating fact about this document conversion API is, it supports generic document conversion for any Java application, it is not specific to web technologies only. Furthermore, the conversion process is performed very smoothly and time effectively. In Next Generation GroupDocs.Conversion for Java, there is no more dependency for Web UI based classes. Instead, only a single \u0026ldquo;GroupDocs.Conversion\u0026rdquo; reference is required to convert any document with advanced options for any applications. Document Conversion API - Features API allows you to convert back and forth between over 50 types of documents and images.\nConversion from Other Format to Spreadsheet Formats Conversion to Word Processing Formats Other Formatted Document Conversion to Presentation Document Formats Document Conversion to Pdf/HTML and Image File Formats Supported Document Format Conversions\nWord Processing Spread sheet Presentation Pdf HTML Image For more details about different convertible document formats, please visit this article. Migration to Next Generation GroupDocs.Conversion Migrating to Next Generation GroupDocs.Conversion is quite easy. In order to help customers migrate to V3.0.0 or above, we have added a migration articles in the Product Docs. Please feel free to have a look at article: Migrating to GroupDocs.Conversion 3.0.0 or Higher Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nAPI Home - GroupDocs.Conversion for Java Download - GroupDocs.Conversion for Java Download Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Product Support Forum - Technical Support Forum for GroupDocs.Conversion ","permalink":"https://blog.groupdocs.com/conversion/groupdocs-coversion-for-java-released/","summary":"Team GroupDocs is contented to release Next Generation GroupDocs.Conversion for Java, a totally back-end API in the era of document conversion. API enables Java developers to convert a document in various supported formats. As the API is UI-Agnostic and no additional tool or service is required for it, developers can integrate it in their existing projects as well. We would suggest you to explore the API and share your valuable feedback","title":"Next Generation GroupDocs.Conversion for Java is On-Board - Perform Conversion Between 50+ File Formats"},{"content":"\rWe are happy to share that another monthly release of GroupDocs.Metadata for .NET with a bunch of new features is available for the .NET community. GroupDocs.Metadata for .NET 16.10 has come with the support of WAV audio format. Not only this, the API has also brought some new features related to PSD, JPEG, TIFF and MP3 file formats. We recommend you to download this latest version and check out its exciting features.\nGroupDocs.Metadata for .NET - New FeaturesIn version 16.10, we have introduced following new features. Read WAV audio details Read IPTC metadata in TIFF format Read IPTC metadata in PSD format Read Lyrics3 tag in Mp3 format Update ID3v1 tag in Mp3 format Read Image Resource Blocks (native PSD metadata) in Photoshop format Read Image Resource Blocks (native PSD metadata) in Jpeg format Remove Photoshop metadata in Jpeg format For details, please visit: Features Overview\n.NET Metadata API - EnhancementsIn GroupDocs.Metadata for .NET 16.10, we have improved the working of IPTC readers. Previous versions get IPTC block from the first position in Image Resource Block but IPTC block may be presented onward. Starting from v16.10 IPTC reader scans all image resource blocks to find IPTC metadata. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Download - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API videos Product Support Forum - Technical Support Forum for GroupDocs Metadata queries FeedbackAs always, if you have some questions, queries or suggestions about GroupDocs.Metadata for .NET, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/groupdocs-metadata-dotnet-16-10-supports-wav-audio-format/","summary":"We are happy to share that another monthly release of GroupDocs.Metadata for .NET with a bunch of new features is available for the .NET community. GroupDocs.Metadata for .NET 16.10 has come with the support of WAV audio format. Not only this, the API has also brought some new features related to PSD, JPEG, TIFF and MP3 file formats. We recommend you to download this latest version and check out its exciting features.","title":"GroupDocs.Metadata for .NET 16.10 Supports WAV Audio Format"},{"content":"\rAt GroupDocs we always tries to improve our products and introduce new feature to provide quality and unique products to our valuable users. By maintaining our tradition we are pleased to announce monthly release of GroupDocs.Annotation for .NET 3.2.1 API. The latest release of our Document Annotation API provides new features, Improvement’s and fixes for existing features. GroupDocs.Annotation 3.2.1 included support to import annotations for word and PDF document format for all major annotation types (Highlight Text, Area Annotation, and Strikeout etc) also introducing export of different annotations for Word and PDF document format with all major supported annotations. Please download the latest release to use new exciting features to enhance your application with GroupDocs.Annotation for .NET\nNew Features Introduced - GroupDocs.AnnoationIn this monthly release All major Annotations for Words and PDF Document is now supported with import and export feature with improvement and enhancement. New feature lists are given below. Import Text-field annotation from Words Documents Implement Text-redaction annotation import from Word Tex-tStrikeout annotation import from Word Shape annotations import from Word Area annotation import from Word Add native Word annotations after export Word documents to Text Replacement annotation Text annotation import from Word Add native Word annotations after export Word documents Word annotations after export Word documents to Strikeout annotation Improvements \u0026amp; Fixes - Document Annotation API Implement option for ability to auto-import annotations when opening PDF documents users permission for Delete annotations - Fix For more details about supported conversions between different document formats, please visit this article.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Annotation FeedbackWe always appreciate and welcome to our valuable users to share their feedback to improve this product. We will be happy to know your thoughts and suggestions. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/import-export-introduced-groupdocs-annotation-3-2-1-net/","summary":"At GroupDocs we always tries to improve our products and introduce new feature to provide quality and unique products to our valuable users. By maintaining our tradition we are pleased to announce monthly release of GroupDocs.Annotation for .NET 3.2.1 API. The latest release of our Document Annotation API provides new features, Improvement’s and fixes for existing features. GroupDocs.Annotation 3.2.1 included support to import annotations for word and PDF document format for all major annotation types (Highlight Text, Area Annotation, and Strikeout etc) also introducing export of different annotations for Word and PDF document format with all major supported annotations.","title":"Import \u0026 Export  Introduced in GroupDocs.Annotation 3.2.1 for .NET"},{"content":"\rGroupDocs team is continuously adding support for new features and trying to improve GroupDocs.Comparison API for its precious user. We are glad that we are receiving many feedback from users and we are trying to provide features which are being demanded by our valuable customers. GroupDocs.Comparison for .NET is growing each day therefore we are providing new releases every month, in this regard we are happy to announce another exciting monthly release for GroupDocs.Comparison for .NET 3.5.0 API with many new features and improvements. Current release is providing support for Multiple word document comparison with single resulting file with track-changes option support. We suggest you to upgrade you Applications with latest release to add more feature.\nGroupDocs.Comparison for .NET 3.5.0 - New FeaturesIn this monthly release of GroupDocs.Comparison for .NET 3.5.0 new features are introduced for word document format like support for Multiple target files with one resulting file, multiple document comparison with track change options etc.. and for PDF document support of absorption of the Page Header \u0026amp; Footer are introduced, along with more improvements in API for smooth and fast Comparison. Here are some highlights: Add option to compose multiple result list from result lists of each document Support comparing multiple documents with track changes support of absorption of the Page Footer for PDF document format Included support of absorption of the Page Header for PDF document format Provide apply/discard changes support for multiple result changes list Document Comparison API - ImprovementsFollowing are the features that are improved in the latest version of the document comparison API. Document processing performance improvement for Word document format Divide text into paragraphs by checking if the text fragments are contained in different parent objects for PDF Improved Comparison paragraph absorber for cases with plain text for PDF document Improved text comparison support for all Adobe Acrobat formats For more details about supported document formats, please visit Features Overview. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API: Downloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples FeedbackWe always welcome to our valuable Customers to share their feedback and suggestions to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/multiple-document-comparison-groupdocs-comparison-net-3-5-0-api-2/","summary":"GroupDocs team is continuously adding support for new features and trying to improve GroupDocs.Comparison API for its precious user. We are glad that we are receiving many feedback from users and we are trying to provide features which are being demanded by our valuable customers. GroupDocs.Comparison for .NET is growing each day therefore we are providing new releases every month, in this regard we are happy to announce another exciting monthly release for GroupDocs.","title":"Multiple Target Documents – GroupDocs.Comparison for .NET 3.5.0 API"},{"content":"\rHere at GroupDocs we gratify our customers\u0026rsquo; feedback regarding our APIs. Hence, GroupDocs Team is pleased to release GroupDocs.Assembly for .NET 3.3.0 with remarkable features including support to add analogue of Microsoft Word NEXT fields into template syntax. We would suggest you to experience our new release that sums up the features given below.\nGroupDocs.Assembly for .NET 3.3.0 - Recent Features Add ability to update fields while assembling Word Processing documents Add ability to calculate formula while assembling Spreadsheet documents Add analogue of Microsoft Word NEXT fields into template syntax Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly: Download - MSI Package as well as Zipped DLLs NuGet - Nuget Installation Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly FeedbackWe observe your feedback carefully, please share your feedback about this Document Generation API. We will be happy to know your thoughts and we will try to enhance your experience with the API. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/assembly/groupdocs-assembly-net-3-3-0-released/","summary":"Here at GroupDocs we gratify our customers\u0026rsquo; feedback regarding our APIs. Hence, GroupDocs Team is pleased to release GroupDocs.Assembly for .NET 3.3.0 with remarkable features including support to add analogue of Microsoft Word NEXT fields into template syntax. We would suggest you to experience our new release that sums up the features given below.\nGroupDocs.Assembly for .NET 3.3.0 - Recent Features Add ability to update fields while assembling Word Processing documents Add ability to calculate formula while assembling Spreadsheet documents Add analogue of Microsoft Word NEXT fields into template syntax Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"GroupDocs.Assembly for .NET 3.3.0 Provides Support to Update Word Processing Documents Fields"},{"content":"\rToday, we\u0026rsquo;re delighted to share some new features and improvements that we\u0026rsquo;ve incorporated in the October release of GroupDocs.Viewer for .NET. This release comes up with the support of EMF and DICOM file formats. Along with this, the API also provides the way to work with layers in PDF documents and default fonts in diagram documents. Check out this latest version to enhance and improve your document viewer applications.\nGroupDocs.Viewer for .NET 3.7.0 - New FeaturesWe\u0026rsquo;ve introduced following new features in GroupDocs.Viewer for .NET 3.7.0. Show and hide PDF layers Set default font when rendering diagram documents Support of EMF file format Support of DICOM file format Document Viewer API for .NET- FixesListed below are the issues that are fixed in the latest version of document viewer API for .NET. Incomprehensible characters when viewing pdf Text issues when saving document containing XFA form to HTML Html watermark style block contains garbage characters Html watermark style block contains garbage characters Watermark is rendered incorrectly in Html representation WMF file dimensions are different from dimensions in the MS Paint TeX to Html conversion error Incorrect rendering of PDF documents into image The output PDF file contains black pages instead of content when converting DjVu to PDF DefaultRegularFont setting doesn\u0026rsquo;t work properly Specific pdf document can\u0026rsquo;t be saved as HTML Exception when converting document to HTML after cleanup Some characters are not displayed when rendering HTML or PNG Document Viewer API - ImprovementsFollowing are the improvements being made in the latest version of the API. Convert Pdf Dynamic XFA Form to Standard AcroForm Mark CachedPageDescription redundant constructor as Obsolete Save HTML resources to cache without saving them to local disc Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on document viewer API: Download - MSI Package and Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, you are welcome to share your suggestions with us. We shall be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-dot-net-3-7-0-supports-emf-dicom-file-formats/","summary":"Today, we\u0026rsquo;re delighted to share some new features and improvements that we\u0026rsquo;ve incorporated in the October release of GroupDocs.Viewer for .NET. This release comes up with the support of EMF and DICOM file formats. Along with this, the API also provides the way to work with layers in PDF documents and default fonts in diagram documents. Check out this latest version to enhance and improve your document viewer applications.","title":"GroupDocs.Viewer for .NET 3.7.0 Supports EMF and DICOM File Formats"},{"content":"\rAre you looking for some metadata editing tool to manipulate your files? Your search is over as the Metadata Editor powered by GroupDocs.Metadata for .NET is out and available now. Metadata Editor is a desktop application that demonstrates how to view and update the metadata information attached with the supported file formats using GroupDocs.Metadata for .NET API. Let\u0026rsquo;s download and give it a try.\n.NET Metadata Editor - FeaturesFollowing are the basic features exposed by the .NET Metadata Editor. Load/view metadata of any supported format Edit and update metadata information Save the document with updated metadata information Metadata Editor - Development Environment Front End /GUI Windows Form Custom user control to show/edit metadata information Back End FrameworkMicrosoft .NET Framework 3.5 or greater versions are supported. IDEThe application is compatible with Microsoft Visual Studio 2012 or greater. User and Developer GuideMetadata Editor powered by GroupDocs.Metadata for .NET is very easy to use. Following are some useful resources to learn about its working and usage. Technical Overview How to use Metadata Editor Developer\u0026rsquo;s Guide .NET Metadata Editor - GUI Screenshots Download.NET Metadata Editor is open source and available for download on GitHub. Download Contribute to Source CodeThe developers can also contribute to the source code through one of the following ways: Got an idea of a new feature? – implement it and create a pull request on GitHub. Found an issue in the project? – create and log the issue on Github. In this case, GroupDocs Support Team will look into it. Every effort by the developers/customers would be appreciated.\nFeedbackAs always, if you should have any questions, queries or suggestions about GroupDocs.Metadata for .NET API, just share with us by creating a forum thread. ","permalink":"https://blog.groupdocs.com/metadata/metadata-editor-powered-by-groupdocs-metadata-dot-net/","summary":"Are you looking for some metadata editing tool to manipulate your files? Your search is over as the Metadata Editor powered by GroupDocs.Metadata for .NET is out and available now. Metadata Editor is a desktop application that demonstrates how to view and update the metadata information attached with the supported file formats using GroupDocs.Metadata for .NET API. Let\u0026rsquo;s download and give it a try.\n.NET Metadata Editor - FeaturesFollowing are the basic features exposed by the .","title":"Metadata Editor Powered by GroupDocs.Metadata for .NET"},{"content":"\rDocument comparison is a process of finding differences in two documents of same format. It can be a content difference or can be any contextual differences. GroupDocs.Comparison for Java compares a source document with a target document and produces a result document which highlights the differences in a suitable way i.e. colored highlighting or by differing font information that has either been added to or removed from the reference document to produce the target document.\nServlets based Front-end for Comparison APIThe front-end is developed using Java Servlets. It is capable enough to accept two documents of common formats from the user and compare and highlight their differences in a third result file of same format. Common document formats for comparison include word processing documents (like Microsoft Word), spreadsheets (like Microsoft Excel), presentations (e.g. PowerPoint), and Portable Document Format (PDF) documents. How to use the ProjectThe working of GroupDocs.Comparison for Java is easy enough to be defined in a few steps. Two files of common formats are selected and uploaded. Mentions the type of comparison i.e. Words, Cells and PDF etc. Submits the form to start the actual work. Compares the documents and downloads the result file which highlights all the differences in uploaded files. PrerequisitesFollowing are the requirements to run GroupDocs.Comparison for Java Servlets Front-end. Java Development Kit 8 Maven 3 Any modern web browser like Mozilla Firefox, Google Chrome, Safari How to RunFollowing steps should be followed to run GroupDocs.Comparison for Java Servlets Front-end. Go to project directory using command prompt and run mvn jetty:run command. Go to http://localhost:8080/ using your web browser. Available Channels and ResourcesFind more channels and resources to download, learn, try and get technical support on GroupDocs.Comparison for Java: Product Home - GroupDocs.Comparison for Java Documentation - Product Documentations Product Support Forum - Technical Support Forum for GroupDocs.Comparison Examples/Plugins/Showcases - Github source code examples FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/servlets-frontend-groupdocs-comparison-for-java/","summary":"Document comparison is a process of finding differences in two documents of same format. It can be a content difference or can be any contextual differences. GroupDocs.Comparison for Java compares a source document with a target document and produces a result document which highlights the differences in a suitable way i.e. colored highlighting or by differing font information that has either been added to or removed from the reference document to produce the target document.","title":"Servlets Front-end for GroupDocs.Comparison for Java"},{"content":"\rAfter attaining a remarkable attention from .NET developers, GroupDocs team successfully ported GroupDocs.Comparison for Java API from Next Generation GroupDocs.Comparison for .NET. API provides facility to compare supported file formatted documents in a very convenient way. It supports numerous exciting document comparison features such as documents comparison + merging. It compares both content and styles in the documents and saves the difference summary in a separate result file. Furthermore, API supports multitude of file formatted documents such as, but not limited to Microsoft Office, PDF, Text, HTML documents. It\u0026rsquo;s worth downloading and testing the API.\nWhy GroupDocs.Comparison? Document comparison API comes with different comparison techniques and features that are enhanced to achieve fast and smooth results. It\u0026rsquo;s quite easy for Java developers to integrate GroupDocs.Comparison for Java in their projects. The API provides features to compare documents of most of the popular document formats including PDF, Microsoft Word, Microsoft Excel, Microsoft PowerPoint etc. The quite captivating fact about this document comparing and merging API is, it is devised as a totally back-end API. Hence it is UI agnostic. That makes it easy to integrate in any Java application. Supported Document Formats for Comparison\nPortable Document Formats - PDF, PDF/A Word Document Formats - DOC, DOCX Excel Document Formats - XLS, XLSX Presentation Document Formats - PPT, PPTX Open Document - ODT, ODS, ODP Plain Text File - TXT Hypertext Markup Language - HTML For more details about supported document formats, please visit Features Overview.\nGroupDocs.Comparison for Java 3.2.0 - Features Save html files to word document when use Comparison.Text for comparison Add GetChanges and UpdateChanges methods for Comparison.Text Implement the Saving of result Comparison as images PDF: Implement the own absorber of tables Implement formulas comparison for Words format Main Features of the GroupDocs.Comparison\nCompare contents including paragraphs, words etc. See difference in style changes like fonts, colors, bold, italic, underlines etc. Differences between the documents are saved in a result file. You can read that file to see the list of differences i.e. the items added, updated or deleted. Whether your application is a web/desktop or console based, you can just add it’s reference and start comparing documents. It takes just 2 lines of code to perform document comparison in your own Java application. When comparing Word files, the merged document can be saved as a DOC/DOCX file, reflecting all the differences found with the Word’s native “Track Changes” feature. GroupDocs.Comparison directly works with the native file format, instead of relying on Microsoft Office or other components. Hence, you get the best performance in document comparison. Support of File Type Detection from Stream Compare Encrypted Documents Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison:\nProduct Home - GroupDocs.Comparison for Java Documentation - Product Documentations Product Support Forum - Technical Support Forum for GroupDocs.Comparison Examples/Plugins/Showcases - Github source code examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-for-java-released/","summary":"After attaining a remarkable attention from .NET developers, GroupDocs team successfully ported GroupDocs.Comparison for Java API from Next Generation GroupDocs.Comparison for .NET. API provides facility to compare supported file formatted documents in a very convenient way. It supports numerous exciting document comparison features such as documents comparison + merging. It compares both content and styles in the documents and saves the difference summary in a separate result file. Furthermore, API supports multitude of file formatted documents such as, but not limited to Microsoft Office, PDF, Text, HTML documents.","title":"Introducing GroupDocs.Comparison for Java - Compare and Merge Famous Document Formats"},{"content":"\rNow, it’s quite easy for SharePoint developers to work with GroupDocs.Annotation for .NET. GroupDocs team proudly announces the addition of SharePoint Plugin for GroupDocs.Annotaion for .NET. This plugin permits SharePoint developers to explore and investigate GroupDocs.Annotation for .NET Front End. It demonstrates how GroupDocs.Annotation for .NET can be integrated with SharePoint.\nGroupDocs.Annotation for SharePoint Plugin Prerequisites SharePoint Server 2013 Visual Studio 2010, 2012, 2013, 2015 Windows server 2008 or above Any standard web-browser, including IE8+, Mozilla Firefox, Chrome, Opera, Safari5 How to Run Plugin Download GroupDocs.Annotation SharePoint Plugin from GitHub Open GroupDocs.Annotation SharePoint Plugin in your visual studio Open project properties, set your Site URL Set your license path in AnnotationController.cs Click Run. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Annotation FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/releasing-sharepoint-plugin-groupdocs-annotation-net/","summary":"Now, it’s quite easy for SharePoint developers to work with GroupDocs.Annotation for .NET. GroupDocs team proudly announces the addition of SharePoint Plugin for GroupDocs.Annotaion for .NET. This plugin permits SharePoint developers to explore and investigate GroupDocs.Annotation for .NET Front End. It demonstrates how GroupDocs.Annotation for .NET can be integrated with SharePoint.\nGroupDocs.Annotation for SharePoint Plugin Prerequisites SharePoint Server 2013 Visual Studio 2010, 2012, 2013, 2015 Windows server 2008 or above Any standard web-browser, including IE8+, Mozilla Firefox, Chrome, Opera, Safari5 How to Run Plugin Download GroupDocs.","title":"Releasing SharePoint Plugin for GroupDocs.Annotation for .NET"},{"content":" Are you fade up with document conversions with time taking process and limited format support ? Now we are pleased to announce the release of GroupDocs.Conversion for .NET 3.5.0. with super exciting speed and performance along with 50 plus document and image format support. This is fifth monthly release of GroupDocs.Conversion API which is now more faster and more reliable. Kindly download our latest release to enhance your Application.\nNew Features - GroupDocs.Conversion 3.5.0In this new release of GroupDocs.Conversion for .NET 3.5.0 Improved methods are introduced for better performance and Exception handling is also improved along with 3 fixes. Improvements Handled exceptions in HTML to Excel Conversion. % symbol in the file name were generating an exception. Convert Excel from Html - Table with background colour and some html controls were not converted properly . Exception Handling new Name Space Introduced \u0026ldquo;GroupDocs.Conversion.Exceptions\u0026rdquo; Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - Github source code examples ","permalink":"https://blog.groupdocs.com/conversion/groupdocs-conversion-net-3-5-0-introducing-faster-performance/","summary":"Are you fade up with document conversions with time taking process and limited format support ? Now we are pleased to announce the release of GroupDocs.Conversion for .NET 3.5.0. with super exciting speed and performance along with 50 plus document and image format support. This is fifth monthly release of GroupDocs.Conversion API which is now more faster and more reliable. Kindly download our latest release to enhance your Application.","title":"GroupDocs.Conversion for .NET 3.5.0 - Faster Performance Introduced"},{"content":"\rGroupDocs.Search for .NET API version 1.2 is available now with support of more Microsoft Word, Excel and PowerPoint formats. There is enhancement in Search API in form of user warnings with not supported seach settings in Fuzzy search, Regular expression and Synonym search. Some more enhancements in similarity level setting for Fuzzy search and total hit count for search results in this release.\n.NET Search API 1.2 enhancements and features Format list extended, now Search API supports below mentioned formats too. Microsoft Word: docm, dot, dotx Excel: xlsm, xltm PowerPoint: ppsx, pot User warnings on running search with not supported options Implemented similarity level setting for fuzzy search Ability to get hit count for search results by TotalHitCount property Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Search:\nDownload - MSI Package Zipped DLLs Download NuGet - Nuget install Documentation Examples/Plugins/Showcases - How to use Search API source code examples Video Tutorials - YouTube Search API videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback For any of your suggestions, questions and queries for improving the Search API, we will be happy to know about your thoughts. Create a forum thread to share your feedback.\n","permalink":"https://blog.groupdocs.com/search/search-api-net-released-1-2/","summary":"GroupDocs.Search for .NET API version 1.2 is available now with support of more Microsoft Word, Excel and PowerPoint formats. There is enhancement in Search API in form of user warnings with not supported seach settings in Fuzzy search, Regular expression and Synonym search. Some more enhancements in similarity level setting for Fuzzy search and total hit count for search results in this release.\n.NET Search API 1.2 enhancements and features Format list extended, now Search API supports below mentioned formats too.","title":"GroupDocs.Search for .NET 1.2.0 released with support of more Office docs formats"},{"content":"\rGroupDocs.Metadata for .NET version 1.7 is available now. Code is redefined by decreasing number of namespaces for easy integration. One major enhancement is support for MP3 format. So management of audio format metadata is more easy with this release.\nMetadata API extended features MP3 format supported - Detect MP3 format Reading ID3v1 Tag Reading ID3v2 Tag Get MPEG Audio format Information Read all EXIF tags Get specific EXIF tag by specific key or indexer .NET Metadata API enhancements Namespaces decreased by merging different namespaces into single one Detect file format at run time Exporting MP3 file format metadata into Excel and CSV formats Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET. Download - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation Examples/Plugins/Showcases - How to use Metadata API ver 1.7 source code examples Video Tutorials - YouTube API videos Product Support Forum - Technical Support Forum for GroupDocs Metadata queries FeedbackAs always, if someone has some questions, queries or suggestions in his/her feedback about GroupDocs.Metadata for .NET release 1.7.0, just share with us by creating a forum thread ","permalink":"https://blog.groupdocs.com/metadata/groupdocs-metadata-net-release-1-7/","summary":"GroupDocs.Metadata for .NET version 1.7 is available now. Code is redefined by decreasing number of namespaces for easy integration. One major enhancement is support for MP3 format. So management of audio format metadata is more easy with this release.\nMetadata API extended features MP3 format supported - Detect MP3 format Reading ID3v1 Tag Reading ID3v2 Tag Get MPEG Audio format Information Read all EXIF tags Get specific EXIF tag by specific key or indexer .","title":"GroupDocs.Metadata for .NET 1.7.0 Released with MP3 metadata support"},{"content":"\rWe are glad to see GroupDocs.Comparison API’s growth and users trust across the world. User’s trust and feedback always motivates us to make improvements and add more features in our Document Comparison API. Therefore we are happy to announce GroupDocs.Comparison for .NET 3.4.0 monthly release. In this new release we have introduced 8 new Features, 2 Improvements and 2 Fixes.\nNew Features - GroupDocs.Comparison for .NET 3.4.0In this new release of GroupDocs.Comparison for .NET 3.4.0 new features are introduced for word document format like support for Word-Art objects, Forms, Tables etc.. and for PDF document Absorber of paragraphs and tables absorption are introduced, along with more improvements in API for smooth and fast Comparison. Here are some highlights: Comparison of comments in Words document format. Support of WordArt objects Comparison. Table Comparison in a table in Words Format. Forms Comparison Support for Wods document format. Multi-language comaprison suport for Words. PDF document comparison for object model of Paragraph. Objects comparison with VBA scripts for words document. Implementation of absorber of paragraphs for the basic cases for PDF document. Document Comparison API 3.4.0 - ImprovementsFollowing are the features that are improved in the latest version of the document comparison API. Tables absorption for simple cases in PDF document. Implement the function CleanOperatorsList for PDF document. Document Comparison API 3.4.0 - FixesFollowing are the fixes in the latest version of the GroupDocs.Comparison for .NET 3.4.0 API. Comparison result \u0026ldquo;System.Argument\u0026rdquo; Exception Invalid font name Tables Aligner for PDF document, fixed function \u0026ldquo;GetText \u0026ldquo;of ComparisonCell class For more details about supported document formats, please visit Features Overview.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison for .NET API: Downloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples ","permalink":"https://blog.groupdocs.com/comparison/announcing-groupdocs-comparison-net-3-4-0-new-features-fixes/","summary":"We are glad to see GroupDocs.Comparison API’s growth and users trust across the world. User’s trust and feedback always motivates us to make improvements and add more features in our Document Comparison API. Therefore we are happy to announce GroupDocs.Comparison for .NET 3.4.0 monthly release. In this new release we have introduced 8 new Features, 2 Improvements and 2 Fixes.\nNew Features - GroupDocs.Comparison for .NET 3.4.0In this new release of GroupDocs.","title":"Announcing GroupDocs.Comparison for .NET 3.4.0 – New Features and Fixes"},{"content":"\nTeam GroupDocs is excited to announce GroupDocs.Assembly for .NET 3.2.0. The latest version of our document generation API comes with some useful new features. Please see below for the list of enhancements and features.\nDocument Generation API for .NET - Features Add support for outer document insertion while generating Word Processing documents Support number formatting features missing in .Net Framework such as ordinal, cardinal, alphabetic, etc. in template syntax Support string formatting features missing in .Net Framework such as upper, lower, capital, etc. in template syntax Add barcode image generation support for Word Processing documents Add barcode image generation support for Spreadsheet documents Add barcode image generation support for Presentation documents Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly: Download - MSI Package as well as Zipped DLLs NuGet - Nuget Installation Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly FeedbackWe listen to your feedback carefully, please share your feedback about Document Generation API. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/assembly/groupdocs-assembly-net-3-2-0-released/","summary":"Team GroupDocs is excited to announce GroupDocs.Assembly for .NET 3.2.0. The latest version of our document generation API comes with some useful new features. Please see below for the list of enhancements and features.\nDocument Generation API for .NET - Features Add support for outer document insertion while generating Word Processing documents Support number formatting features missing in .Net Framework such as ordinal, cardinal, alphabetic, etc. in template syntax Support string formatting features missing in .","title":"GroupDocs.Assembly for .NET 3.2.0 Released with New Features"},{"content":"\rWe are inspired to see a wide number of users across the world using GroupDocs.Viewer API and their feedback always motivate us to make improvements and add support for more features. Therefore, today, we are announcing another monthly release of GroupDocs.Viewer for .NET with 7 new features, 9 fixes, and 5 improvements. Let\u0026rsquo;s have an overview of the latest version.\nDocument Viewer API - New FeaturesFollowing are the new features introduced in GroupDocs.Viewer for .NET 3.6.0. Support for hyperlinks referencing a worksheet in the same document Hide/Show the hidden pages for MS Visio files Set default font when rendering Cells documents Set default font when rendering Words documents LaTeX file format viewing support Support for Spanish locale Support for Italian locale GroupDocs.Viewer for .NET 3.6.0 - FixesWe have provided fixes for following issues in the GroupDocs.Viewer for .NET 3.6.0. The bookmark range is invalid for .docx Text document format detected as \u0026ldquo;Unknown\u0026rdquo; GetPages() method throws \u0026ldquo;Parameter is not valid\u0026rdquo; exception Output HTML contains garbled characters and few characters are merged GetPages() throws exception for email attachments API throws exception in Mono User can\u0026rsquo;t catch GroupDocsException Convert .docx to .pdf wrong symbol Missing character in resultant HTML Document Viewer API for .NET - ImprovementsFollowing are the improvements being made in the latest version of the API. Applying pdf document transformations Set the encoding standard automatically Cleanup GetDocumentInfo method response Remove XHTML xmlns attribute Cleanup HTML markup for Cells documents Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on document viewer API: Download - MSI Package and Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, you are welcome to share your feedback to improve this API. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/releasing-groupdocs-viewer-dot-net-3-6-0/","summary":"We are inspired to see a wide number of users across the world using GroupDocs.Viewer API and their feedback always motivate us to make improvements and add support for more features. Therefore, today, we are announcing another monthly release of GroupDocs.Viewer for .NET with 7 new features, 9 fixes, and 5 improvements. Let\u0026rsquo;s have an overview of the latest version.\nDocument Viewer API - New FeaturesFollowing are the new features introduced in GroupDocs.","title":"Releasing GroupDocs.Viewer for .NET 3.6.0 - New Features and Fixes"},{"content":"\rTeam GroupDocs is pleased to announce Struts 2 Front End sample project for GroupDocs.Viewer for Java users.The core purpose behind development and release of this project is to facilitate those Java developers who like to do work in Struts 2 framework using GroupDocs.Viewer for Java 3.x. As the project is open source and published on GitHub, developers can customize it as per their needs.\nStruts 2 Front End - Features\rLearn how to install and configure Maven - Environment Setup Maven support for NetBeans Maven support for IntelliJ IDEA Maven support for Eclipse IDE Document Viewer for Java - DownloadStruts 2 front end project can be downloaded from GitHub Repository. Please click here to download Showcase project. Front End Documentation - Struts 2 Front End Documentation Product Support Forum - Technical Support Forum for GroupDocs.Viewer ","permalink":"https://blog.groupdocs.com/viewer/struts-2-front-end-project-groupdocs-viewer-java-users/","summary":"Team GroupDocs is pleased to announce Struts 2 Front End sample project for GroupDocs.Viewer for Java users.The core purpose behind development and release of this project is to facilitate those Java developers who like to do work in Struts 2 framework using GroupDocs.Viewer for Java 3.x. As the project is open source and published on GitHub, developers can customize it as per their needs.\nStruts 2 Front End - Features\rLearn how to install and configure Maven - Environment Setup Maven support for NetBeans Maven support for IntelliJ IDEA Maven support for Eclipse IDE Document Viewer for Java - DownloadStruts 2 front end project can be downloaded from GitHub Repository.","title":"Struts 2 Front End Project for GroupDocs.Viewer for Java Users"},{"content":"GroupDocs is improving its products continuously and seamlessly to enhance user experience. GroupDocs.Metadata for .NET 1.6.0 release is ready to be announced. View the list of interactive features introduced in the latest version of documents metadata API.\nGroupDocs.Metadata for .NET 1.6.0 – New Features In this release, the following new features are introduced so now API has the ability to:\nRead and write XMP metadata of TIFF format Inspect hidden data in Excel format Inspect hidden data in PowerPoint format Read TIFF Image File Directory tags Remove hidden data in PowerPoint format Remove hidden data in Excel format Throws DocumentProtectedException when document could not be opened without a password Read XMP metadata without header process instruction Process multi-page TIFF during loading XMP metadata Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata:\nDownload – MSI Package as well as Zipped DLLs NuGet – Nuget install Documentation Examples/Plugins/Showcases – How to use Metadata API source code examples Video Tutorials – YouTube videos Product Support Forum – Technical Support Forum for GroupDocs.Metadata Feedback As always, if someone is interested in sharing his/her feedback about GroupDocs.Metadata for .NET release 1.6.0, just share thoughts by creating a forum thread.\n","permalink":"https://blog.groupdocs.com/metadata/groupdocs-metadata-net-1-6-0-released/","summary":"GroupDocs is improving its products continuously and seamlessly to enhance user experience. GroupDocs.Metadata for .NET 1.6.0 release is ready to be announced. View the list of interactive features introduced in the latest version of documents metadata API.\nGroupDocs.Metadata for .NET 1.6.0 – New Features In this release, the following new features are introduced so now API has the ability to:\nRead and write XMP metadata of TIFF format Inspect hidden data in Excel format Inspect hidden data in PowerPoint format Read TIFF Image File Directory tags Remove hidden data in PowerPoint format Remove hidden data in Excel format Throws DocumentProtectedException when document could not be opened without a password Read XMP metadata without header process instruction Process multi-page TIFF during loading XMP metadata Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"GroupDocs.Metadata for .NET 1.6.0 Released with New Features"},{"content":"\rNow, it\u0026rsquo;s quite easy for those Java developers who like to write their own Servlet based applications using GroupDocs.Viewer for Java 3.x API. GroupDocs team is pleased to release the Servlet based front end project. This project elaborates all GroupDocs.Viewer for Java 3.x functionalities and helps developers in integrating the API in their projects. As the project is open source and published on GitHub, developers can customize it as per their needs.\nServlets Based Front End - FeaturesThis Front End provides end users with tools needed for convenient viewing and navigation of documents in a browser. Most commonly used UI controls that are available in native Adobe Reader’s plugin are provided in this front end, including: Pagination Controls Page Zooming Page Thumbnails Document Downloading Document Printing File Browser GroupDocs.Viewer for Java Front End - Requirements to RunPre-Requisites Java development kit (JDK) 1.8 Maven 4.0.0 Any latest browsers (Firefox, Chrome ,IE9 or greater, Safari etc.) How to Run Application It is assumed that maven is installed and configured in your system path. You can edit the project by opening in your favorite IDE like NetBeans, Eclipse, and IntelliJ IDEA. You can also run the project using CMD, follow the given steps.\nInside the project folder, run \u0026ldquo;mvn jetty:run\u0026rdquo; command Go to browser and type \u0026ldquo;http://localhost:8080/\u0026rdquo; You may find following resources helpful:\nLearn how to install and configure Maven - Environment Setup Maven support for NetBeans Maven support for IntelliJ IDEA Maven support for Eclipse IDE\nDocument Viewer for Java - DownloadThis Front End project can be downloaded from GitHub Repository. Please click here to download Showcase project. Contribute in Document Viewer Front EndThe developers can also contribute to the Front End through one of the following ways: Got an idea of new feature – fix it and submit a pull request. Find an issue in the project – create and log the issue on Github. In this case, GroupDocs Support Team will look on it. Every effort by the developers/customers would be appreciated.\nAvailable Channels and ResourcesHere are a few channels and resources for you to learn, try and get technical support on Document Viewer API for Java: Front End Documentation - Servlets Based Front End Documentation Product Support Forum - Technical Support Forum for GroupDocs.Viewer ","permalink":"https://blog.groupdocs.com/viewer/servlets-based-front-end-project-groupdocs-viewer-java-users/","summary":"Now, it\u0026rsquo;s quite easy for those Java developers who like to write their own Servlet based applications using GroupDocs.Viewer for Java 3.x API. GroupDocs team is pleased to release the Servlet based front end project. This project elaborates all GroupDocs.Viewer for Java 3.x functionalities and helps developers in integrating the API in their projects. As the project is open source and published on GitHub, developers can customize it as per their needs.","title":"Servlets Based Front End Project for GroupDocs.Viewer for Java Users"},{"content":"\rAt GroupDocs, we are always keen to improve our products and enhance user experience. Hence, we are excited to announce GroupDocs.Search for .NET 1.1.0. The latest version of our search API provides new features and enhancements made to existing options. Please see below for the list of features.\nGroupDocs.Search for .NET 1.1.0 - Features In this update new feature for and enhancements for the Excel, PowerPoint and Word Document File Formats have been added:\nSupport for OST and PST MS Outlook formats. Improvement in Indexing for PPT and PPTX PowerPoint Document. Enhancement made for All Document Changes in Folder. Search Results Count Property Feature Updated. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Search:\nDownload - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation Examples/Plugins/Showcases - How to use Search API source code examples Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback To share your feedback for improving the Search API, we will be happy to know about your thoughts. Create a forum thread\n","permalink":"https://blog.groupdocs.com/search/groupdocs-search-net-1-1-0-released/","summary":"At GroupDocs, we are always keen to improve our products and enhance user experience. Hence, we are excited to announce GroupDocs.Search for .NET 1.1.0. The latest version of our search API provides new features and enhancements made to existing options. Please see below for the list of features.\nGroupDocs.Search for .NET 1.1.0 - Features In this update new feature for and enhancements for the Excel, PowerPoint and Word Document File Formats have been added:","title":"GroupDocs.Search for .NET 1.1.0 Released with New Features"},{"content":"\rWe are pleased to announce the monthly release of Next Generation GroupDocs.Comparison for .NET 3.3.0. with some exciting features. In this version, some new features has been introduced along with some important fixes. Also, this version has a new installer. We recommend that you download and update the API as soon as you can.\nGroupDocs.Comparison for .NET 3.3.0 - New FeaturesIn this new release of GroupDocs.Comparison for .NET 3.3.0 new features are introduced for word document format when use Comparison.Words for comparison and Page Number and Add Group Shapes along with more improvements in API for smooth and fast Comparison. Here are some highlights: Add Page Numbers Comparison for Word Processing Document Group Shapes Support for Word Processing Document Document Comparison API - ImprovementsFollowing are the features that are improved in the latest version of the document comparison API. Improved the comparison of tables for Comparison for Word Document format Enhanced Comparison for Words Document for Contents list Improved Spreadsheet format Performance Displaying of images and text after process for comparison is Improved Comparison improved for PDF Document working with tables For more details about supported document formats, please visit Features Overview.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison: Downloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-net-3-3-0-announced/","summary":"We are pleased to announce the monthly release of Next Generation GroupDocs.Comparison for .NET 3.3.0. with some exciting features. In this version, some new features has been introduced along with some important fixes. Also, this version has a new installer. We recommend that you download and update the API as soon as you can.\nGroupDocs.Comparison for .NET 3.3.0 - New FeaturesIn this new release of GroupDocs.Comparison for .NET 3.3.0 new features are introduced for word document format when use Comparison.","title":"GroupDocs.Comparison for .NET 3.3.0 Announced"},{"content":"\rGroupDocs Team is pleased to announce new release of GroupDocs.Annotation for .NET 3.1.0 API. The latest release of our Document Annotation API provides new features, Improvement’s and fixes for existing features. GroupDocs.Annotation 3.1.0 also included support for word document format with all major annotation types (Highlight Text, Area Annotation, and Strikeout etc). Please download the latest release to enhance your application with document annotation features\nNew Features and Support for Word DocumentIn this release All Annotations for Words Document is now supported with improvement and enhancement. Supported Annotations lists are given below. Text Area annotation Highlight Text annotation Strikeout/underline Text replacement Resource redaction Export To Words Document Annotation API - Improvements Performance Improvement Exception handling for cells for Unsupported Annotations Slides Exception handling for Unsupported Annotations For more details about supported conversions between different document formats, please visit this article.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Annotation FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/annouced-groupdocs-annotation-net-3-1-0-words-document-format-support/","summary":"GroupDocs Team is pleased to announce new release of GroupDocs.Annotation for .NET 3.1.0 API. The latest release of our Document Annotation API provides new features, Improvement’s and fixes for existing features. GroupDocs.Annotation 3.1.0 also included support for word document format with all major annotation types (Highlight Text, Area Annotation, and Strikeout etc). Please download the latest release to enhance your application with document annotation features\nNew Features and Support for Word DocumentIn this release All Annotations for Words Document is now supported with improvement and enhancement.","title":"Annotate Word Documents with GoupDocs.Annotation 3.1.0 for .NET API"},{"content":"\rWe\u0026rsquo;ve always been listening to the feedback of our valuable customers and in response, we are announcing another monthly release of GroupDocs.Viewer for .NET with fixes for over 15 issues. The latest version has also introduced some new features along with necessary improvements. Let\u0026rsquo;s have a glance at what v3.5.0 has come with.\nDocument Viewer API - New FeaturesListed below are the new features introduced in GroupDocs.Viewer for .NET 3.5.0. Implement saving Cells document sheet to multiple pages in image mode Implement ability to specify font for watermark GroupDocs.Viewer for .NET 3.5.0 - FixesWe have provided fixes for following issues in the GroupDocs.Viewer for .NET 3.5.0. Cannot add page to pdf document OutOfMemoryException raised when total file size reached up to 250MB The operation is not supported error raised when loading epub document IOException is raised when try to move a loaded document(into the viewer) to any other directory Cell shading is not applied uniformly while converting spreadsheet to HTML Ott file stream detects as ods file format GetDocumentInfo() throws \u0026ldquo;Parameter is not valid\u0026rdquo; exception Excel file is not properly rendering into HTML Header contents of Word document are not appearing in rendered html or images Exception generated while calling handler.getDocumentInfo(uuid) Exception when calling GetPdfFile/RotatePage/ReorderPage with guid without extension Incorrect watermark position and text in PDF file Out Of Memory exception while rendering excel file into HTML Each page of a Word document is converted to HTML too long Incorrect saving PDF to HTML There is no text in tables of a PDF after conversion to HTML Text selection is unstable in Firefox on the HTML engine Document Viewer API for .NET - ImprovementsFollowing are the improvements made in the latest version of the API. Implement GetPdfFile from stream or remote file Improve Words files to HTML rendering speed Implement saving file data separately based on options Implement releasing converters resources Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on document viewer API: Download - MSI Package and Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, you are welcome to share your feedback to improve this API. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-net-3-5-0-new-features-fixes-improvements/","summary":"We\u0026rsquo;ve always been listening to the feedback of our valuable customers and in response, we are announcing another monthly release of GroupDocs.Viewer for .NET with fixes for over 15 issues. The latest version has also introduced some new features along with necessary improvements. Let\u0026rsquo;s have a glance at what v3.5.0 has come with.\nDocument Viewer API - New FeaturesListed below are the new features introduced in GroupDocs.Viewer for .NET 3.","title":"Releasing GroupDocs.Viewer for .NET 3.5.0 - New Features and Fixes"},{"content":"\nTeam GroupDocs is pleased to announce release of GroupDocs.Signature for .NET Visual Studio Plugin. The exciting fact about this plugin is, there is no need to download DLL and Examples separately. It has reduced the efforts to run E-Signature API examples for the developers. All you have to do is to install the MSI package and then a new extension will be added in Visual Studio file menu. Clicking on this extension you can run either C# or Visual Basic examples.\nFeatures : E-Signing API Visual Studio Plugin Displays GroupDocs in File Menu of Visual Studio. Automatically downloads source code Downloads GroupDocs.Signature for .NET API automatically. Adds API reference in project automatically. Provides Examples for CSharp and VB.NET. Supported Visual Studio versions are 2010, 2012 and 2013. Runs project in few clicks. Easy to Use. Reduces effort and time. Available Resources for Downloads CodePlex Github Visual Studio Gallery Installation and UsageInstallation of Visual Studio Plugin for GroupDocs.Signature for .NET is very simple and robust. It creates example project to use and understand, How to add text, image and digital signatures on business or personal documents. Using Visual Studio Plugin, user just needs to download MSI file and install it. After the installation, plugin will be integrated with Visual Studio and appear in File menu. How to Install Usage Screenshots\rTo ContributeVisual Studio Plugin for GroupDocs.Signature for .NET is open source and available for download. Developers can download it and get help to understand its working and extend its functionality. Following are the resources from where source code can be downloaded. CodePlex GitHub Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread.\n","permalink":"https://blog.groupdocs.com/signature/groupdocs-signature-net-visual-studio-plugin-released/","summary":"Team GroupDocs is pleased to announce release of GroupDocs.Signature for .NET Visual Studio Plugin. The exciting fact about this plugin is, there is no need to download DLL and Examples separately. It has reduced the efforts to run E-Signature API examples for the developers. All you have to do is to install the MSI package and then a new extension will be added in Visual Studio file menu. Clicking on this extension you can run either C# or Visual Basic examples.","title":"GroupDocs.Signature for .NET Visual Studio Plugin Released"},{"content":"\rToday, team GroupDocs is pleased to announce the release of GroupDocs.Signature for .NET with a lot of signing features worth experiencing. This Signing API allows developers to write applications with ability to significantly sign electronic docs of various file formats. Note that API permits the user to add different types of signatures on electronic documents.\nWhy Next Generation GroupDocs.Signature?The legacy version of API was UI dependent. The quite captivating fact about this e-signing API is, it\u0026rsquo;s UI less and independent calls can be made. Basically, it is a back-end API that can be easily integrated in any .NET application without any dependency. Some salient features of Document Signing API are given below: Different types of signatures are supported Document Signing is no longer coupled with GUI and web, thus enabling you to use the API in a larger number of scenarios. This lightweight API provides single solution for multiple devices (i.e. mobile, web, tablet). Handling all kind of signature properties easily Signature TypesFollowing types of signatures are supported by the API: Text Signature Image Signature Digital Signature Zero Dependency on any External Software/ToolGroupDocs.Signature itself does not require any additional software except .NET framework, it simply accepts a supported formatted input file to sign. In order to see how to sign various types of documents, please visit Developers Guide. e-Signature API : Available Channels and ResourcesHere are a few channels and resources for you to learn, try and get technical support on Document Signing API for .NET: Download - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples - Examples, Showcases and Plugins Product Support Forum - Technical Support Forum for GroupDocs.Signature FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/signature/releasing-simplest-document-signing-api-for-net/","summary":"Today, team GroupDocs is pleased to announce the release of GroupDocs.Signature for .NET with a lot of signing features worth experiencing. This Signing API allows developers to write applications with ability to significantly sign electronic docs of various file formats. Note that API permits the user to add different types of signatures on electronic documents.\nWhy Next Generation GroupDocs.Signature?The legacy version of API was UI dependent. The quite captivating fact about this e-signing API is, it\u0026rsquo;s UI less and independent calls can be made.","title":"Releasing Next Generation GroupDocs.Signature for .NET - Simplest API for E-Signature"},{"content":"\rGroupDocs Team always tries to improve user experience and facilitate users to save their precious time and minimize the extra efforts by creating different VS plugins, in this regard we are glad to announce of Document Annotation API Visual Studio plugin which helps and performs all the steps required to try-out examples automatically. All you have to do is to install the plugin via .msi available and launch the plugin wizard from File Menu. Once wizards completes it processing, you can run and explore the example code of CSharp or VB.NET as per your requirement within in Visual Studio.\nFeatures - Annotation API Visual Studio Plugin Displays GroupDocs in File Menu of Visual Studio. Automatically downloads source code Downloads GroupDocs.Annotation for .NET API automatically. Adds API reference in project automatically. Provides Examples for CSharp and VB.NET. Supported Visual Studio versions are 2010, 2012 and 2013. Runs project in few clicks. Easy to Use. Reduces effort and time. Available Resources for Downloads Plugins CodePlex Github Visual Studio Gallery Source Code CodePlex Github GroupDocs.Annoatation API for .NET Installation and UsageInstallation of Visual Studio Plugin for GroupDocs.Annoatation for .NET Examples is very simple and robust and will create example project to use and understand How to annotate text and image Using Visual Studio Plugin, User just needs to download MSI file and install it. After finishing the installation, plugin will be integrated with Visual Studio and appear in File menu. How to Install Usage Screenshots\rTo ContributeVisual Studio Plugin for GroupDocs.Annotation for .NET API examples is open source and available for download. Developers can download it and get help to understand its working and extend its functionality. Following are the places from where source code can be downloaded. CodePlex GitHub Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread.\n","permalink":"https://blog.groupdocs.com/annotation/groupdocs-annotation-net-plugin-visual-studio-released/","summary":"GroupDocs Team always tries to improve user experience and facilitate users to save their precious time and minimize the extra efforts by creating different VS plugins, in this regard we are glad to announce of Document Annotation API Visual Studio plugin which helps and performs all the steps required to try-out examples automatically. All you have to do is to install the plugin via .msi available and launch the plugin wizard from File Menu.","title":"GroupDocs.Annotation for .NET Visual Studio Plugin Released"},{"content":"At GroupDocs, we are always keen to improve our products and enhance user experience. Hence, we are excited to announce GroupDocs.Metadata for .NET 1.5.0. The latest version of our metadata API provides many new features. Please see below for the list of features.\nGroupDocs.Metadata for .NET 1.5.0 – Features In this update new abilities for JP2/JPEG2000, JPEG and MS Visio File Formats have been added:\nRead \u0026amp; write XMP metadata of JP2 Format Detect bar-codes in JPEG Format Save changes into original document source (doc). Update document properties of MS Visio Format Update \u0026amp; Remove IPTC metadata of JPEG format Update ApplicationRecord and EnvelopeRecord datasets of IPTC metadata Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata:\nDownload – MSI Package as well as Zipped DLLs NuGet – Nuget install Documentation Examples/Plugins/Showcases – How to use Metadata API source code examples Video Tutorials – YouTube videos Product Support Forum – Technical Support Forum for GroupDocs.Metadata Feedback As always, you are welcome to share your feedback to improve the Metadata API. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/metadata/groupdocs-metadata-net-1-5-0-released/","summary":"At GroupDocs, we are always keen to improve our products and enhance user experience. Hence, we are excited to announce GroupDocs.Metadata for .NET 1.5.0. The latest version of our metadata API provides many new features. Please see below for the list of features.\nGroupDocs.Metadata for .NET 1.5.0 – Features In this update new abilities for JP2/JPEG2000, JPEG and MS Visio File Formats have been added:\nRead \u0026amp; write XMP metadata of JP2 Format Detect bar-codes in JPEG Format Save changes into original document source (doc).","title":"GroupDocs.Metadata for .NET 1.5.0 Released with New Features"},{"content":"Releasing GroupDocs.Conversion 3.4.0 API We are happy to reveal the new release of GroupDocs.Conversion for .NET API 3.4.0 with most demanding features addition. This version has a new installer and some new features and fixes are introduced. We recommend that you download and update your application immediately with new API release to enhance performance of your app and add new exciting features.\nFeatures - Document Conversion API Version 3.4.0 In this new Version of GroupDocs.Conversion for .NET 3.4.0 new demanding properties are introduced for show/hide track changes for word processing document format along HTML to image conversion is also introduced with advance Image settings . In this release GroupDocs.Conversion API 3.4.0. bug fixing and many improvements are also done. Here are major changes:\nShow Hide Track Changes HTML to Image Conversion Documents Conversion API Supported Formats For more details about supported document conversions between different document formats, please visit this article. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - Github source code examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/announcing-show-hide-track-changes-feature-word-processing-format/","summary":"Releasing GroupDocs.Conversion 3.4.0 API We are happy to reveal the new release of GroupDocs.Conversion for .NET API 3.4.0 with most demanding features addition. This version has a new installer and some new features and fixes are introduced. We recommend that you download and update your application immediately with new API release to enhance performance of your app and add new exciting features.\nFeatures - Document Conversion API Version 3.4.0 In this new Version of GroupDocs.","title":"Show Hide Track Changes feature Announced  for Word Processing format"},{"content":"\rTeam GroupDocs is pleased to announce Spring MVC Front End sample project for GroupDocs.Viewer for Java users. The core idea behind the development of this project is to facilitate developers to write their own document viewer using GroupDocs.Viewer for Java 3.x. As the project is open source and published on GitHub, developers can customize it as per their needs.\nSpring MVC Front End - FeaturesThis Front End provides end users with tools needed for convenient viewing and navigation of documents in a browser. Most commonly used UI controls that are available in native Adobe Reader’s plugin are provided in this front end, including: Pagination Controls Page Zooming Page Thumbnails Document Downloading Document Printing File Browser GroupDocs.Viewer for Java Front End - Requirements to RunPre-Requisites Java Verion 1.5 or above JDK Verison 1.5 or above Jetty Version 9.3.0 Maven 4.0.0 Spring Framework 4.2 Any latest browsers (Firefox, Chrome ,IE9 or greater, Safari etc.) GroupDocs.Viewer 3.0.0 for Java. How to Run Application\nDownload the code, import as maven project in eclipse Run As maven; Goals \u0026ldquo;Jetty:run\u0026rdquo; Goto browser and type \u0026ldquo;localhost:8080/action Document Viewer for Java - DownloadThe Spring MVC Front End can be downloaded from GitHub Repository. Please click here to download Showcase project. Contribute in Spring MVC Front EndThe developers can also contribute to the Front End through one of the following ways: Got an idea of new feature – fix it and submit a pull request. Find an issue in the project – create and log the issue on Github. In this case, GroupDocs Support Team will look on it. Every effort by the developers/customers would be appreciated.\nAvailable Channels and ResourcesHere are a few channels and resources for you to learn, try and get technical support on Document Viewer API for Java: Front End Documentation - Spring MVC Front End Documentation Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Viewer ","permalink":"https://blog.groupdocs.com/viewer/spring-mvc-front-end-project-groupdocs-viewer-java-users/","summary":"Team GroupDocs is pleased to announce Spring MVC Front End sample project for GroupDocs.Viewer for Java users. The core idea behind the development of this project is to facilitate developers to write their own document viewer using GroupDocs.Viewer for Java 3.x. As the project is open source and published on GitHub, developers can customize it as per their needs.\nSpring MVC Front End - FeaturesThis Front End provides end users with tools needed for convenient viewing and navigation of documents in a browser.","title":"Spring MVC Front End Project for GroupDocs.Viewer for Java Users"},{"content":"\rThe GroupDocs team is delighted to announce the Front End sample project for the ASP.NET MVC developers. The purpose after this release is to enable the developers to write their own document annotation front-end using GroupDocs.Annotation for .NET 3.x. nearly all the features have been applied in this project which was given in the old GroupDocs.Annotation for .NET 2.x UI Based API. The developers are free to customize the application to fulfill their own requirements. This project is available at github.com.\nSupported Document Annotation Features The ASP.NET MVC Front-End provides end users with tools needed for convenient viewing and Annotation of a documents. ASP.NET MVC Front-End is using GroupDocs.Annotation for .NET API to display and annotate Document in a browser.The front end provides almost all the common Annotation features including:\nArea annotation - mark up an area with a rectangle and add notes to it. Point annotation - stick comments to any point in the document. Typewriter - add sticky notes with rich text. Text annotation - comment on selected text. Strikeout/underline - mark up text with strikethroughs or underlines. Text replacement - type text to replace selected text. Text redaction - blackout selected text. Area redaction - blackout selected area within the document. Poly-line - draw shapes and freehand lines. Pointer/arrow - drop arrows with notes. Watermark - add a watermark. Ruler - measure the distance between objects in a document. Undo/redo - cancel or reverse annotations placed on a document. Requirements to Deploy and Run ASP.NET MVC Front End If you want to run the GroupDocs.Annotation for .NET supported application it doesn’t need any download or installation on client side. End user can render the documents from any standard web-client browser, like IE8+, Mozila Firefox, Chrome, Opera, Safari 5+ and their mobile version. To deploy and properly configure the GroupDocs.Annotation ASP.NET MVC Front-End application on server, you will need aMicrosoft .NET Framework version 4.0+ and a “.NET-Compatible Web-Server: Internet Information Services (IIS), IIS Express or ASP.NET Development Server (Cassini). Downloads of ASP.NET MVC Front End The ASP.NET MVC Front End can be downloaded from GitHub Repository. Please click here to download or visit the release page at GitHub.com\nTo Contribute in ASP.NET MVC Front End The developers can also contribute to the Front-End through one of the following ways:\nFind an issue or an idea of new feature – fix it and submit a pull request. Create an issue in the Github. In this case, GroupDocs Support Team will look on it. Every effort by the developers/customers would be appreciated.\n","permalink":"https://blog.groupdocs.com/annotation/asp-net-mvc-front-end-example-groupdocs-annotation-net/","summary":"The GroupDocs team is delighted to announce the Front End sample project for the ASP.NET MVC developers. The purpose after this release is to enable the developers to write their own document annotation front-end using GroupDocs.Annotation for .NET 3.x. nearly all the features have been applied in this project which was given in the old GroupDocs.Annotation for .NET 2.x UI Based API. The developers are free to customize the application to fulfill their own requirements.","title":"GroupDocs.Annotation for .NET announcing  MVC based Front-End example"},{"content":"\nAt GroupDocs, we are always keen to improve our products and enhance user experience. Hence, we are excited to announce GroupDocs.Assembly for .NET 3.1.0. The latest version of our document generation API provides many enhancements and features. Please see below for the list of enhancements and features.\nDocument Generation API for .NET - Features Add explicit support for multiple data sources GroupDocs.Assembly for .NET 3.1.0 - Enhancements Unify watermarking across all supported file formats Provide support for presentation file formats in evaluation mode Support only SHA256 for signing assemblies and MSI Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly: Download - MSI Package as well as Zipped DLLs NuGet - Nuget Installation Documentation - Product Documentation Examples/Plugins/Showcases - Github source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly FeedbackAs always, you are welcome to share your feedback to improve this Document Generation API. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/assembly/releasing-groupdocs-assembly-net-3-1-0-new-features-enhancements/","summary":"At GroupDocs, we are always keen to improve our products and enhance user experience. Hence, we are excited to announce GroupDocs.Assembly for .NET 3.1.0. The latest version of our document generation API provides many enhancements and features. Please see below for the list of enhancements and features.\nDocument Generation API for .NET - Features Add explicit support for multiple data sources GroupDocs.Assembly for .NET 3.1.0 - Enhancements Unify watermarking across all supported file formats Provide support for presentation file formats in evaluation mode Support only SHA256 for signing assemblies and MSI Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.","title":"GroupDocs.Assembly for .NET 3.1.0 Released with New Enhancements"},{"content":"GroupDocs Team cares for it’s users and their precious time. GroupDocs.Search for .NET Visual Studio Plugin helps and performs all the steps required to try-out examples automatically. All you have to do is to install the plugin via .msi available and launch the plugin wizard from File Menu. the automatic completion of downloading the wizard will provide you with sample of CSharp or VB.NET source code for the API. These downloaded files are configured automatically in the Visual Studio without leaving it.\nVisual Studio Plugin Features Appears in File Menu of Visual Studio. Downloads source code automatically. Downloads GroupDocs.Search for .NET API automatically. Adds assembly reference automatically. Provides Examples for CSharp and VB.NET. Supports Visual Studio 2010, 2012 and 2013. Opens project in few steps. Easy to Use. Saves time and reduces effort. Downloads and Available Resources Plugins\nCodePlex Github Visual Studio Gallery Source Code\nCodePlex Github GroupDocs.Search for .NET API Installation and Usage Installation of Visual Studio Plugin for GroupDocs.Search for .NET Examples is very simple and robust. User just needs to download MSI file and install it. After finishing the installation, plugin will be integrated with Visual Studio and appear in File menu.\nHow to Install Usage Contribute Visual Studio Plugin for GroupDocs.Search for .NET API examples is open source and available for download. Developers can download it and get help to understand its working and extend its functionality. Following are the places from where source code can be downloaded.\nCodePlex GitHub Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread.\n","permalink":"https://blog.groupdocs.com/search/groupdocs-search-visual-studio-plugin/","summary":"GroupDocs Team cares for it’s users and their precious time. GroupDocs.Search for .NET Visual Studio Plugin helps and performs all the steps required to try-out examples automatically. All you have to do is to install the plugin via .msi available and launch the plugin wizard from File Menu. the automatic completion of downloading the wizard will provide you with sample of CSharp or VB.NET source code for the API. These downloaded files are configured automatically in the Visual Studio without leaving it.","title":"Download – Explore GroupDocs.Search for .NET Plugin for Visual Studio"},{"content":"\rHere at GroupDocs we always look for new ways to enhance our products. We constantly strive to improve our user\u0026rsquo;s experience. Hence, we are excited to announce the new release of GroupDocs.Viewer for Java 3.2.2. The latest version of our document viewer API provides 10+ new features, 25+ improvements and fixes. Let\u0026rsquo;s explore the exciting features in GroupDocs.Viewer for Java 3.2.2.\nDocument Viewer API for Java - FeaturesFollowing features are announced in this latest release: Ability to specify custom font paths New conversion mechanism for displaying multipage TIFF files Implement option that allows setting text document encoding Implement method that returns supported document formats Implement file description property that returns document type format Provide JPEG image quality setting Implement configuration option that allows set cells sheet conversion mode when converting to PDF Add support for Portuguese locale Add ability to show/hide gridlines for excel files Implement PdfFileOptions same as another Options classes Process files from the stream without specifying the fileName parameter GroupDocs.Viewer for Java 3.2.2 - ImprovementsFollowing are the features that are improved in this latest version: Implement storing cache files separately depends on use PDF option Improve the quality of re-sized images Improve document processing fidelity and speed User provided Excel Spreadsheet does not follow MS Excel behavior when rendered to PDF Improve localization engine to use custom locales from the path Hide/Show the hidden sheets for Excel files Java Document Viewer API - FixesListed below are the issues that were being reported in previous versions and are now fixed in GroupDocs.Viewer for Java 3.2.2: DocuSign signed files not showing all content Doc to PDF save error Empty html Not all content of the PDF document rendered to html High memory usage while converting to PDF Specific eml file can\u0026rsquo;t be viewed in HTML mode Failed to rotate page if page number specified Resolution is set incorrectly when converting PDF to image Image re-sized incorrectly when re-sizing to larger dimensions Css classes are overridden in multiple pages documents Shift_JIS encoded characters are not showing in proper format PreloadPagesCount is not working in V3.0 Blurry document in Image Based rendering Invalid Parameter Exception on rendering PDF to HTML Underline for some words/sentences when saving to html/image Failed to convert .xlsx with fixed headers table to image Conversion of .xlsx with fixed headers table to PDF never completes Empty Value Exception on rendering PDF File Invalid Parameter Exception on rendering Excel Spreadsheet to HTML Incorrect converting PPT file to HTML The .pdf document doesn\u0026rsquo;t rendered Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on Document Viewer API for Java: Download - Zipped JAR Documentation - Product Documentation GroupDocs.Viewer for Java Examples - GitHub source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Viewer FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/releasing-groupdocs-viewer-java-3-2-2-improvements-fixes/","summary":"Here at GroupDocs we always look for new ways to enhance our products. We constantly strive to improve our user\u0026rsquo;s experience. Hence, we are excited to announce the new release of GroupDocs.Viewer for Java 3.2.2. The latest version of our document viewer API provides 10+ new features, 25+ improvements and fixes. Let\u0026rsquo;s explore the exciting features in GroupDocs.Viewer for Java 3.2.2.\nDocument Viewer API for Java - FeaturesFollowing features are announced in this latest release: Ability to specify custom font paths New conversion mechanism for displaying multipage TIFF files Implement option that allows setting text document encoding Implement method that returns supported document formats Implement file description property that returns document type format Provide JPEG image quality setting Implement configuration option that allows set cells sheet conversion mode when converting to PDF Add support for Portuguese locale Add ability to show/hide gridlines for excel files Implement PdfFileOptions same as another Options classes Process files from the stream without specifying the fileName parameter GroupDocs.","title":"Releasing GroupDocs.Viewer for Java 3.2.2 with Improvements and Fixes"},{"content":"\rWe are pleased to announce the new release of Next Generation GroupDocs.Comparison for .NET 3.2.0. with some exciting features. In this version, some new features has been introduced along with some important fixes. Also, this version has a new installer. We recommend that you download and update the API as soon as you can.\nGroupDocs.Comparison for .NET 3.2.0 - New FeaturesIn this new release of GroupDocs.Comparison for .NET 3.2.0 new features are introduced to save html files to word document when use Comparison.Text for comparison and enabled to GetChanges and UpdateChanges methods along with saving results as Images and for PDF Implemented the own absorber of tables along with more improvements in API for smooth and fast Comparison. Here are some highlights: Save html files to word document when use Comparison.Text for comparison Add GetChanges and UpdateChanges methods for Comparison.Text Implement the Saving of result Comparison as images PDF: Implement the own absorber of tables Implement formulas comparison for Words format Document Comparison API - ImprovementsFollowing are the features that are improved in the latest version of the document comparison API. Improved comparison speed for Cells Enhanced Comparison for Words significant performance with new aligners Displaying of images and text after process for comparison is Improved Comparison improved for correction of position and size for Image Upgraded Comparison for Pdf with the images For more details about supported document formats, please visit Features Overview.\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison: Downloads-MSI Package and Zipped DLLs Nuget Package -NuGet Install Documentation -Product Docs Video Tutorials -YouTube Videos Support Forum -Technical Support Forum Example / Plugins-Github source code examples FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-introduces-exciting-features-new-release-groupdocs-comparison-net-3-2-0/","summary":"We are pleased to announce the new release of Next Generation GroupDocs.Comparison for .NET 3.2.0. with some exciting features. In this version, some new features has been introduced along with some important fixes. Also, this version has a new installer. We recommend that you download and update the API as soon as you can.\nGroupDocs.Comparison for .NET 3.2.0 - New FeaturesIn this new release of GroupDocs.Comparison for .NET 3.2.0 new features are introduced to save html files to word document when use Comparison.","title":"Releasing GroupDocs.Comparison for .NET 3.2.0 with More Improvements"},{"content":"\rFor those who have been waiting for the next release - Today, we are excited to announce GroupDocs.Viewer for .NET 3.4.0. The latest version of our document viewer API provides fixes and improvements for a wide range of features. Based on our customers\u0026rsquo; feedback, GroupDocs team has announced 20+ fixes along with 5+ improvements in version 3.4.0. Please see below for the list of fixes and improvements.\nGroupDocs.Viewer for .NET - FixesListed below are the issues that were being reported in previous versions and are fixed in GroupDocs.Viewer for .NET 3.4.0 Small images are not visible in image mode Invalid parameter exception while converting mpt to image File is corrupted or damaged exception while converting mpt document to image Project reading exception in multi-threading environment GetPdfFile returns all pages in trial mode JpegQuality is not applied for watermarked images Incorrect rendering of Excel file into html and image GetPages() for email attachment throws path exception for relative storage path Invalid parameter exception in html rendering GetPages() throws exception in case of stream object Failed to load xps document in image mode with pdf API renders first sheet twice in Excel Workbook Text is shifted and duplicated in a PDF produced from VSD Diagram file rendering regression Incorrect saving XLSX to HTML Incomplete converting XLSX to HTML Text coordinates are incorrect for a specific document Not all content of the Visio file is stored when converting to the PDF Incorrect spacing between characters in html rendering Document Viewer API - ImprovementsFollowing are the features that are improved in the latest version of the document viewer API. Implementation of RotatePage method that returns void Library performance Applying watermark performance Improved get pdf file performance Improved GetPdfFile method usability Hide the hidden sheets for .xls file Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on document viewer API: Download - MSI Package and Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Sample Front Ends - Open Source Document Viewer Applications FeedbackAs always, you are welcome to share your feedback to improve this API. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/releasing-groupdocs-document-viewer-dotnet-3-4-0-with-fixes-and-improvements/","summary":"For those who have been waiting for the next release - Today, we are excited to announce GroupDocs.Viewer for .NET 3.4.0. The latest version of our document viewer API provides fixes and improvements for a wide range of features. Based on our customers\u0026rsquo; feedback, GroupDocs team has announced 20+ fixes along with 5+ improvements in version 3.4.0. Please see below for the list of fixes and improvements.\nGroupDocs.Viewer for .","title":"Releasing GroupDocs.Viewer for .NET 3.4.0 with Fixes and Improvements"},{"content":"\rGroupDocs team proudly announces the addition of SharePoint Plugin for GroupDocs.Viewer for .NET. This plugin permits SharePoint developers to explore and investigate GroupDocs.Viewer for .NET front end. It demonstrates how GroupDocs.Viewer for .NET front end can be integrated with SharePoint.\nSharePoint Plugin for GroupDocs.Viewer for .NET Supported FeaturesThe SharePoint plugin provides end users with tools needed for convenient viewing and navigation of a documents in a browser. The plugin provides all the most commonly used UI controls available in native Adobe Reader’s plugin, including: Scroll view, one page in a row, two pages in a row view and double page flipping Pagination controls Page zooming Page thumbnails Text selection and copying to the clipboard Text search with different match types Document downloading and printing SharePoint Plugin Requirements SharePoint Server 2013 Visual Studio 2010, 2012, 2013, 2015 Any standard web-browser, including IE8+, Mozilla Firefox, Chrome, Opera, Safari5+ Download SharePoint PluginThe SharPoint Plugin can be downloaded from GitHub Repository. Contribute inThe developers can also contribute to the plugin through one of the following ways: Find an issue or an idea of new feature – fix it and submit a pull request. Find an issue or an idea of new feature – create an issue in the Github. In this case, GroupDocs Support Team will look on it. Available Channel and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer for .NET: Download - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Viewer for .NET ","permalink":"https://blog.groupdocs.com/viewer/sharepoint-plugin-groupdocs-viewer-for-net/","summary":"GroupDocs team proudly announces the addition of SharePoint Plugin for GroupDocs.Viewer for .NET. This plugin permits SharePoint developers to explore and investigate GroupDocs.Viewer for .NET front end. It demonstrates how GroupDocs.Viewer for .NET front end can be integrated with SharePoint.\nSharePoint Plugin for GroupDocs.Viewer for .NET Supported FeaturesThe SharePoint plugin provides end users with tools needed for convenient viewing and navigation of a documents in a browser. The plugin provides all the most commonly used UI controls available in native Adobe Reader’s plugin, including: Scroll view, one page in a row, two pages in a row view and double page flipping Pagination controls Page zooming Page thumbnails Text selection and copying to the clipboard Text search with different match types Document downloading and printing SharePoint Plugin Requirements SharePoint Server 2013 Visual Studio 2010, 2012, 2013, 2015 Any standard web-browser, including IE8+, Mozilla Firefox, Chrome, Opera, Safari5+ Download SharePoint PluginThe SharPoint Plugin can be downloaded from GitHub Repository.","title":"Releasing SharePoint Plugin for GroupDocs.Viewer for .NET"},{"content":"\rThe GroupDocs team is pleased to announce the Front End sample project for the ASP.NET MVC developers. The reason behind this release is to facilitate the developers to write their own document viewer using GroupDocs.Viewer for .NET 3.x. Almost all the functionalities have been implemented in this project which was given in the old GroupDocs.Viewer for .NET 2.x UI Based API. The developers are flexible to customize the application by their own. This project has been published at github.com.\nSupported ASP.NET MVC Front End FeaturesThe ASP.NET MVC Front End provides end users with tools needed for convenient viewing and navigation of a documents in a browser. The front end provides all the most commonly used UI controls available in native Adobe Reader’s plugin, including: Scroll view, one page in a row, two pages in a row view, double page flipping Pagination controls Page zooming Page thumbnails Text selection and copying to the clipboard Text search with different match types Document downloading and printing Requirements to Run ASP.NET MVC Front End\rDownloads of ASP.NET MVC Front EndThe ASP.NET MVC Front End can be downloaded from GitHub Repository. Please click here to download or visit the release page at GitHub.com Contribute in ASP.NET MVC Front EndThe developers can also contribute to the FrontEnd through one of the following ways: Find an issue or an idea of new feature – fix it and submit a pull request. Find an issue or an idea of new feature – create an issue in the Github. In this case, GroupDocs Support Team will look on it. Every effort by the developers/customers would be appreciated.\n","permalink":"https://blog.groupdocs.com/viewer/asp-net-mvc-ui-example-project-groupdocs-viewer-net-users/","summary":"The GroupDocs team is pleased to announce the Front End sample project for the ASP.NET MVC developers. The reason behind this release is to facilitate the developers to write their own document viewer using GroupDocs.Viewer for .NET 3.x. Almost all the functionalities have been implemented in this project which was given in the old GroupDocs.Viewer for .NET 2.x UI Based API. The developers are flexible to customize the application by their own.","title":"ASP.NET MVC Example Project for GroupDocs.Viewer for .NET Users"},{"content":"\rAfter a great success of vast APIs, GroupDocs.Search for .NET has been introduced which allows many ways to perform search operations against the various file formats. Furthermore, It is a document search API that can be used for performing full text search over the indexed documents. Let’s not wait and see how it is going to serve the users.\nFeatures provided by GroupDocs.Search for .NET Listed below are the wide range of supported features of the GroupDocs.Search for .NET API. Search Queries:\nSearch Object Types Simple Queries Boolean Queries Regular Expression Queries Faceted Search Queries Advanced Search:\nFuzzy Search Synonym Search Indexing Features:\nCreate Index Load Index Update Index Add Document Index for more details related to features you can read more here.\nSupported Documents Format GroupDocs.Search for .NET supports the following file formats: Zero Dependency on any External Software/Tool The GroupDocs.Search is stand alone API and does not depend upon any external software or tool. Developers can create variety of applications using this API.\nAvailable Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Search:\nDownload - MSI Package or Zipped DLLs Only NuGet - NuGet Package Documentation - Product Docs Examples/Showcases - Github Source Code Examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Search Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/search/releasing-groupdocs-search-net-versatile-document-search-api/","summary":"After a great success of vast APIs, GroupDocs.Search for .NET has been introduced which allows many ways to perform search operations against the various file formats. Furthermore, It is a document search API that can be used for performing full text search over the indexed documents. Let’s not wait and see how it is going to serve the users.\nFeatures provided by GroupDocs.Search for .NET Listed below are the wide range of supported features of the GroupDocs.","title":"Releasing GroupDocs.Search for .NET - A Versatile Document Search API"},{"content":"\rThe GroupDocs team is pleased to announce the Front End sample project for the ASP.NET WebForm developers. The reason behind this release is to facilitate the developers to write their own document viewer using GroupDocs.Viewer for .NET 3.x. Almost all the functionalities have been implemented in this project which was given in the old GroupDocs.Viewer for .NET 2.x UI Based API. The developers are flexible to customize the application by their own. This project has been published at github.com.\nSupported ASP.NET WebForm Front End FeaturesThe ASP.NET WebForm Front End provides end users with tools needed for convenient viewing and navigation of a documents in a browser. The front end provides all the most commonly used UI controls available in native Adobe Reader’s plugin, including: Scroll view, one page in a row, two pages in a row view, double page flipping Pagination controls Page zooming Page thumbnails Text selection and copying to the clipboard Text search with different match types Document downloading and printing Requirements to Run ASP.NET WebForm Front End Being a “thin client” solution, GroupDocs.Viewer for .NET doesn’t require any downloads or installations on the client side. End users can view the documents from any standard web-browser, including IE8+, Mozilla Firefox, Chrome, Opera, Safari5+ and their mobile versions. To deploy and properly configure the sample on the server, you will need a .NET Framework version 4.0+ and a “.NET-compatible” web-server: IIS, IIS Express or ASP.NET Development Server (Cassini). Downloads of ASP.NET WebForm Front EndThe ASP.NET WebForm Front End can be downloaded from GitHub Repository. Please click here to download or visit the release page at GitHub.com Contribute in ASP.NET WebForm Front EndThe developers can also contribute to the FrontEnd through one of the following ways: Find an issue or an idea of new feature – fix it and submit a pull request. Find an issue or an idea of new feature – create an issue in the Github. In this case, GroupDocs Support Team will look on it. Every effort by the developers/customers would be appreciated.\n","permalink":"https://blog.groupdocs.com/viewer/webform-ui-example-project-groupdocs-viewer-net-users/","summary":"The GroupDocs team is pleased to announce the Front End sample project for the ASP.NET WebForm developers. The reason behind this release is to facilitate the developers to write their own document viewer using GroupDocs.Viewer for .NET 3.x. Almost all the functionalities have been implemented in this project which was given in the old GroupDocs.Viewer for .NET 2.x UI Based API. The developers are flexible to customize the application by their own.","title":"WebForm UI Example Project for GroupDocs.Viewer for .NET Users"},{"content":"\rWe are pleased to announce another monthly release of GroupDocs.Metatada as GroupDocs.Metadata for .NET 1.4.0. New promising features i-e reading IPTC and IPTC-IIM Metadata in JPEG, reading metadata in MS Project document and exporting metadata to Excel, DataSet and CSV file have enhanced the worth of the API. Let\u0026rsquo;s see in more details what is new in latest version.\nGroupDocs.Metadata for .NET Release 1.4.0 Key FeaturesListed below are the new features introduced in GroupDocs.Metadata for .NET 1.4.0. Export metadata to DataSet Export metadata to CSV Export metadata to Excel Read metadata of Microsoft Project file Read and write IPTC Photo Metadata (XMP API) Read IPTC IIM metadata in JPEG format Read more\nAvailable Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata for .NET: Download - MSI Package and Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/metadata/read-iptc-iim-ms-project-metadata-export-excel-dataset-csv/","summary":"We are pleased to announce another monthly release of GroupDocs.Metatada as GroupDocs.Metadata for .NET 1.4.0. New promising features i-e reading IPTC and IPTC-IIM Metadata in JPEG, reading metadata in MS Project document and exporting metadata to Excel, DataSet and CSV file have enhanced the worth of the API. Let\u0026rsquo;s see in more details what is new in latest version.\nGroupDocs.Metadata for .NET Release 1.4.0 Key FeaturesListed below are the new features introduced in GroupDocs.","title":"Export API and Access to IPTC IPTC-IIM and MS Project Metadata"},{"content":"Releasing GroupDocs.Annotation for .NET 3.0 In the world of APIs, GroupDocs.Annotation for .NET has reborn to introduce more flexible, stand alone and powerful back-end API which comes with an extensive number of markup tools to annotate the documents with area annotation, text highlight, text underline, text strikeout, watermarking, reply based comments and many more. Next Generation GroupDocs.Annotation for .NET 3.0 is disintegrated from the UI to provide developers a free hand to create desktop, web or cloud applications without any bound. Let\u0026rsquo;s not wait and see how it is going to serve the users.\nWhy it came into being?The legacy 2.x versions of GroupDocs.Annotation for .NET had complex API structure along with UI requiring more coding efforts for a simple implementation. Secondly, it was tightly coupled with the development platforms and required specific ways of code implementation for each development environment. Whereas, next generation API exposes only UI less back-end annotation features in which simplified object oriented approach is implemented. In order to get more control over Annotations Management Processes (Adding, Removing, and Editing) in your PDF document, a new release of GroupDocs.Annotation is on board by GroupDocs team. **Read more ** What are the Features GroupDocs.Annotation Provides?Listed below are the wide range of supported features of the Next Generation GroupDocs.Annotation for .NET API. Basic Annotations Area Annotation Point Annotation Text Annotation Highlight Annotation Strikeout/Underline Annotation Poly line Annotation Arrow Annotation Watermark Annotation Text Redaction Area Redaction Distance Annotation Reply Based Comments Abstract Data Storage GroupDocs.Annotation API provides abstract storage. User can use abstract storage by using implemented interface provided by API. Export Annotations API provides capability to export annotations to the PDF file. Users Management API provides Abstract-ready user management where every user can customize annotations according to their needs. Annotations Compatibility Annotations added by GroupDocs.Annotation API are compatible with native PDF annotations. Read more\nWhat Document Formats GroupDocs.Annotation Supports?Currently, GroupDocs.Annotation for .NET supports PDF documents only. However, following are the document formats which are planned to be supported in next releases. Zero Dependency on any External Software/ToolThe GroupDocs.Annotation is stand alone API and does not depend upon any external software or tool. Developers can create variety of applications using this API. Available Channels and ResourcesHere are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Annotation: Download - MSI Package as well as Zipped DLLs NuGet - NuGet install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Annotation FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/annotation/groupdocs-annotation-net-annotate-document-text-highlight-strikeout-comments-point-area-polyline-arrow-distance-redaction/","summary":"Releasing GroupDocs.Annotation for .NET 3.0 In the world of APIs, GroupDocs.Annotation for .NET has reborn to introduce more flexible, stand alone and powerful back-end API which comes with an extensive number of markup tools to annotate the documents with area annotation, text highlight, text underline, text strikeout, watermarking, reply based comments and many more. Next Generation GroupDocs.Annotation for .NET 3.0 is disintegrated from the UI to provide developers a free hand to create desktop, web or cloud applications without any bound.","title":"Annotate Documents Using GroupDocs.Annotation for .NET"},{"content":"GroupDocs.Conversion for .NET Release 3.3.0 Today we are excited to announce another monthly release of GroupDocs.Conversion for .NETversion 3.3.0. This release introduces the support for conversion of new formats like SVG, XPS and ICO in addition to the routine improvements and bug fixes.\nNew Features In this release we have enhanced the support for few other documents/files and document manipulation.\nSVG documents conversion XPS documents conversion ICO files conversion XLSX to PNG/JPG/HTML fixed conversion Remove Comments from Slides while Conversion Respecting DPI option when converting to image Issues/Bugs Resolved We have made significant improvement in this release and fixed major issues, listed below are the issues that have been resolved:\nxlsx to png Object null Reference exception Conversion from XLSX to PNG/JPG/HTML not Working Properly Converted File Name issue in Excel file to PNG Converting large XLS file to image with UsePdf=false is producing blurred images Missing pages when converting XLS file to image with UsePdf=true Excel to PNG/JPG/JPEG Low Image Quality DPI not effecing PDF to Image conversion - target resolution is not changed when setting DPI Words to Image conversion - target resolution is not changed when setting DPI Slides to Image conversion - target resolution is not changed when setting DPI Tasks to Image conversion - target resolution is not changed when setting DPI Image to Image conversion - target resolution is not changed when setting DPI Diagram to Image conversion - target resolution is not changed when setting DPI Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion for .NET:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - Github source code examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/svg-xps-ico-conversion-doc-docx-xls-xlsx-ppt-pptx-pdf-formats/","summary":"GroupDocs.Conversion for .NET Release 3.3.0 Today we are excited to announce another monthly release of GroupDocs.Conversion for .NETversion 3.3.0. This release introduces the support for conversion of new formats like SVG, XPS and ICO in addition to the routine improvements and bug fixes.\nNew Features In this release we have enhanced the support for few other documents/files and document manipulation.\nSVG documents conversion XPS documents conversion ICO files conversion XLSX to PNG/JPG/HTML fixed conversion Remove Comments from Slides while Conversion Respecting DPI option when converting to image Issues/Bugs Resolved We have made significant improvement in this release and fixed major issues, listed below are the issues that have been resolved:","title":"SVG XPS and ICO Conversion to DOC DOCX XLS XLSX PPT PPTX PDF and other formats"},{"content":" We are pleased to announce the new release of Next Generation GroupDocs.Comparison for .NET 3.1.0. with some exciting features. In this version, some new features has been introduced along with some important fixes. Also, this version has a new installer. We recommend that you download and update the library as soon as you can.\nNew Features Introduced in Version 3.1.0 In this new release of GroupDocs.Comparison for .NET 3.1.0 new methods are introduced to return all possible Comparisons for provided file type extension or provided stream. Also, a new event is introduced to support Encrypted Files Comparison and Auto detect File extension along with more improvements in API for smooth and fast Comparison. Here are some highlights: In Next Generation GroupDocs.Comparison for .NET, there is no more dependency for Web.UI based classes. Included advanced options in each class makes it simpler and Secure for any .Net applications developer.\nAutomatic Format Detection with Saving Results into a Stream Automatic Format Detection with Saving Results into a file Automatic Format Detection with Saving Results into a file with Extension Automatic Format Detection with Saving Results into a Stream with Comparison Settings Automatic Format detection with Saving Results into a Stream with Comparison Type and Settings Automatic Format Detection with Saving Results into a Stream for Encrypted Documents Automatic Format Detection with Saving Results into a file for Encrypted Documents Automatic Format Detection with Saving Results into a file with Extension for Encrypted Documents Automatic Format Detection with Saving Results into a Stream with Comparison Settings for Encrypted Documents Automatic Format detection with Saving Results into a Stream with Comparison Type and Settings for Encrypted Documents Automatic Format detection with Saving Results into a File with Comparison Type and Settings for Encrypted Documents For more details about supported document formats, please visit Features Overview. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Comparison Examples/Plugins/Showcases - Github source code examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/groupdocs-introduces-exciting-features-new-release-groupdocs-comparison-net-3-1-0/","summary":"We are pleased to announce the new release of Next Generation GroupDocs.Comparison for .NET 3.1.0. with some exciting features. In this version, some new features has been introduced along with some important fixes. Also, this version has a new installer. We recommend that you download and update the library as soon as you can.\nNew Features Introduced in Version 3.1.0 In this new release of GroupDocs.Comparison for .NET 3.1.0 new methods are introduced to return all possible Comparisons for provided file type extension or provided stream.","title":"GroupDocs introduces exciting features in new release of GroupDocs.Comparison for .NET 3.1.0"},{"content":"\rIn response to the feedback of our customers we have upgraded GroupDocs.Viewer for .NET and released its new version 3.3.0. This version of the API has come with improved performance along with new features. Most of the issues found in older versions have also been fixed. Lets find out what is new in the latest release.\nNew Features GroupDocs.Viewer for .NET v3.3.0 has come with following new features.\nSet custom font directories Get document information by guid Get document information by stream Get document information by Uri Remove all cache files Remove cache files older than specified time Get original files attached with email message Get image representation of email attachments Get html representation of email attachments For more information, please visit product documentation: GroupDocs.Viewer Supported Features.\nFixed Issues Following are the issues that were found in older version and are fixed in v3.3.0\nGetDocumentInfo Method throws exception in evaluation mode The HtmlResourcePrefix {page-number} is not set in DiagramToHtmlConverter Some characters are not showing in correct format when render as HTML \u0026lsquo;System.OutOfMemoryException\u0026rsquo; thrown while rendering as image Only first frame or tiff document converted in image mode Only first frame or tiff document converted in image mode MSG file is not rendering properly Failed to get document information in image mode with text from epub document Failed to get document information in image mode with text in trial File description document type format is Unknown when extension is upper case File description document type format is Unknown when extension is upper case Different HTML generated for the same document Outlines are rendered incorrectly in HTML Some text extracted from document twice Improved Features After listening customers\u0026rsquo; feedback, GroupDocs team has improved below listed features.\nThe GroupDocs.Viewer 3.x is slower than 2.19 in performance Update DocumentInfoOptions Cells/Words/Email DocumentInfoOptions properties names and types Remove duplicated document name header in Project document converted to html Remove border in html that was converted from words document Implement adding prefix to font-family property if it can be overridden Implement transparent watermarking in html mode Improve performance of extracting document information in image mode Apply HtmlResourcePrefix to fonts mentioned in CSS files Load document only when not cached Improve temp files folder structure Improve processing remote files by Uri Convert a document page to JPEG in about 0.1 second Links for mail attachments Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer:\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/viewer/latest-release-groupdocs-viewer-net-come-improved-performance-new-features-fixes/","summary":"In response to the feedback of our customers we have upgraded GroupDocs.Viewer for .NET and released its new version 3.3.0. This version of the API has come with improved performance along with new features. Most of the issues found in older versions have also been fixed. Lets find out what is new in the latest release.\nNew Features GroupDocs.Viewer for .NET v3.3.0 has come with following new features.\nSet custom font directories Get document information by guid Get document information by stream Get document information by Uri Remove all cache files Remove cache files older than specified time Get original files attached with email message Get image representation of email attachments Get html representation of email attachments For more information, please visit product documentation: GroupDocs.","title":"Latest release of GroupDocs.Viewer for .NET v3.3.0 has come with improved performance, new features and fixes"},{"content":"\rGroupDocs team is pleased to announce another monthly release of GroupDocs.Metadata for .NET version 1.3.0 with extended features for existing supported formats and support of new file formats. Moreover, in this version, the team introduces Metadata Replace API to find and replace metadata properties in document formats. Not only this, but the user will also be able to define his/her custom logic to replace metadata properties in supported documents. Let\u0026rsquo;s see what\u0026rsquo;s more in this new package.\nNew Features Listed below are the newly added features in GroupDocs.Metadata for .NET 1.3.0:\nUse custom IReplaceHandler in Replace API Read-write XMP data in Photoshop format Edit comments in Word format Read-write XMP data in Pdf format Inspect and remove hidden data in Pdf format Read basic metadata from CAD formats Find and replace metadata in document formats Compare EXIF metadata Available Channels and Resources Here are a few channels and resources for you to download, learn, try, and get technical support on GroupDocs.Metadata for .NET:\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum Example / Plugins - Github Source Code Examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/metadata/groupdocs-metadata-net-introduces-new-features-release-v-1.3.0-replace-api-supported-formats/","summary":"GroupDocs team is pleased to announce another monthly release of GroupDocs.Metadata for .NET version 1.3.0 with extended features for existing supported formats and support of new file formats. Moreover, in this version, the team introduces Metadata Replace API to find and replace metadata properties in document formats. Not only this, but the user will also be able to define his/her custom logic to replace metadata properties in supported documents. Let\u0026rsquo;s see what\u0026rsquo;s more in this new package.","title":"GroupDocs.Metadata for .NET v1.3.0 introduces new features and more supported formats"},{"content":"\rIt’s time to lay a hand on Next Generation GroupDocs.Viewer for Java 3.0.0. GroupDocs releases this product with the great power of rendering a variety of document formats to HTML and image representations.\nWhy Next Generation GroupDocs.Viewer? The legacy 2.x versions of GroupDocs.Viewer for Java had complex API structure thereby requiring more coding efforts for a simple implementation. There were specific way of code implementation for different types of application development platforms. For example, in previous versions a user control was provided to generate Html Code which was a barrier in the API usage flexibility for variant application scenarios. Some salient features of the next generation GroupDocs.Viewer include (but, of course, not limited to):\nGroupDocs.Viewer for Java 3.0.0 is providing an easy to understand way. ViewerHtmlHandler and ViewerImagehandler are provided to easily control the output. The GroupDocs.Viewer for Java 3.0.0 has capability to generate the Image Repesentation of the document. It can converts document pages to images to get the accurate and high quality view of the document. ViewerImageHandler class has been provided which returns the image stream. The returned stream can be mold to save the images in various formats. Document generation is no longer coupled with GUI and web, thus enabling you to use GroupDocs.Viewer for Java 3.0.0 in a larger number of scenarios. GroupDocs.Viewer for Java 3.0.0 is providing a meaningful coding structure along with significant lines of code reduction. Supported Features GroupDocs.Viewer for Java 3.0.0 has come with a bundle of attractive features. Following is list of some key features.\nMultiple document formats are supported Get html Representations of Documents Get image Representations of Documents View document in PDF Form Get document as it is (Original Form) Apply watermark on Html Apply watermark on Images Apply Rotation in Html Apply Rotation in Images Reorder pages in Html pages Reorder pages in Images For more details on supported features, please visit: Features Overview Zero Dependency on any External Software/Tool GroupDocs.Viewer for Java 3.0.0 is very flexible in its implementation. It has no dependencies on any tool or software. It rasterize documents and images, renders text and converts them to SVG+HTML+CSS. The GroupDocs.Viewer APIs allows user to get representation in html or image format for whole document, page-by-page or custom range of pages. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer:\nDownload - Zipped JAR Documentation - Product Docs Examples - Github source code examples Product Support Forum - Technical Support Forum for GroupDocs.Viewer Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/viewer/releasing-next-generation-groupdocs-viewer-java-simplest-api-get-image-html-representation-document/","summary":"It’s time to lay a hand on Next Generation GroupDocs.Viewer for Java 3.0.0. GroupDocs releases this product with the great power of rendering a variety of document formats to HTML and image representations.\nWhy Next Generation GroupDocs.Viewer? The legacy 2.x versions of GroupDocs.Viewer for Java had complex API structure thereby requiring more coding efforts for a simple implementation. There were specific way of code implementation for different types of application development platforms.","title":"Releasing Next Generation GroupDocs.Viewer for Java – Simplest API To Get Image or HTML Representation of The Document"},{"content":"\nGroupDocs team values our users\u0026rsquo; time. GroupDocs.Comparison for .NET Visual Studio plugin helps our valuable users to download and compile source code examples. It reduces the time and efforts required to locate source code examples and GroupDocs.Comparison library from different resources. The plugin performs all the tasks required to try out GroupDocs.Comparison examples automatically. All you have to do is: Install the plugin and launch the wizard installed by the plugin. Once the wizard completes its processing, you can try CSharp or VB.NET source code examples from within Visual Studio without leaving the IDE.\nFeatures\nAppears in File menu in Visual Studio. Downloads source code automatically. Downloads GroupDocs.Comparison library automatically. Adds assembly reference automatically. Provides both C# and VB examples. Supports Visual Studio 2010, 2012 and 2013. Opens project in few steps. Easy to use. Saves time and reduces effort. **Downloads and Available Resources **\nDownload Plugin - CodePlex Download Plugin - Github Download Plugin - Visual Sudio Gallery Source Code - CodePlex Source Code - Github Download API - GroupDocs.Comparison for .NET Installation and Usage Installation of Visual Studio Plugin for GroupDocs.Converion Examples is very easy and simple. User just needs to download MSI file and run it. After finishing the installation, plugin will be integrated with Visual Studio and appear in File menu.\nHow to Install Usage Screenshots Contribute Visual Studio Plugin for GroupDocs.Comparison for .NET examples is open source and available for download. Developers can download it and get help to understand its working and extend its functionality. Following are the places from where source code can be downloaded.\nCodePlex GitHub Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread\n","permalink":"https://blog.groupdocs.com/comparison/download-explore-groupdocs-comparison-net-libraries-examples-from-within-visual-studio/","summary":"GroupDocs team values our users\u0026rsquo; time. GroupDocs.Comparison for .NET Visual Studio plugin helps our valuable users to download and compile source code examples. It reduces the time and efforts required to locate source code examples and GroupDocs.Comparison library from different resources. The plugin performs all the tasks required to try out GroupDocs.Comparison examples automatically. All you have to do is: Install the plugin and launch the wizard installed by the plugin.","title":"Download and Explore GroupDocs.Comparison for .NET Libraries and Examples from within Visual Studio"},{"content":"\rGroupDocs is always keen to get the feedback from the customers and provide enhanced, improved and bug free version of the products. Our dedicated teams have been working on the the requirements and the suggestions of our valued customers and released GroupDocs.Viewer for .NET 3.2.0. The latest version of the API has come with many new and improved features. Moreover, bugs faced by the users in previous version have been fixed in the latest version.\nNew Features GroupDocs.Viewer for .NET v3.2.0 has come with following new features.\nProcessing files from stream without specifying fileName parameter Implementation of PdfFileOptions same as other Options classes New conversion mechanism for displaying multi-page TIFF files Ability to show/hide grid lines for excel files Working to render multiple pages per sheet of Excel file while render as PDF Support for Portuguese locale Implementation of configuration option to set cells sheet conversion mode when converting to PDF Jpeg image quality setting Implementation of file description property that returns document type format Implementation of method that returns supported document formats Implementation of option that allows to set text document encoding New conversion mechanism for displaying multi-page TIFF files Working with Text Coordinate in Image Mode For more details on supported feature, please visit product documentation: GroupDocs.Viewer v3.2.0.\nImproved Features Developers have improved the functionality and performance of GroupDocs.Viewer for .NET in version 3.2.0. Following are the improvements introduced in the latest release.\nHide/Show the hidden sheets for Excel files Improved localization engine to use custom locales from path Non MS Excel behavior of user provided Excel Spreadsheet when rendered to PDF Improved document processing fidelity and speed Improved quality of re-sized images Implementation of storing cache files separately depending on PDF option Fixed Bugs GroupDocs teams always keep finding and removing the issues and bugs to provide quality product to our customers. Following issues/bugs have been removed that were faced by the users in the previous version of the API.\nEmpty Value Exception on rendering PDF File Underline for some words/sentences when saving to html/image Invalid Parameter Exception on rendering PDF to HTML Blurry document in Image Based rendering PreloadPagesCount is not working Shift_JIS encoded characters are not showing in proper format CSS classes are overridden in multiple pages documents Image re-sized incorrectly when re-sizing to larger dimensions. Resolution is set incorrectly when converting PDF to image. Failed to rotate page if page number is specified. Specific eml file can\u0026rsquo;t be viewed in HTML mode High memory usage while converting to PDF Not all content of the PDF document rendered to html Empty html issue Doc to PDF save error DocuSign signed files not showing all content Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer:\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/viewer/new-release-groupdocs-viewer-net-introduces-new-improved-features-fixes/","summary":"GroupDocs is always keen to get the feedback from the customers and provide enhanced, improved and bug free version of the products. Our dedicated teams have been working on the the requirements and the suggestions of our valued customers and released GroupDocs.Viewer for .NET 3.2.0. The latest version of the API has come with many new and improved features. Moreover, bugs faced by the users in previous version have been fixed in the latest version.","title":"New release of GroupDocs.Viewer for .NET introduces new and improved features and fixes"},{"content":"\rVisual Studio Plugin for GroupDocs.Metadata API for .NET Examples is an easy way for the users/developers to explore and investigate API examples. The plugin automatically downloads the examples from Github and the latest GroupDocs.Metadata library from NuGet. This provides a quick and comfortable way to view and run example projects without downloading everything manually.\nFeaturesFollowing are the features the plugin provides: Appears in File menu in Visual Studio Downloads source code automatically from Github Downloads GroupDocs.Metadata library automatically from NuGet Adds assembly reference automatically Provides both C# and VB examples Supports Visual Studio 2010, 2012 and 2013 Opens project in few steps Easy to download and install Easy to use Saves time and reduces effort Plugin Screenshots File -\u0026gt; GroupDocs in Visual Studio\rDownloading GroupDocs.Metadata Library\rShowing files in projects\rProject loaded in Visual Studio\rInstallation and UsageFollowing resource(s) are available for the users to download, install and use the plugin. Installation and Usage Guide Video Demo Downloads and Available Resources Download Plugin - Visual Studio Gallery Download Plugin - CodePlex Source Code - CodePlex Download Plugin - Github Source Code - Github Download API - GroupDocs.Metadata for .NET ContributeVisual Studio Plugin for GroupDocs.Metadata for .NET examples is open source and available for download. Developers can download it, get help to understand its working and extend its functionality. Following are the places from where source code can be downloaded. CodePlex Github FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/metadata/download-explore-groupdocs-metadata-libraries-examples-source-code-from-within-visual-studio/","summary":"Visual Studio Plugin for GroupDocs.Metadata API for .NET Examples is an easy way for the users/developers to explore and investigate API examples. The plugin automatically downloads the examples from Github and the latest GroupDocs.Metadata library from NuGet. This provides a quick and comfortable way to view and run example projects without downloading everything manually.\nFeaturesFollowing are the features the plugin provides: Appears in File menu in Visual Studio Downloads source code automatically from Github Downloads GroupDocs.","title":"Download and explore GroupDocs.Metadata libraries and examples source code from within Visual Studio"},{"content":"\nGroupDocs.Conversion for .NET Visual Studio plugin provides an easiest way to download and compile GroupDocs.Conversion for .NET source code examples. It reduces the time and efforts required to locate source code examples from Github or the GroupDocs.Conversion library from different NuGet. The plugin performs all the tasks required to try out GroupDocs.Conversion examples automatically. All you have to do is: Install the plugin and launch the wizard installed by the plugin. Once the wizard completes its processing, you can try CSharp or VB.NET source code examples from within Visual Studio without leaving the IDE.\nFeatures\nAppears in File menu in Visual Studio. Downloads source code automatically. Downloads GroupDocs.Conversion library automatically. Adds assembly reference automatically. Provides both C# and VB examples. Supports Visual Studio 2010, 2012 and 2013. Opens project in few steps. Easy to use. Saves time and reduces effort. Download Visual Studio Plugin for GroupDocs.Conversion for .NET Examples is available for download from following platforms.\nCodePlex Github Visual Studio Gallery Installation and Usage Installation of Visual Studio Plugin for GroupDocs.Converion Examples is very easy and simple. User just needs to download MSI file and run it. After finishing the installation, plugin will be integrated with Visual Studio and appear in File menu.\nHow to Install Usage Screenshots Contribute Visual Studio Plugin for GroupDocs.Conversion for .NET examples is open source and available for download. Developers can download it and get help to understand its working and extend its functionality. Following are the places from where source code can be downloaded.\nCodePlex GitHub Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/download-explore-groupdocs-conversion-libraries-examples-source-code-from-within-visual-studio/","summary":"GroupDocs.Conversion for .NET Visual Studio plugin provides an easiest way to download and compile GroupDocs.Conversion for .NET source code examples. It reduces the time and efforts required to locate source code examples from Github or the GroupDocs.Conversion library from different NuGet. The plugin performs all the tasks required to try out GroupDocs.Conversion examples automatically. All you have to do is: Install the plugin and launch the wizard installed by the plugin.","title":"Download and explore GroupDocs.Conversion libraries and examples source code from within Visual Studio"},{"content":"\rGroupDocs team takes pride to announce the monthly release of GroupDocs.Metadata for .NET with some promising new features. Our initial two releases were focused on processing metadata against varying document formats including Microsoft Office, PDF, Adobe Photoshop and image formats - the complete list of supported document formats can be found at: Supported File Formats. In this release, we are focused on introducing varying new features to work on metadata associated with these document formats including (but of course not limited to) Metadata Comparison and Search.\nNew Features Listed below are the newly added features in GroupDocs.Metadata for .NET 1.2.0:\nUpdating Basic Job XMP Properties Working with Hidden Data in word Updating EXIF Data using Properties Removing Geo-Location in EXIF Data Adding Thumbnail Property in XMP Basic Schema Metadata Comparison API Metadata Search API Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata:\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/metadata/groupdocs-metadata-for-net-introduces-various-features-including-metadata-searching-comparison/","summary":"GroupDocs team takes pride to announce the monthly release of GroupDocs.Metadata for .NET with some promising new features. Our initial two releases were focused on processing metadata against varying document formats including Microsoft Office, PDF, Adobe Photoshop and image formats - the complete list of supported document formats can be found at: Supported File Formats. In this release, we are focused on introducing varying new features to work on metadata associated with these document formats including (but of course not limited to) Metadata Comparison and Search.","title":"GroupDocs.Metadata for .NET 1.2.0 introduces metadata searching, comparison and various other features"},{"content":" GroupDocs team happily announces the release of Next Generation GroupDocs.Comparison for .NET with the new features that you may have not practiced before. GroupDocs.Comparison is a powerful API for comparing + merging Microsoft Office, PDF, Text and HTML documents. It compares both content and styles in the documents and saves the difference summary in a separate result file. This version has a new installer and some new features, fixes, and more document formats are introduced. We recommend that you download and update the library as soon as you can.\nWhy Next Generation GroupDocs.Comparison? We are releasing GroupDocs.Comparison for .NET 3.0.0 which is also known as Next Generation GroupDocs.Comparison for .NET. In this release, Comparison techniques and features are enhanced to achieve fast and smooth document Comparison so the developers working can seamlessly use the library to add document comparison capability in their .NET applications. The library provides features to compare documents of all most popular document formats including PDF, Microsoft Word, Microsoft Excel, Microsoft PowerPoint etc. In Next Generation GroupDocs.Comparison for .NET, there is no more dependency for Web.UI based classes. Included advanced options in each class makes it simpler and Secure for any .Net applications developer . Supported Document Formats for Comparison\nPortable Document Formats - PDF, PDF/A Word Document Formats - DOC, DOCX Excel Document Formats - XLS, XLSX Presentation Document Formats - PPT, PPTX Open Document - ODT, ODS, ODP Plain Text File - TXT Hypertext Markup Language - HTML For more details about supported document formats, please visit Features Overview. Main Features of the GroupDocs.Comparison\nCompare contents including paragraphs, words etc. See difference in style changes like fonts, colors, bold, italic, underlines etc. Differences between the documents are saved in a result file. You can read that file to see the list of differences i.e. the items added, updated or deleted. Whether your application is a ASP.NET web app or desktop based, you can just add it’s reference and start comparing documents. It takes just 2 lines of code to perform document comparison in your own .NET application. When comparing Word files, the merged document can be saved as a DOC/DOCX file, reflecting all the differences found with the Word’s native “Track Changes” feature. GroupDocs.Comparison directly works with the native file format, instead of relying on Microsoft Office or other components. Hence, you get the best performance in document comparison. Our ASP.NET MVC application for document comparison is free and open source. Get it from GitHub and host on your own server. It works well with mobile browsers, so you can use it in your office or on the go. Migration to Next Generation GroupDocs. Comparison Migrating to Next Generation GroupDocs.Comparison is quite easy. In order to help customers migrate to V3.0.0 or above, we have added a migration articles in the Product Docs. Please feel free to have a look at article: Migrating to GroupDocs.Comparison 3.0.0 or Higher Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Comparison:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Comparison Examples/Plugins/Showcases - Github source code examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/comparison/releasing-next-generation-groupdocs-comparison-net-compare-merge-microsoft-office-opendocument-pdf-text-html-documents/","summary":"GroupDocs team happily announces the release of Next Generation GroupDocs.Comparison for .NET with the new features that you may have not practiced before. GroupDocs.Comparison is a powerful API for comparing + merging Microsoft Office, PDF, Text and HTML documents. It compares both content and styles in the documents and saves the difference summary in a separate result file. This version has a new installer and some new features, fixes, and more document formats are introduced.","title":"Releasing Next Generation GroupDocs.Comparison for .NET - Compare and Merge Microsoft Office, OpenDocument, PDF, Text and HTML documents"},{"content":"\rGroupDocs.Viewer for .NET releases v3.1.0 with more flexibility and improved features. GroupDocs Team remains busy in improving the product according to customers\u0026rsquo; needs and their feedback. We always keep finding the ways to enhance the product\u0026rsquo;s scope and improve existing features. Let\u0026rsquo;s have a look at the improvements we have made.\nImproved Features GroupDocs.Viewer for .NET v3.1.0 has come with many improved features in the latest version. Listed below are the improved features in this release.\nApplying image watermark Email document loading by passing load options Add required html markup for email documents Localize exception messages Use output stream for convert page operations Image converter re-sizing Converter post-processing actions For more details on supported feature, please visit product documentation: GroupDocs.Viewer v3.1.0. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer:\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/viewer/new-release-groupdocs-viewer-net-introduces-number-improvements/","summary":"GroupDocs.Viewer for .NET releases v3.1.0 with more flexibility and improved features. GroupDocs Team remains busy in improving the product according to customers\u0026rsquo; needs and their feedback. We always keep finding the ways to enhance the product\u0026rsquo;s scope and improve existing features. Let\u0026rsquo;s have a look at the improvements we have made.\nImproved Features GroupDocs.Viewer for .NET v3.1.0 has come with many improved features in the latest version. Listed below are the improved features in this release.","title":"New release of GroupDocs.Viewer for .NET introduces a number of improvements"},{"content":" We are pleased to announce the new release of Next Generation GroupDocs.Conversion for .NET 3.1.0. with some exciting features. This version has a new installer and some new features and fixes are introduced . We recommend that you download and update the library as soon as you can.\nNew Features Introduced in Version 3.1.0 In this new release of GroupDocs.Conversion for .NET 3.1.0 new methods are introduced for returning all possible conversion for provided file type extension or provided stream and also new event is introduced to report conversion progress along with more improvements in API for smooth and fast conversions. Here are some highlights:\nGetting Conversion Progress Getting Available Document Save Options Auto Detect Source Type for Stream Input Convert streamed documents to Word Processing Formats and output a file path Convert streamed documents to Word Processing Formats and output the resulting document to a stream Convert streamed documents to Spreadsheet Formats and output a file path Convert streamed documents to Spreadsheet Formats and output the resulting document to a stream Convert streamed documents to Presentation Formats and output a file path Convert streamed documents to Presentation Formats and output the resulting document to a stream Convert streamed documents to Pdf Format and output a file path Convert streamed documents to Pdf Format and output the resulting document to a stream Convert streamed documents to Html Format and output a file path Convert streamed documents to Html Format and output the resulting document to a stream Convert streamed documents to Image Formats and output a file path Convert streamed documents to Image Formats and output the resulting document to a stream For more details about supported conversions between different document formats, please visit this article. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - Github source code examples Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/conversion/groupdocs-introduces-more-features-new-release-groupdocs-conversion/","summary":"We are pleased to announce the new release of Next Generation GroupDocs.Conversion for .NET 3.1.0. with some exciting features. This version has a new installer and some new features and fixes are introduced . We recommend that you download and update the library as soon as you can.\nNew Features Introduced in Version 3.1.0 In this new release of GroupDocs.Conversion for .NET 3.1.0 new methods are introduced for returning all possible conversion for provided file type extension or provided stream and also new event is introduced to report conversion progress along with more improvements in API for smooth and fast conversions.","title":"GroupDocs introduces exciting features in new release of GroupDocs.Conversion for .NET"},{"content":"\rVisual Studio Plugin for GroupDocs.Viewer API for .NET Examples is an easy way for the users/developers to explore and investigate API examples. The plugin automatically downloads the examples from Github and the latest GroupDocs.Viewer library from NuGet. This provides a quick and comfortable way to view and run example projects without downloading everything manually.\nFeaturesFollowing are some of the features of this plugin: Appears in File menu in Visual Studio Downloads source code automatically from Github Downloads **GroupDocs.Viewer **library automatically from NuGet Adds assembly reference automatically Provides both C# and VB examples Supports Visual Studio 2010, 2012 and 2013 Opens project in few steps Easy to download and install Easy to use Saves time and reduces effort Plugin Screenshots File -\u0026gt; GroupDocs in Visual Studio\rGroupDocs.Viewer Project (C#, VB)\rShowing files in projects\rInstallation and UsageFollowing resource(s) are available for the users to download, install and use the plugin. Installation and Usage Guide Downloads and Available Resources Download Plugin - Visual Studio Gallery Download Plugin - CodePlex Source Code - CodePlex Download Plugin - Github Source Code - Github Download API - GroupDocs.Viewer for .NET ContributeVisual Studio Plugin for GroupDocs.Viewer for .NET examples is open source and available for download. Developers can download it, get help to understand its working and extend its functionality. Following are the places from where source code can be downloaded. CodePlex Github FeedbackAs always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond. ","permalink":"https://blog.groupdocs.com/viewer/download-explore-groupdocs-viewer-net-libraries-examples-from-within-visual-studio/","summary":"Visual Studio Plugin for GroupDocs.Viewer API for .NET Examples is an easy way for the users/developers to explore and investigate API examples. The plugin automatically downloads the examples from Github and the latest GroupDocs.Viewer library from NuGet. This provides a quick and comfortable way to view and run example projects without downloading everything manually.\nFeaturesFollowing are some of the features of this plugin: Appears in File menu in Visual Studio Downloads source code automatically from Github Downloads **GroupDocs.","title":"Download and Explore GroupDocs.Viewer for .NET Libraries and Examples from within Visual Studio"},{"content":"\rOutlook Metadata Cleaner is an Outlook add-in powered by GroupDocs.Metadata for .NET that removes/cleans metadata properties in the files selected to be attached with email. It is an attach file button that appears in New Message window in Outlook. When some file is selected to be attached with email, the add-in first cleans all the metadata information saved with that file and then attaches metadata free file with email message.\nWhy Outlook Metadata Cleaner is needed? Email is one of the primary and mostly used sources of communication. Business documents and files sent through emails may contain some secret and private information in form of metadata. Companies and individuals owning these files might be very much concerned about the prevention of leakage of any of their organizational or private information. Exposure of sensitive metadata to any unauthorized person could have harm the reputation and privacy of any organization or individual. To cope with this, GroupDocs introduces Outlook Metadata Cleaner add-in to be integrated with MS Outlook. For more details, please visit Outlook Metadata Cleaner. How it looks in Outlook? This is how Outlook Metadata Cleaner looks in Outlook. **Features it Carries ** Have a look at the features introduced by Outlook Metadata Cleaner.\nEasy to install and use Automatically integrates with Outlook Cleans built-in document properties Cleans custom properties in documents Cleans EXIF metadata in images Cleans XMP metadata in images Supported Formats Following are the file formats supported by Outlook Metadata Cleaner\nPresentation Document (PPT/PPTX) Word Document (DOC/DOCX) Spreadsheet Document (XLS/XLSX) Portable Document Format (PDF) GIF JPEG/JPG PNG Supported Versions of Outlook GroupDocs.Metadata Add-in is supported by MS Outlook versions starting from Outlook 2010. Setup and Other Resources Outlook Metadata Cleaner is available for download. It is completely free of cost.\nDownload Setup (Github) - Setup to install add-in Download Setup (CodePlex) - Setup to install add-in Source Code (Github) - Complete source code Source Code (CodePlex) - Complete source code Developer\u0026rsquo;s Guide - Helpful article for developer User\u0026rsquo;s Guide - How to install and use Download API - MSI package and zipped DLLs Customer Feedback As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/metadata/introducing-outlook-metadata-cleaner-outlook-add-clean-metadata-email-attachments/","summary":"Outlook Metadata Cleaner is an Outlook add-in powered by GroupDocs.Metadata for .NET that removes/cleans metadata properties in the files selected to be attached with email. It is an attach file button that appears in New Message window in Outlook. When some file is selected to be attached with email, the add-in first cleans all the metadata information saved with that file and then attaches metadata free file with email message.","title":"Introducing Outlook Metadata Cleaner - An Outlook Add-in to Clean Metadata from Email Attachments"},{"content":"\rIt is another month and GroupDocs.Metadata for .NET has another release with more features and more supported file formats. GroupDocs Team is always looking for new ways to improve the product. We concentrate on introducing the features that are can help solve real life problems developers may come across. Let’s dive into it and have a look at what\u0026rsquo;s new in this release.\nNew Features GroupDocs.Metadata for .NET v1.1.0 introduced a bunch of new features. Listed below are the newly added features in this release.\nMetadata and Attachments in Email Message Metadata and Attachments in Outlook Message Metadata in OneNote Document Metadata in Adobe Photoshop File EXIF Metadata in Tiff Image Camera Raw Properties in XMP Metadata Paged Text Properties in XMP Metadata Easy Access of XMP Metadata using Property Names Removal of Custom Document Properties At Once For more details on supported feature, please visit the article: GroupDocs.Metadata Features. New Supported Formats Following are the new file formats supported in version 1.1.0.\nTiff - Tiff Image One - OneNote Document Psd - Adobe Photoshop File Eml - Email Message Msg - Outlook Email Message For more details on supported formats, please visit the article: Supported Formats. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata:\nDownload - MSI Package and Zipped DLLs NuGet Package - NuGet Install Documentation - Product Docs Forum - Technical Support Forum Video Tutorials - YouTube Videos Example / Plugins - Github Source Code Examples As always, you are welcome to share your feedback to improve this product. We will be happy to know your thoughts. Just create a forum thread and our dedicated support team will be there to respond.\n","permalink":"https://blog.groupdocs.com/metadata/new-release-groupdocs-metadata-net-introduces-number-new-document-formats/","summary":"It is another month and GroupDocs.Metadata for .NET has another release with more features and more supported file formats. GroupDocs Team is always looking for new ways to improve the product. We concentrate on introducing the features that are can help solve real life problems developers may come across. Let’s dive into it and have a look at what\u0026rsquo;s new in this release.\nNew Features GroupDocs.Metadata for .NET v1.1.0 introduced a bunch of new features.","title":"New release of GroupDocs.Metadata for .NET introduces a number of new document formats"},{"content":"\nGroupDocs.Assembly for .NET Visual Studio plugin is providing an easy to compile GroupDocs.Assembly for .NET 3.0.0 examples and to explore the examples. It has reduced the efforts to download examples and the GroupDocs.Assembly DLL file from different resources (GitHub, NuGet). You can quickly run CSharp or Visual Basic project.\nFeatures\nAppears in File menu in Visual Studio. Downloads source code automatically. Downloads GroupDocs.Assembly library automatically. Adds assembly reference automatically. Provides both C# and VB examples. Supports Visual Studio 2010, 2012 and 2013. Opens project in few steps. Easy to use. Saves time and reduces effort. Download Visual Studio Plugin for GroupDocs.Assemblyfor .NET Examples is available for download from following platforms.\nCodePlex Github Visual Studio Gallery Installation and Usage Installation of Visual Studio Plugin for GroupDocs.Assembly Examples is very easy and simple. User just needs to download MSI file and run it. After finishing the installation, plugin will be integrated with Visual Studio and appear in File menu. You need to add Newtonsoft.Json.DLL as reference in order to build any of the project (C# or VB).\nHow to Install Usage Screenshots Contribute Visual Studio Plugin for GroupDocs.Assembly for .NET examples is open source and available for download. Developers can download it and get help to understand its working and extend its functionality. Following are the places from where source code can be downloaded.\nCodePlex GitHub ","permalink":"https://blog.groupdocs.com/assembly/visual-studio-plugin-explore-groupdocs-assembly-examples/","summary":"GroupDocs.Assembly for .NET Visual Studio plugin is providing an easy to compile GroupDocs.Assembly for .NET 3.0.0 examples and to explore the examples. It has reduced the efforts to download examples and the GroupDocs.Assembly DLL file from different resources (GitHub, NuGet). You can quickly run CSharp or Visual Basic project.\nFeatures\nAppears in File menu in Visual Studio. Downloads source code automatically. Downloads GroupDocs.Assembly library automatically. Adds assembly reference automatically. Provides both C# and VB examples.","title":"Visual Studio Plugin to Explore GroupDocs.Assembly Examples"},{"content":" We are pleased to announce the release of Next Generation GroupDocs.Conversion for .NET. with the extinct features that you may have not experienced before. This version has a new installer and some new features, fixes, and more document formats are introduced . We recommend that you download and update the library as soon as you can.\nWhy Next Generation GroupDocs.Conversion? We are releasing GroupDocs.Conversion for .NET 3.0.0. which is also known as Next Generation GroupDocs.Conversion for .NET In this release, conversion techniques and features are enhanced to achieve fast and smooth document conversion so the conversion is not specific to web technologies only. Therefore, the API now supports generic document conversion for any application In Next Generation GroupDocs.Conversion for .NET, there is no more dependency for Web.UI based classes. Instead, only a single \u0026ldquo;GroupDocs.Conversion\u0026rdquo; Namespace is required to convert any document with advanced options for any applications. Whereas, in GroupDocs.Conversion for .NET 1.10.0, document conversion required separate namespace for each format and was dependent on web components classes. Supported Document Format Conversions\nWord Processing Spread sheet Presentation Pdf HTML Image For more details about supported conversions between different document formats, please visit this article. Migration to Next Generation GroupDocs.Conversion Migrating to Next Generation GroupDocs.Conversion is quite easy. In order to help customers migrate to V3.0.0 or above, we have added a migration articles in the Product Docs. Please feel free to have a look at article: Migrating to GroupDocs.Conversion 3.0.0 or Higher Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Conversion:\nDownloads - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Conversion Examples/Plugins/Showcases - Github source code examples ","permalink":"https://blog.groupdocs.com/conversion/perform-converion-betwee-50-document-image-file-formats/","summary":"We are pleased to announce the release of Next Generation GroupDocs.Conversion for .NET. with the extinct features that you may have not experienced before. This version has a new installer and some new features, fixes, and more document formats are introduced . We recommend that you download and update the library as soon as you can.\nWhy Next Generation GroupDocs.Conversion? We are releasing GroupDocs.Conversion for .NET 3.0.0. which is also known as Next Generation GroupDocs.","title":"Releasing Next Generation GroupDocs.Conversion for .NET - Performs Converion Between 50+ Document and Image File Formats"},{"content":"\rIt’s time to lay a hand on Next Generation GroupDocs.Viewer for .NET. GroupDocs releases this product with the great power of rendering a variety of document formats to HTML and image representations.\nWhy Next Generation GroupDocs.Viewer? The legacy 2.x versions of GroupDocs.Viewer for .NET had complex API structure thereby requiring more coding efforts for a simple implementation. There were specific way of code implementation for different types of application development platforms. For example, in previous versions a user control was provided for WinForm apps whereas for web apps, a different way was provided to generate Html Code which was a barrier in the API usage flexibility for variant application scenarios. Some salient features of the next generation GroupDocs.Viewer include (but of course not limited to):\nGroupDocs.Viewer for .NET 3.0.0 is providing an easy to understand way. ViewerHtmlHandler and ViewerImagehandler are provided to easily control the output. The GroupDocs.Viewer for .NET 3.0.0 has capability to generate the Image Repesentation of the document. It can converts document pages to images. To get the accurate and high quality view of the document. ViewerImageHandler class has been provided which returns the image stream. The returned strean can be mold to save the images in various formats. Document generation is no longer coupled with GUI and web, thus enabling you to use GroupDocs.Viewer for .NET 3.0.0 in a larger number of scenarios. GroupDocs.Viewer for .NET 3.0.0 is providing a meaningful coding structure along with significant lines of code reduction. Supported Features\nMultiple document formats are supported. Get html Representations of Documents Get image Representations of Documents View document in PDF Form View document as it is (Original Form) Apply watermark on rendered pages Perform transformations( Rotation, Reordering) Zero Dependency on any External Software/Tool It rasterize documents and images both, renders text and converts them to SVG+HTML+CSS. The GroupDocs.Viewer APIs will allow to get representation in html or image format for whole document, page-by-page or custom range of pages.. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Viewer:\nDownload - MSI Package as well as Zipped DLLs NuGet - Nuget install Documentation - Product Docs Examples/Showcases - Github source code examples Video Tutorials - YouTube videos Product Support Forum - Technical Support Forum for GroupDocs.Viewer ","permalink":"https://blog.groupdocs.com/viewer/simplest-api-to-get-image-html-representation-document/","summary":"It’s time to lay a hand on Next Generation GroupDocs.Viewer for .NET. GroupDocs releases this product with the great power of rendering a variety of document formats to HTML and image representations.\nWhy Next Generation GroupDocs.Viewer? The legacy 2.x versions of GroupDocs.Viewer for .NET had complex API structure thereby requiring more coding efforts for a simple implementation. There were specific way of code implementation for different types of application development platforms.","title":"Releasing Next Generation GroupDocs.Viewer for .NET – Simplest API To Get the Image or HTML Representation of The Document"},{"content":"\rWe are happy to release GroupDocs.Metadata for .NET API to work with metadata associated with various document and image formats. The API facilitates the user with simple syntax, easy to use methods and few lines of code to perform metadata operations. It provides the support of many popular document and image formats and the number is going to increase in next release.\nWhy GroupDocs.Metadata Is Developed? Metadata is structured information that is used to contain important business information of different resources. Having the ability to filter through that metadata makes it much easier for someone to locate a specific resource. Keeping the eyes on the importance of metadata, GroupDocs team thought to make an API that will help users to deal with metadata in an easy manner. Today, we have successfully converted the idea into a fully functional product. Why to Use GroupDocs.Metadata? GroupDocs.Metadata API is developed to empower developers and make their life easier while working with metadata. It is a very powerful and easy to use API that provides all basic metadata operation (i-e view, add, modify, remove) for a number of file formats. API gets the file as an input and makes its metadata accessible for the user. Now, it is up to the user to perform any of his desired operations on this metadata. Example Business Cases GroupDocs.Metadata is going to help a lot in various fields of life. For example, Sharing of crucial business documents is the key factor of any business party these days. Quiet often one party doesn\u0026rsquo;t want to expose the confidentiality of its business and employees as well through the reports/documents they prepare. So, just before sending these bulks of reports to the other party, removal of all confidential metadata from the reports is mandatory. In order to elaborate real life needs, we have envisaged some real life cases. Please feel free to visit the article: Working with Business Cases. Supported Features Have a look at the features provided by GroupDocs.Metadata API\nWorking with Built-in metadata properties in documents Working with Custom metadata properties in documents Working with EXIF metadata properties in images Working with XMP metadata properties in images Metadata Comparison For more details on supported feature, please visit the article: GroupDocs.Metadata Features Supported File Formats GroupDocs.Metadata API supports metadata operations for following file formats:\nPresentation Document (PPT/PPTX) Word Document (DOC/DOCX) Spreadsheet Document (XLS/XLSX) Portable Document Format (PDF) GIF JPEG/JPG PNG For more details on supported feature, please visit the article: Supported File Formats Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Metadata:\nDownload - MSI Package as well as Zipped DLLs NuGet - NuGet Install Documentation - API Documentation Examples/Plugins/Showcases - Source Code Examples, Plugins, and Metadata Editor Application Video Tutorials - YouTube API videos Product Support Forum - Technical Support Forum for GroupDocs Metadata queries ","permalink":"https://blog.groupdocs.com/metadata/control-and-process-metadata-associated-with-documents-and-images/","summary":"We are happy to release GroupDocs.Metadata for .NET API to work with metadata associated with various document and image formats. The API facilitates the user with simple syntax, easy to use methods and few lines of code to perform metadata operations. It provides the support of many popular document and image formats and the number is going to increase in next release.\nWhy GroupDocs.Metadata Is Developed? Metadata is structured information that is used to contain important business information of different resources.","title":"Releasing GroupDocs.Metadata for .NET - Control and Process Metadata associated with Documents and Images"},{"content":"\nIt’s time to lay a hand on Next Generation GroupDocs.Assembly for .NET. GroupDocs releases this product with the extinct features that you may have not experienced before. Variety of document formats are introduced, numerous data sources are supported. Document automation and report generation was never so easy.\nWhy Next Generation GroupDocs.Assembly? The legacy 1.3.0 version of GroupDocs.Assembly for .NET had limitations. For example, in order to generate a report in any of the supported, complex coding efforts were required for creating templates and then, generating any report. So, in order to simplify document automation and report generation, GroupDocs team reconsidered and revamped the whole architecture. Some salient feature include:\nGroupDocs.Assembly for .NET 3.0.0 brings power of C# and LINQ based data manipulations directly into your templates. Advanced template features such as charts, images, conditional blocks and others are supported. Custom objects of CLR types can be used as data sources from now, thus simplifying integration of GroupDocs.Assembly for .NET 3.0 with your applications. APIs are simplified: Creating of a DocumentAssembler class instance and setting of a few trivial options is all you need to generate a document. Document generation is no longer coupled with GUI and web, thus enabling you to use GroupDocs.Assembly for .NET 3.0 in a larger number of scenarios. Integrate GroupDocs.Assembly with existing business / systems through independent data sources like XML / JSON. Supported Features\nMultiple document formats are supported. Create templates in anyone of these document formats. Support of multiple data sources including custom C# objects Data manipulation capabilities like Formulas, Sequential data operations, Built-in data relation support and many others Easy template syntax Less coding effort Zero Dependency on any External Software/Tool GroupDocs.Assembly Engine itself does not require any additional software except .NET framework. However, you will require Microsoft Office in order to create templates just like you create docs. GroupDocs.Assembly will accept a template document and data source as input, assemble data with the template by evaluating the template syntax and then generate report in the same document format as that of template. In order to see how to create various types of reports, please visit Programmers Guide. An Example Business Case and the Reporting Requirements If you have countless transactions on daily basis and there is a requirement to generate reports on daily basis, it will be a nightmare or impractical to achieve that manually. GroupDocs.Assembly for .NET 3.0.0 is here to make it possible with little efforts. In order to get developers learn easily and quickly, we have explored the common business case of a typical shopping store. Available Channels and Resources Here are a few channels and resources for you to download, learn, try and get technical support on GroupDocs.Assembly:\nDownload - MSI Package as well as Zipped DLLs NuGet - Nuget Installation Documentation - Product Docs Examples/Plugins/Showcases - Github source code examples Video Tutorials - YouTube Videos Product Support Forum - Technical Support Forum for GroupDocs.Assembly ","permalink":"https://blog.groupdocs.com/assembly/simplest-api-for-document-automation-and-reports-generation/","summary":"It’s time to lay a hand on Next Generation GroupDocs.Assembly for .NET. GroupDocs releases this product with the extinct features that you may have not experienced before. Variety of document formats are introduced, numerous data sources are supported. Document automation and report generation was never so easy.\nWhy Next Generation GroupDocs.Assembly? The legacy 1.3.0 version of GroupDocs.Assembly for .NET had limitations. For example, in order to generate a report in any of the supported, complex coding efforts were required for creating templates and then, generating any report.","title":"Releasing Next Generation GroupDocs.Assembly for .NET - Simplest API for Document Automation and Reports Generation"},{"content":"\rGroupDocs.Comparison for .NET is a downloadable library designed to let developers seamlessly add multi-format document comparison functionality to their own applications or 3rd party services. It allows end users to compare two versions of a document in a web-browser without having to install original software used to create the documents. Supported file formats include: PDF, Microsoft Word, Excel, PowerPoint, plain text, HTML and ODT. Today we’re pleased to announce the release of a plugin that allows developers to integrate GroupDocs.Comparison for .NET into SharePoint. When installed, end users will be able to compare two versions of a document directly from within your SharePoint environment. Key features include: Multiple File Types Support: PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, TXT, HTML, ODT. Cross-Platform Compatibility: end users can compare documents from any web-enabled device using any standard web-browser, including: Internet Explorer 8+, Chrome, Mozilla Firefox and Safari 5+. Easy deployment: there is no need to install any software or browser plugins on the client side. Convenient User Interface: GroupDocs.Comparison visualizes differences found between two documents using a redline “Track Changes” view approach, which should be familiar to Microsoft Word users. The UI also provides end users with a comprehensive set of controls, which makes it easy to navigate documents and review changes in a web-browser. Advanced support for Microsoft Word documents: when comparing Microsoft Word documents, users can accept or reject found differences and then merge the compared documents into a final file. For more details on GroupDocs.Comparison for .NET, please visit its homepage. The SharePoint plugin along with installation instructions, please find here. If you have any questions about the plugin or need help, please feel free to submit a request on the GroupDocs Support Forum.\n","permalink":"https://blog.groupdocs.com/comparison/enhance-sharepoint-environment-multi-format-document-comparison-tool/","summary":"GroupDocs.Comparison for .NET is a downloadable library designed to let developers seamlessly add multi-format document comparison functionality to their own applications or 3rd party services. It allows end users to compare two versions of a document in a web-browser without having to install original software used to create the documents. Supported file formats include: PDF, Microsoft Word, Excel, PowerPoint, plain text, HTML and ODT. Today we’re pleased to announce the release of a plugin that allows developers to integrate GroupDocs.","title":"Enhance Your SharePoint Environment with a Multi-Format Document Comparison Tool"},{"content":"\rMoodle is a powerful learning management system that provides educators and learners with a robust set of tools for building and administrating collaborative learning environments. When integrated into Moodle, GroupDocs.Viewer enables both educators and learners to view and securely share documents, drawings and images in more than 50 different file formats – all from within Moodle environment and without having to install original software used to create the files.\nGroupDocs.Viewer is a multi-format HTML5-based document viewer that comes with a web-based user interface. The UI can be embedded into any web-page as a widget for viewing documents online. You can then either pre-load documents yourself, or let end users to upload documents from a shared library, or a personal storage to view them directly from within Moodle. To name just a few, supported file types include: PDF and Microsoft Word documents, Excel spreadsheets, PowerPoint presentations, Outlook messages, Project files, Visio diagrams, CAD drawings and raster images (TIFF, JPEG, PNG, GIF, BMP) and many more.\nAll supported file types can be viewed from any device with a standard web-browser and without having to leave Moodle. Supported web browsers include Internet Explorer 8+, Chrome, Mozilla Firefox, Opera, Safari 5+ and their mobile versions.\nA comprehensive set of controls for flawless online document reading and review makes GroupDocs.Viewer an ideal solution for your e-learning environment. When viewing documents online, users can quickly find needed content thanks to the powerful text search and thumbnail page preview options.\nGroupDocs.Viewer also allows you to share documents in a read-only mode. Its in-built browser-based Digital Rights Management (DRM) feature allows you to disable the print, download and text selection/copy options for all or specific documents that you share in Moodle. And for an extra layer of security, you can add watermarks to protect the documents against screen-grabbing.\nIf you are interested in integrating GroupDocs.Viewer into your Moodle environment, there are three deployment options available for your choice. The first is a SaaS deployment based on the cloud version of the viewer. It offers an easy deployment process but requires your documents to be stored and hosted on GroupDocs servers. To guarantee the security and privacy of your content, we use Amazon EC2 infrastructure and SSL encrypted connections. We also developed a plugin for the cloud version, which makes the integration process a breeze.\nFor customers who prefer to keep documents in-house, we offer downloadable .NET and Java libraries for on-premises deployment. These versions are also supported by plugins for seamless integration into Moodle. Today we are happy to inform that all plugins were approved by Moodle admins and can be downloaded from the official Moodle marketplace:\nGroupDocs.Viewer .NET plugin for Moodle\nGroupDocs.Viewer Java plugin for Moodle\nGroupDocs.Viewer Cloud plugin for Moodle\nIf you have any questions about GroupDocs.Viewer, or need help with deployment, please do not hesitate to contact us and make an inquiry via our support forum.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-plugin-one-leading-learning-platforms-moodle/","summary":"Moodle is a powerful learning management system that provides educators and learners with a robust set of tools for building and administrating collaborative learning environments. When integrated into Moodle, GroupDocs.Viewer enables both educators and learners to view and securely share documents, drawings and images in more than 50 different file formats – all from within Moodle environment and without having to install original software used to create the files.","title":"GroupDocs.Viewer Plugin for One of the Leading Learning Platforms - Moodle"},{"content":"\rTwo months ago we presented a new feature called InstanceID in GroupDocs.Viewer for .NET for the first time. In short, InstanceID allows you to configure several simultaneous instances of GroupDocs.Viewer associated with different independent root storage paths. Since that time, we’ve received a lot of feedback on the feature and this time would like to clarify how you can benefit from InstqanceID and how to configure it correctly in more details. Those of you who are familiar with GroupDocs.Viewer for .NET probably already know that in order to configure the viewer, a root storage path must be specified via the Groupdocs.Web.UI.Viewer.SetRootStoragePath method. The files you want to display to end users must be placed within the root storage path or its subfolders. All temporary files along with log files are also stored in dedicated subfolders within the root storage folder. Now, there is a File Explorer option available for end users via the viewer’s widget. When enabled, this option allows users to browse through the local file storage, select documents and view them using the viewer. The file storage can be the root storage folder and its subfolders. In other words, when the File Explorer option is enabled, end users can potentially browse through the entire root storage folder and access all files, including temporary and log files, via the viewer. And here is where the problem arises. There may be cases when end users need to be able to browse through and select documents on their own, but their access rights must be restricted to a specific folder. Or, for example, there may be several different user groups each having access to different files storages. This is where InstanceID can be of great help. It allows you to configure multiple simultaneous root storage folders, absolutely independent one from another, and then assign them to different users or user groups. Recently we’ve prepared a detailed guide on how to configure and use InstanceID properly and are welcoming everyone who is interested in this feature to read it here.\n","permalink":"https://blog.groupdocs.com/viewer/instanceid-using-multiple-simultaneous-instances-groupdocs-viewer-net/","summary":"Two months ago we presented a new feature called InstanceID in GroupDocs.Viewer for .NET for the first time. In short, InstanceID allows you to configure several simultaneous instances of GroupDocs.Viewer associated with different independent root storage paths. Since that time, we’ve received a lot of feedback on the feature and this time would like to clarify how you can benefit from InstqanceID and how to configure it correctly in more details.","title":"InstanceID: using multiple simultaneous instances in GroupDocs.Viewer for .NET"},{"content":"\rLast week we’ve announced a release of the GroupDocs.Viewer for .NET library version 2.13.0 and its two new features – an option for caching PDF copies of original files and the ability to use the viewer with an unlimited number of different independent root storage paths. Today we’d like to write about these features in more detail to help you quickly set up and get the most out of them. Let’s start with the caching enhancement. As you may already know, GroupDocs .Viewer for .NET allows you to configure caching for displayed documents. When enabled, the viewer doesn’t have to convert original documents stored on the server to HTML-compatible content each time the documents are requested. Instead, documents are converted only during the first view request and then added to the cache. For all subsequent requests of the same documents, they are loaded from the cache, which significantly reduces load time. This caching feature, however, was unavailable for PDF copies of original documents. So, when using features like .UsePdfPrinting(true) and .DownloadPdfFileIfPossible(true), the viewer had to convert original documents to the PDF format repeatedly for each new request. This was the case until the version 2.13.0. In the latest release of the GroupDocs.Viewer for .NET, you can now configure caching for PDF copies as well. What is important, the viewer is able to identify whether any changes to the displayed documents has been made (e.g. added watermarks, rotated or re-ordered pages, etc.) and if yes, refreshes the cache with the updated PDF copies, so that you can be sure that end users always get access only to the latest versions of the documents. This new caching feature can also be used ahead-of-time. In other words, you can configure GroupDocs.Viewer to add PDF copies of original files to cache even before they were actually requested by end users. For doing so, just use a new method – GeneratePdfVersion – within the DocumentCache class. The GeneratePdfVersion method obtains only one mandatory parameter – document’s name, then converts the document to the PDF format and saves it inside the cache folder. The method also has optional parameters which allow you to burn watermarks into PDF copies of original files. Please be cautious when configuring watermarks for different versions of a document. If you pre-generate a PDF copy of a document with watermarks and then specify the same document in the widget without the watermarks (or with some other watermarks), a discrepancy will occur, since watermarks specified for the \u0026ldquo;standard\u0026rdquo; document will vary from those specified for the PDF-version of the document.\nUsing Multiple Independent Root Storage Paths Another remarkable improvement we’ve implemented in this version is the ability to use the viewer with an unlimited number of different independent root storage paths. Here is how this works. The default root storage path, which is configured via the Viewer.SetRootStoragePath method, remains obligatory. However, you can now set up additional paths using the InstanceID identifier. For example:\nGroupdocs.Web.UI.Viewer.SetRootStoragePath(Server.MapPath(\u0026quot;~/App_Data/\u0026quot;)); - the default mandatory initialization. Groupdocs.Web.UI.Viewer.SetRootStoragePath(Server.MapPath(\u0026quot;~/OtherFiles/\u0026quot;), null, \u0026quot;myInstanceIdN1\u0026quot;); - an additional root storage path (the OtherFiles folder), linked to the myInstanceIdN1 identifier. Now, to load documents from the second root storage path (the OtherFiles folder), simply set the .ViewerInstanceId(\u0026ldquo;myInstanceIdN1\u0026rdquo;) method in the ClientHelper. This way you can configure as many independent root storage paths, as you need. That’s it! If you have any questions about these or other GroupDocs.Viewer for .NET features, please feel free to ask for help on our Support Forum.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-net-caching-pdf-copies-of-original-documents-and-using-multiple-root-storage-paths/","summary":"Last week we’ve announced a release of the GroupDocs.Viewer for .NET library version 2.13.0 and its two new features – an option for caching PDF copies of original files and the ability to use the viewer with an unlimited number of different independent root storage paths. Today we’d like to write about these features in more detail to help you quickly set up and get the most out of them.","title":"GroupDocs.Viewer for .NET version 2.13.0 - caching PDF copies of original documents \u0026 using multiple root storage paths"},{"content":"\rOne of the most requested and hence actively developed features in GroupDocs.Viewer for .NET is watermarking. Watermarking allows you to protect documents that you display on the web from screen-grabbing. In GroupDocs.Viewer for .NET watermarks are implemented as customizable text that can be added over a displayed document, overlapping its content. For the first time the ability to add watermarks was implemented in GroupDocs.Viewer for .NET version 2.0. In its first implementation, the feature had a number of restrictions. In particular, watermarks could be used only in the image-based rendering mode and the only customization option was the ability to specify a text color. Since that time, a lot of new parameters have been added and, importantly, the watermarking feature is now available in the HTML-based rendering mode too. In this article I’d like to discover all new parameters of the watermarking feature we’ve added since its first implementation. But before we proceed with the parameters, I’d like to clarify several basic principles about how watermarks are rendered in GroupDocs.Viewer for .NET: 1. When adding watermarks, GroupDocs.Viewer doesn’t modify your original documents on the server. Instead, watermarks are rendered only on the client-side (over the document displayed in the GroupDocs.Viewer widget). So, be sure to disable the print and download options of your original files, or otherwise, end users will be able to get your documents without any watermarks. Alternatively, you can let users download and print PDF versions of the original files with watermarks burned in. More details about this option later in this article. 2. Watermarks are added to every page across the document. So far, you can’t add watermarks to specific pages only, or place different watermarks on different pages. 3. Watermarks, along with page rotation and reordering, are treated as one of the document modification features - they change representation of the document. But, unlike the page rotation and reordering options, watermark settings are not accessible from the client-side (GroupDocs.Viewer widget) and can’t be disabled or modified by viewers via the toolbar. We’re now ready to explore all parameters of the watermarking feature available to date. Let’s start with the method signature:\npublic ClientHelper Watermark( string watermarkText, Color? watermarkColor = new Color?(), WatermarkPosition watermarkPosition = 0, float watermarkWidthInPercents = 0f, bool printWithWatermark = false ) As you can see, the only mandatory parameter is watermarkText (you can’t add a textual watermark without actually specifying a text to display). All other parameters are optional, have default values and can be omitted. Now, let’s take a closer look at them: The watermarkColor parameter allows you to specify the color of the watermark text. The default color is red. You need to add a reference to the System.Drawing.dll assembly for your project in order to be able to use the System.Drawing.Color class. The watermarkPosition parameter in an enumeration which specifies a start position of the watermark. It allows you to specify the following values: Diagonal, TopLeft, TopCenter, TopRight, BottomLeft, BottomCenter and BottomRight. The default value - Diagonal – places text across the page starting from the bottom left corner to the top right corner. The watermarkWidthInPercents parameter requires a bit more clarification. By default, when this parameter is omitted, GroupDocs.Viewer tries to stretch the watermark text, making it as large as possible to match the page size. This default maximum size is treated as a 100% size. With this parameter you can decrease the watermark size, making the text smaller. The default value is \u0026ldquo;0\u0026rdquo; which equals 100%. A range from 1 to 99 (with support for fractional numbers) allows you to adjust the text size quite precisely. The printWithWatermark is the most interesting in this series. As you may already know, GroupDocs.Viewer can generate a PDF-version of the original document when users try to print (.UsePdfPrinting(true)) or download (.DownloadPdfFileIfPossible(true)) the displayed document. With the printWithWatermark parameter set to true, watermarks will be burned into the PDF copies of the original documents that end users print or download. This allows you to share any document in the PDF format, protected with your custom watermarks. That’s it. Hope the article answers all the questions you had about watermarking in GroupDocs.Viewer for .NET. If you still have any questions or experience issues when configuring watermarks, please feel free to ask for help on the GroupDocs Support Forum.\n","permalink":"https://blog.groupdocs.com/viewer/protect-your-documents-with-watermarks-in-groupdocs-viewer-for-dot-net/","summary":"One of the most requested and hence actively developed features in GroupDocs.Viewer for .NET is watermarking. Watermarking allows you to protect documents that you display on the web from screen-grabbing. In GroupDocs.Viewer for .NET watermarks are implemented as customizable text that can be added over a displayed document, overlapping its content. For the first time the ability to add watermarks was implemented in GroupDocs.Viewer for .NET version 2.0. In its first implementation, the feature had a number of restrictions.","title":"Protect Your Documents with Watermarks in GroupDocs.Viewer for .NET"},{"content":"\rAs you may have already noticed, GroupDocs has many plugins available for 3rd party platforms and across all products we offer. We constantly expand this list and a few months ago we have announced a release of the new GroupDocs.Viewer for .NET plugin for Kentico CMS. This new plugin is very different from the cloud-based version we released earlier. The cloud-based version simply creates an iframe on a web-page where you want to display a document and redirects all input documents to the GroupDocs’ cloud API. This requires your documents to be temporary stored on GroupDocs’ servers. Although we use secure Amazon EC2 infrastructure, there are cases when you need to keep documents on your own servers without exposing them to the Internet. For example, you may have confidential documents that you definitely don’t want to send via Internet, or your website may be located on the intranet, etc. Unlike the cloud-based version, this new plugin is a truly low-level integration that doesn’t require any external API calls, or use of iframes. More than that, the viewer was integrated right into an existing Kentico component, extending its basic functionality. Today, I’d like to share a detailed guide showing all the steps I went through while developing the plugin. Please note that the article is not a step-by-step manual on how to install the plugin (you can find such manuals inside the plugin package). Instead, in this article I’d like to share my experience in developing a full-integration plugin for Kentico CMS. The article may help you in developing your own plugins for Kentico, see what issues I’ve encountered with and how I solved them when developing the plugin. Of course, the article will be also useful for those of you who’d like to have more details on how GroupDocs.Viewer works inside Kentico, how to install the viewer and eliminate any possible obstacles. So here we go – please find the article on this page.\n","permalink":"https://blog.groupdocs.com/viewer/complete-guide-for-developing-a-groupdocs-viewer-for-net-plugin-for-kentico-cms/","summary":"As you may have already noticed, GroupDocs has many plugins available for 3rd party platforms and across all products we offer. We constantly expand this list and a few months ago we have announced a release of the new GroupDocs.Viewer for .NET plugin for Kentico CMS. This new plugin is very different from the cloud-based version we released earlier. The cloud-based version simply creates an iframe on a web-page where you want to display a document and redirects all input documents to the GroupDocs’ cloud API.","title":"A Complete Guide for Developing a GroupDocs.Viewer for .NET Plugin for Kentico CMS"},{"content":"\rGood news for Orchard developers and site owners – after a successful release of the module that integrates GroupDocs.Viewer for .NET into Orchard CMS, we’re pleased to inform you that we’ve recently released yet another module - this time for integrating the .NET version of the GroupDocs.Annotation library. Like GroupDocs.Viewer, the GroupDocs.Annotation for .NET library supports all common business document formats, provides cross-platform compatibility and doesn’t require any installations on the client side. In addition to that, the library provides comprehensive document annotation functionality that allows your users collaboratively review and annotate documents on your Orchard site. GroupDocs.Annotation for .NET features 14+ annotation tools (including sticky notes, polyline, rectangle, arrow, text underline and strikethrough, redaction, watermarks, ruler, etc.), supports native PDF and Microsoft Word annotations and allows several uses to annotate the same document simultaneously. With this new module, Orchard developers now have a choice between two deployment options:\nOn-premises - by installing the downloadable GroupDocs.Annotation for .NET library. SaaS – by integrating the cloud version of the annotator. Users who already have a GroupDocs.Annotation for .NET license can use this new Orchard module for free. If you don’t have a license yet, but would like to test the annotator on your Orchard site, please feel free to contact GroupDocs sales for a 30-day trial license, or simply download an evaluation copy of the library. For more details on the GroupDocs.Annotation for .NET module, please visit the Orchard gallery.\n","permalink":"https://blog.groupdocs.com/annotation/groupdocs-annotation-for-net-can-now-be-easily-integrated-into-orchard-sites/","summary":"Good news for Orchard developers and site owners – after a successful release of the module that integrates GroupDocs.Viewer for .NET into Orchard CMS, we’re pleased to inform you that we’ve recently released yet another module - this time for integrating the .NET version of the GroupDocs.Annotation library. Like GroupDocs.Viewer, the GroupDocs.Annotation for .NET library supports all common business document formats, provides cross-platform compatibility and doesn’t require any installations on the client side.","title":"GroupDocs.Annotation for .NET Can Now Be Easily Integrated into Orchard Sites"},{"content":"\rKentico is quite a popular CMS focused largely on document management. At GroupDocs we create APIs that allow developers to enhance their applications and sites with convenient document collaboration tools. One of such tools is a multi-format, cross-platform compatible document viewer – GroupDocs.Viewer. It allows end users to view over 50 types of documents and images from any modern web-browser and without having to install any office software or plugins. To name just a few, the file formats that the viewer supports include: PDF and Microsoft Word documents, Excel spreadsheets, PowerPoint presentations, Visio diagrams, Outlook messages, CAD drawings, multipage TIFF files and a lot more. Another important feature – is the ability to display documents in a “read-only” mode. GroupDocs.Viewer allows you to prevent unauthorized copying of your documents while still sharing them with others. You can disable print, download and text copy options for specified documents and add watermarks to protect documents from screen-grabbing. Currently GroupDocs.Viewer exists in different forms: it is available as a .NET class library (DLL), Java library (JAR) and as a Cloud API (SaaS). Earlier we already released a plugin that allows Kentico developers and site owners to seamlessly integrate the Cloud (SaaS) version of GroupDocs.Viewer into their sites. The plugin can be found on the Kentico marketplace. The cloud version of the viewer simply creates an iframe on a web-page and redirects all input documents to the cloud API. Hence, documents have to be hosted on GroupDocs servers. Although we use secure Amazon EC2 infrastructure, there are cases when you need to keep your documents in-house and avoid any external requests to them or deploy the viewer on your intranet. If that is the case, you may be interested in a new plugin that we’ve just released for the .NET version of the viewer. This version can be deployed on-premises and doesn’t require any external API calls. The plugin has been tested by Kentico and is now officially published on the Kentico marketplace. This new version of the plugin is free for customers who own a GroupDocs.Viewer for .NET license. If you don’t have one, you can test the viewer on your site in an evaluation mode, or request a free fully-functional 30-day trial simply by contacting our support team. For more details on GroupDocs.Viewer for .NET, please visit its homepage. Also please visit our documentation portal for a detailed guide on how to deploy the viewer on your Kentico site.\n","permalink":"https://blog.groupdocs.com/viewer/display-pdf-microsoft-office-and-other-document-types-on-your-kentico-site/","summary":"Kentico is quite a popular CMS focused largely on document management. At GroupDocs we create APIs that allow developers to enhance their applications and sites with convenient document collaboration tools. One of such tools is a multi-format, cross-platform compatible document viewer – GroupDocs.Viewer. It allows end users to view over 50 types of documents and images from any modern web-browser and without having to install any office software or plugins.","title":"Display PDF, Microsoft Office and 50+ Other Document Types on Your Kentico Site"},{"content":"\rGroupDocs.Viewer for Java is a multi-format document viewer library that allows developers to seamlessly enhance their Java applications with the capability to display over 50 document and image types. Designed based on the client-server architecture, GroupDocs.Viewer doesn’t transfer documents to client machines during view sessions. Instead, the library converts documents to web-compatible content, transfers it to clients and then renders in a web-browser. This client-server architecture provides you with the following benefits: 1. End users see only web copies of the shared documents, while original files stay on the server. Combined with the in-built Digital Rights Management feature, this allows you to share documents in a “read-only” mode. You have complete control over documents security and can easily prevent unauthorized content copying. 2. Since documents are converted to pure HTML, CSS and SVG or raster images, they can be rendered in any standard web-browser. You don’t have to worry about whether end-users have the software required to open and view a document. 3. There is no need to install and maintain any 3rd party software on the client side, which significantly reduces IT overhead. Recently we’ve created a new Java PDF viewer sample built using the GroupDocs.Viewer for Java library and dropwizard framework. The sample allows you to quickly explore key features of the viewer and get an idea of how the viewer can be customized and integrated into your web-based Java app or website. For more information on GroupDocs.Viewer for Java and supported file formats, please see its homepage, while the sample project along with its description can be found on the codeplex website.\n","permalink":"https://blog.groupdocs.com/viewer/web-based-pdf-viewer-sample-built-using-groupdocs-viewer-for-java-library/","summary":"GroupDocs.Viewer for Java is a multi-format document viewer library that allows developers to seamlessly enhance their Java applications with the capability to display over 50 document and image types. Designed based on the client-server architecture, GroupDocs.Viewer doesn’t transfer documents to client machines during view sessions. Instead, the library converts documents to web-compatible content, transfers it to clients and then renders in a web-browser. This client-server architecture provides you with the following benefits: 1.","title":"A Web-Based PDF Viewer Sample Built Using the GroupDocs.Viewer for Java Library"},{"content":"\rBuilding a simple ASP.NET PDF viewer is quite a trivial task. There are tens of different open source projects across the web that offer a quick and free solution to display PDF documents in both ASP.NET MVC and Web Forms. Often a simple implementation of a PDF viewer is all you actually need. But things become a lot more complicated when the viewer needs to meet your customer’s business requirements. The most common are:\n1. Security. This obvious business demand creates great challenges for developers when implementing a PDF viewer. Businesses demand uncompromised security for their confidential documents. You need to prevent any access to source PDFs from the client-side and limit or totally restrict viewers from being able to download, print or copy the shared PDF documents.\n2. Cross-Platform Compatibility. Businesses require being able to share PDFs with customers, partners and team members without worrying about whether they have the software needed to open the documents. Hence, you need to be sure that end users can access and view the shared PDF documents from any web-enabled device and regardless of the browser used.\n3. Usability. Finally, businesses want to have tools delivered by standard office software, such as Adobe Reader, to be able to seamlessly browse and collaborate on PDF documents from a web-browser.\nIf you’ve been looking for an ASP.NET PDF viewer that meets all the mentioned requirements, you may be interested to try out this C# demo which is built based on the GroupDocs.Viewer for .NET library. The demo helps you quickly setup, configure and explore key features and functionality of the out-of-the-box PDF viewer for ASP.NET.\nBefore proceeding, I’d like to clarify that the GroupDocs.Viewer for .NET is a commercial library and is not free or open source. The C# demo includes a free evaluation copy of the library that has several functional restrictions. However, I’d strongly encourage you to contact GroupDocs support for a free 30-day license to be able to test the ASP.NET PDF viewer without any restrictions.\nSo, here we go. First, let’s look into how the library works:\nBack-End GroupDocs.Viewer for .NET is a downloadable library (DLL) that allows you to display different types of documents (including PDF) on the web. What makes it stand out from other web-based PDF viewers is its client-server (or “thin client”) architecture.\nUnlike client-based viewers, GroupDocs.Viewer for .NET doesn’t download source PDFs to end user machines. Instead, the library converts original documents stored on the server into a set of HTML markup, CSS and images. Once converted, a web-compatible copy of the PDF document is streamed to clients and rendered in web-browsers just like a regular web-page. Web copies look exactly like the original PDFs. Layouts are retained and fonts are sharp.\nSuch “thin client” architecture allows you to build an ASP.NET PDF viewer that meets both of the two core business requirements – security and cross-platform compatibility. End users can view PDF documents using a standard web-browser and without having to install Adobe Reader, Flash or any other plugins. For sure, PDF documents can be properly displayed in Chrome, Mozilla Firefox, Safari5+, Opera and, what is important, in commonly used by large organizations – Internet Explorer 8+.\nThe original PDF files are not downloaded to user machines during view sessions, but stay secure on your server and behind your firewalls. Combined with the in-built Digital Rights Management (DRM) features, this allows businesses to share PDF documents in a “read-only” mode. DRM controls all document copy options available in a web-browser, including downloading, printing and text copy/pasting. It allows users to decide on their own which PDFs to share in the “read-only” mode and which – with full access rights.\nWhen displaying PDF documents in a web-browser there is another potential security flaw, called “Print Screen”. This is where even DRM won’t help. To deal with the issue, we’ve implemented a capability to add watermarks over the displayed PDF documents. The watermarks are only rendered as a separate layer on top of the displayed documents, so that your original PDFs are not altered.\nNow, what about usability?\nFront-End GroupDocs.Viewer for .NET comes with an out-of-the-box GUI which can be seamlessly white-labeled and integrated into any ASP.NET site. The GUI provides end users with tools needed for convenient viewing and navigation of PDF documents in a browser. Our sample PDF viewer for ASP.NET provides all the most commonly used UI controls available in native Adobe Reader’s plugin, including:\nScroll view, one page in a row, two pages in a row view, double page flipping Page rotation and zooming Page thumbnails Text selection and copying to the clipboard Text search with different match types Document downloading and printing The GUI can be seamlessly customized and embedded straight to your ASP.NET site. Alternatively, you can build your own GUI from scratch to meet your customer’s requirements.\nBut enough with words – let’s take a look how this works. Below is an example of how your ASP.NET PDF viewer built based on the GroupDocs.Viewer for .NET library may look:\nRequirements Being a “thin client” solution, GroupDocs.Viewer for .NET doesn’t require any downloads or installations on the client side. End users can view PDF documents from any standard web-browser, including IE8+, Mozilla Firefox, Chrome, Opera, Safari5+ and their mobile versions. To deploy and properly configure the sample on the server, you will need a .NET Framework version 4.0+ and a “.NET-compatible” web-server: IIS, IIS Express or ASP.NET Development Server (Cassini). The viewer works with both ASP.NET Web Forms and ASP.NET MVC version 3+ frameworks. Running the Sample To help you setup and run the ASP.NET PDF viewer quickly, we’ve prepared a quick start guide. Please refer to this page for further instructions, as well as to download the C# demo itself.\nFor more details on the GroupDocs.Viewer for .NET library and the list of all supported file formats, please go to the products homepage.\n","permalink":"https://blog.groupdocs.com/viewer/asp-net-pdf-viewer-built-based-on-the-groupdocs-viewer-for-net-library/","summary":"Building a simple ASP.NET PDF viewer is quite a trivial task. There are tens of different open source projects across the web that offer a quick and free solution to display PDF documents in both ASP.NET MVC and Web Forms. Often a simple implementation of a PDF viewer is all you actually need. But things become a lot more complicated when the viewer needs to meet your customer’s business requirements.","title":"C# Demo Project of an ASP.NET PDF Viewer Built Based on the GroupDocs.Viewer for .NET Library"},{"content":"\rRecently we’ve updated our GroupDocs.Viewer for .NET library up to the version 2.8.0. In this post I’d like to discover some of the most remarkable updates implemented in this latest version:\nNew Page Layout OptionsSo far, when viewing documents, you had the following page layout options: Scroll view – pages are placed in a continuous chain, one after another. One page in a row – one page fit to client’s screen. No page turn animation. Double page flip – two adjacent pages fit to client’s screen, plus flipping page animation (available in the image-based rendering mode only). Starting with this new version, you have a choice between two more options:\nTwo pages in a row - two adjacent pages fit to client’s screen. No flipping page animation. This layout is available in both the images-based and the HTML-based rendering modes. This layout is especially useful when viewing documents on a widescreen display, as it allows users to cover unused screen space appearing when viewing documents with the scroll view or one page in a row layout. One more layout added in this release is actually a modification of the above one – a cover and then two pages in a row. This is useful when reading books, as the cover page can be placed apart from the subsequent adjacent pages. All the options can be configured by end users on their own, straight from the viewer’s GUI. You can also set a default layout using the Layout method from the GroupDocs.Viewer widget. This method accepts a Groupdocs.Web.UI.ViewerMode enumeration, which has the following values: ScrollView, DoublePageFlip, OnePageInRow, TwoPagesInRow, CoverThenTwoPagesInRow.\nItalian LocalizationThe geography of clients using the viewer grows rapidly. This time we have good news for our customers from Italy – an Italian GUI localization has been finally added in this build. The following are all GUI localizations currently available: ar-AE - Arabic (U.A.E.) en-US - American English, the default es-ES - Spanish it-IT - Italian (Standard) nb-NO - Norwegian pl-PL - Polish pt-PT - Portuguese ru-RU – Russian The default localization is en-US. You can change it to any other from the list above by using the Locale method from the GroupDocs.Viewer widget. There are two overloads of this method: the first one accepts the needed locale as a string code, while the second one accepts an enumeration value. They are completely equal, so you can use any of them.\nVirtual ScrollingThe new virtual scrolling feature improves page scrolling speed in client browsers. This is useful when displaying large documents of more than 1k pages. When enabled, the viewer streams to the DOM tree only the pages that are currently visible in the browser. New pages are added to the DOM only when the document is actually scrolled to those exact pages. This way, instead of rendering all document pages, the viewer needs to handle only a few pages at a time. An accompanying effect of this feature is the ability to get rid of the \u0026ldquo;Script hanging\u0026rdquo; message, which occasionally appears when opening or closing large documents (\u0026gt;1k pages). The message was caused by the JavaScript code used to render wrappers for each individual page within a document, or when deleting the wrappers upon switching to another document. To enable the virtual scrolling feature, you should apply the true Boolean value for the UseVirtualScrolling method in the GroupDocs.Viewer widget. When set to false, the virtual scrolling feature is off. Faster Word Documents RenderingA new parameter has been added – embedImagesIntoHtmlForWordFiles – to the UseHtmlBasedEngine method. When set to true, it forces the viewer to convert documents to HTML with SVG or raster images embedded straight into the HTML markup as Base64. Otherwise, images are stored as external files. Embedding images into the HTML markup significantly increases browsers’ rendering speed of Word documents that have a lot of images in them. Naturally, this parameter is available only in the HTML-based rendering mode. Share Documents with WatermarksNow you can let viewers to print or download a PDF copy of the original documents you share, along with watermarks burned in. This is useful when you want to prevent users from copying your content, while still need to share it with others. When enabled, viewers can print or download only a PDF copy of your original document with your custom watermarks in them. While viewers get a PDF copy with watermarks, your original documents stored on the server stay intact. In order to enable this feature, you should apply watermarks, using the Watermark method from the GroupDocs.Viewer widget, and set the true value for the last parameter - printWithWatermark. Please note that this feature is disabled by default! You need to set it explicitly. Other Enhancements Added an XML documentation file (called Groupdocs.Viewer.XML) into installers to enable IntelliSense in Visual Studio. A new SupportListOfContentControls option added. It allows you to display content controls with their headers, similar to what Microsoft Word does. Currently this option is available only in the HTML-based rendering mode. Numerous code optimizations and bug fixes. The new version of the GroupDocs.Viewer for .NET library is already available in our files archive, so you are welcome to download it, test it and report any issues or suggestions in our forum.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-net-library-version-2-8-0-new-page-layout-smoother-scrolling-enhanced-document-sharing-security/","summary":"Recently we’ve updated our GroupDocs.Viewer for .NET library up to the version 2.8.0. In this post I’d like to discover some of the most remarkable updates implemented in this latest version:\nNew Page Layout OptionsSo far, when viewing documents, you had the following page layout options: Scroll view – pages are placed in a continuous chain, one after another. One page in a row – one page fit to client’s screen.","title":"GroupDocs.Viewer for .NET Library Version 2.8.0 - New Page Layout, Smoother Scrolling and Enhanced Document Sharing Security"},{"content":"\rGroupDocs.Annotation for .NET is a downloadable library that allows developers to add cross-platform, multi-format document annotation functionality to any web-based app or site. Recently we’ve created an add-on specifically for Concrete5 users to make it easy to integrate the library into their websites. The add-on has been approved by Concrete5 admins and is now available for download from the official Concrete5 marketplace. How can Concrete5 site owners and developers benefit from this release? With the GroupDocs.Annotation for .NET library integrated into your site, you can seamlessly embed over 50 document and image types along with an annotation widget to any page within your website. Supported file formats include: PDF and Microsoft Word documents, Excel spreadsheets, PowerPoint presentations, Visio diagrams, CAD drawings, raster images and a lot more. End users can view and annotate documents on your website using any standard web-browser and without having to install any office software. GroupDocs.Annotation can significantly enhance your document collaboration workflows as it allows multiple users to annotate the same document at time. Moreover, users can access and annotate documents from anywhere, anytime and using any web-enabled device. Another benefit – is the ability to share documents in a “read-only” mode. Original documents are not downloaded to user machines during view/annotation sessions. And thanks to the Digital Fights Management (DRM) feature, you can prevent users from printing, downloading and copy/pasting the documents you share. This new integration is the second GroupDocs.Annotation add-on released for Concrete5. Earlier we’ve published an add-on that allows you to integrate the cloud-based version of the annotator. So, if you prefer a SaaS deployment option, please refer to this page, and if you are interested in the downloadable .NET version, please visit this page for further details on the integration and to download the add-on.\n","permalink":"https://blog.groupdocs.com/annotation/add-microsoft-office-files-pdf-and-image-annotation-functionality-to-concrete5-website/","summary":"GroupDocs.Annotation for .NET is a downloadable library that allows developers to add cross-platform, multi-format document annotation functionality to any web-based app or site. Recently we’ve created an add-on specifically for Concrete5 users to make it easy to integrate the library into their websites. The add-on has been approved by Concrete5 admins and is now available for download from the official Concrete5 marketplace. How can Concrete5 site owners and developers benefit from this release?","title":"Add Microsoft Office Files, PDF and Image Annotation Functionality to Your Concrete5 Website"},{"content":"\rGreat news for ExpressionEngine site owners and developers. Not a long time ago we’ve published a new plugin that allows you to integrate the GroupDocs.Viewer for .NET library into your ExpressionEngine website. The plugin is now available for download from the EE marketplace. This integration adds an ability to display 50+ types of documents right on your ExpressionEngine website. Among supported file formats are: PDF, Microsoft Word, Excel, PowerPoint, Outlook, Visio, RTF, CSV, CAD, multipage TIFF and a lot more. One of the key features of the viewer is a capability to display documents in a “read-only” mode. Documents displayed within your website are not downloaded to user machines, but rendered in a browser just like a regular web-page. Thanks to the DRM (digital rights management), all document copying options (printing, downloading, text copy/pasting) can be easily disabled. This allows you to protect you content from unauthorized copying, while still sharing it with others. This latest integration is the third GroupDocs.Viewer plugin released for ExpressionEngine. It allows you to integrate the downloadable .NET version of the viewer, which can be deployed on-premises. Earlier we also released plugins for the downloadable Java and cloud-based versions of the viewer. If you already own a GroupDocs.Viewer for .NET license, you can use the plugin for free. In case you don’t have a license yet, you can still download the plugin for free and test it with an evaluation copy of the library. For more details on the plugin and installation instructions, please visit its page on the official ExpressionEngine marketplace.\n","permalink":"https://blog.groupdocs.com/viewer/display-and-securely-share-documents-from-within-your-expressionengine-website/","summary":"Great news for ExpressionEngine site owners and developers. Not a long time ago we’ve published a new plugin that allows you to integrate the GroupDocs.Viewer for .NET library into your ExpressionEngine website. The plugin is now available for download from the EE marketplace. This integration adds an ability to display 50+ types of documents right on your ExpressionEngine website. Among supported file formats are: PDF, Microsoft Word, Excel, PowerPoint, Outlook, Visio, RTF, CSV, CAD, multipage TIFF and a lot more.","title":"Display and Securely Share Documents of More than 50 File Formats from within Your ExpressionEngine Website"},{"content":"\rThis article will guide you how to resolve a virtualPath issue that may appear in SharePoint 2013 when trying to add a 3rd party library (for example SignalR), or when you use the \u0026ldquo;~\u0026rdquo; symbol in the path. We encountered this issue while developing a plugin that allows you to integrate the GroupDocs.Annotation for .NET library into SharePoint. Overall, the issue is quite strange, as it is not reported in the stack trace or logs. Googling it didn’t give us any valuable details either. After several hours of investigation, we found out that the issue appeared due to the SharePoint server got \u0026ldquo;frightened and faints\u0026rdquo; just because it saw the \u0026ldquo;~\u0026rdquo; symbol in the path (for example: Server.Mappath(\u0026quot;~/testFolder/page.aspx\u0026quot;)). To resolve the issue, we should teach SharePoint how to work with this symbol. For doing so, we’ll create a custom handler that will override SharePoint’s common path handler. First, we need to create a custom http module that can be deployed to SharePoint:\nOpen your VisualStudio 2012 as administrator. Create an empty SharePoint project. Create a new class with the following code: internal sealed class GdVirtualPathProvider : VirtualPathProvider { public override string CombineVirtualPaths(string basePath, string relativePath) { return Previous.CombineVirtualPaths(basePath, relativePath); } public override string GetCacheKey(string virtualPath) { return Previous.GetCacheKey(virtualPath); } public override VirtualDirectory GetDirectory(string virtualDir) { return Previous.GetDirectory(virtualDir); } public override VirtualFile GetFile(string virtualPath) { return Previous.GetFile(virtualPath); } public override string GetFileHash (string virtualPath, System.Collections.IEnumerable virtualPathDependencies) { return Previous.GetFileHash(virtualPath, virtualPathDependencies); } public override bool FileExists(string virtualPath) { // This is a workaround for System.Web.WebPages // module initialization checking for precompiledapp which will // not work with SPVirtualPathProvider if (virtualPath.ToLower().EndsWith(\u0026#34;precompiledapp.config\u0026#34;)) return false; return Previous.FileExists(virtualPath); } public override System.Web.Caching.CacheDependency GetCacheDependency (string virtualPath, System.Collections.IEnumerable virtualPathDependencies, System.DateTime utcStart) { if (virtualPath.ToLower().StartsWith(\u0026#34;~/\\_appstart.\u0026#34;)) virtualPath = virtualPath.TrimStart(\u0026#39;~\u0026#39;); return Previous.GetCacheDependency(virtualPath, virtualPathDependencies, utcStart); } public override bool DirectoryExists(string virtualDir) { try { return Previous.DirectoryExists(virtualDir); } catch (Exception e) { return false; } } } Register this GDPathProvider in the HostingEnvironment via the custom HttpModule: internal sealed class GdHttpModule : IHttpModule { private static bool GdVirtualPathProviderInitialized = false; private static object \\_lock = new object(); public void Init(HttpApplication context) { if (GdVirtualPathProviderInitialized) return; lock (\\_lock) { var GdVirtualPathProvider = new GdVirtualPathProvider(); HostingEnvironment.RegisterVirtualPathProvider(GdVirtualPathProvider); GdVirtualPathProviderInitialized = true; } } public void Dispose() { } } In order to add the GdHttpModule to the application pipeline, we used the PreApplicationStartMethod assembly attribute that allows us to register the module via DynamicModuleUtility.RegisterModule when the application starts: public static class PreApplicationStartCode { public static void Start() { DynamicModuleUtility.RegisterModule(typeof(GdHttpModule)); } } Finally, add this assembly to the web.config assemblies: Done! Hope this will help you to deal with the issue when integrating any 3rd party libraries to your SharePoint environment.\n","permalink":"https://blog.groupdocs.com/annotation/how-to-fix-a-virtualpath-issue-in-the-sharepoint-2013/","summary":"This article will guide you how to resolve a virtualPath issue that may appear in SharePoint 2013 when trying to add a 3rd party library (for example SignalR), or when you use the \u0026ldquo;~\u0026rdquo; symbol in the path. We encountered this issue while developing a plugin that allows you to integrate the GroupDocs.Annotation for .NET library into SharePoint. Overall, the issue is quite strange, as it is not reported in the stack trace or logs.","title":"How to Fix a virtualPath Issue in the SharePoint 2013"},{"content":"\rWe’re pleased to announce the release of the DNN module that allows developers to easily integrate the GroupDocs.Annotation for .NET library into DNN websites. This is a “full-integration” module that doesn’t require the library to be installed separately. The module has been approved by the DNN admins and is now available for download from the official DNN store. A few words about the library itself. GroupDocs.Annotation for .NET is an HTML5-based document annotator designed specifically for integration into third-party apps and websites. It is a client-server middleware that converts documents to a web-compatible form (HTML, CSS, images, JS) and then renders these on client machines through a web widget along with a comprehensive set of annotation tools. The library allows end users to view, securely share and annotate over 50 document and image types using any HTML5-compatible web-browser. Supported file formats include, but not limited to: PDF, Word, Excel, PowerPoint, Visio, OpenDocument, CAD and raster images. Unlike the cloud-based module which we released earlier, this one integrates the downloadable .NET library, meaning you can deploy it on-premises. This allows you to host and store your documents locally. Users who already own a GroupDocs.Annotation for .NET license can use the module for free. In case you don’t have a license yet, please contact GroupDocs sales for a free 30-day fully-functional license to be able to test the module without any evaluation restrictions. For more details on the GroupDocs.Annotation for .NET module, please visit the official DNN store.\n","permalink":"https://blog.groupdocs.com/annotation/add-document-annotation-functionality-to-dnn-website-with-groupdocs-annotation-for-dot-net-module/","summary":"We’re pleased to announce the release of the DNN module that allows developers to easily integrate the GroupDocs.Annotation for .NET library into DNN websites. This is a “full-integration” module that doesn’t require the library to be installed separately. The module has been approved by the DNN admins and is now available for download from the official DNN store. A few words about the library itself. GroupDocs.Annotation for .NET is an HTML5-based document annotator designed specifically for integration into third-party apps and websites.","title":"Add Document Annotation Functionality to Your DNN Website with the GroupDocs.Annotation for .NET Module"},{"content":"\rGroupDocs.Assembly for .NET is a comprehensive library for generating documents and reports by merging your templates and data. With GroupDocs.Assembly, you can generate any type of document that requires custom data input. These could be invoices, NDAs, sales quotes, employment letters, reports, etc. The library supports Microsoft Word, Excel and PDF templates, and allows you to save the final, assembled documents in either of these formats. Just like all GroupDocs libraries, GroupDocs.Assembly for .NET is designed as a middleware that can be seamlessly integrated into any application, ECM, CMS and document management workflow. Thanks to the open API for all its operations, you can easily implement custom workflows tailored to your specific needs. From the end-user POV, the process of generating custom documents or reports consists of the following steps: 1. Create a template. Users can use existing templates in a PDF, Word (DOC/DOCX) or Excel (XLS/XLSX) format; create new templates with merge fields using any available office software, like Microsoft Word; or create templates using the GroupDocs.Assembly’s in-built template builder. 2. Connect the template to a data source. A data source can be either a DB, or an online questionnaire (a web-form). 3. Choose an output format and get completed documents that look like the initial templates, but incorporate custom data obtained from the adjusted source. For each completed questionnaire GroupDocs.Assembly generates a new unique document. As a result, your users save tons of time that they would otherwise spend on manual template filling. Reflecting the steps required to generate documents, the GroupDocs.Assemly for .NET library consists of three components: the Template Editor, Questionnaire Builder and Questionnaire Executor.\nTemplate EditorThis component comes in handy for turning a document into a template or editing an existing template. The template builder allows users to add or edit different types of input fields (such as text boxes, check boxes, radio buttons and list boxes) within Word and PDF documents. Once the template is ready, it can be connected to a DB or an online questionnaire, as well as saved for reuse. The Template Editor eliminates the need for use of any 3rd party office software, such as Microsoft Office, in the document assembly process. Still it supports native Word and PDF fields, allowing users to prepare document templates using whatever software they prefer. Questionnaire BuilderThe questionnaire builder allows you to set default values, response length, hints, conditional logic and other metadata for each input field (merge field) within the corresponding template. The rules and values for template fields can be set via the API, or the UI that comes with the library. The questionnaire builder also allows you, or your end-users, to build online questionnaires (web-forms) associated with the templates. The questionnaires can be easily published on a stand-alone HTML page or integrated into an existing page. Basically, a questionnaire is an online form implemented as a wizard that guides respondents though the form filling process by using the rules you’ve set in the builder (field order, response length, etc.). Questionnaire ExecutorThis is the core part of the library. It merges data with templates and generates the final completed documents. You can use GroupDocs.Assembly’s API to fill templates with data obtained from a DB, file, remote storage, or user input through the online questionnaires. Web UIAs already mentioned, the library also comes with an out-of-the-box web UI that can be integrated into any ASP.NET app. The wizard-like UI guides end-users through the entire document generation process and provides all the necessary tools for building templates and online questionnaires, publishing questionnaires on the web and managing completed documents. When integrated and configured, the UI provides hands-off document generation functionality, allowing your users to assemble documents without any help from admins or developers. The GroupDocs.Assembly’s flexible API allows you to build custom document generation workflows without any hassle. You can use both the API and UI wizards on every document generation stage. If you’re interested in GroupDocs.Assembly, please visit its homepage to download the library along with a sample project. We provide free tech support for custom integrations, so please feel free to contact our support team for any help. ","permalink":"https://blog.groupdocs.com/assembly/groupdocs-assembly-for-dot-net-generate-word-and-pdf-documents-form-templates-in-c-sharp-vb-net-asp-net/","summary":"GroupDocs.Assembly for .NET is a comprehensive library for generating documents and reports by merging your templates and data. With GroupDocs.Assembly, you can generate any type of document that requires custom data input. These could be invoices, NDAs, sales quotes, employment letters, reports, etc. The library supports Microsoft Word, Excel and PDF templates, and allows you to save the final, assembled documents in either of these formats. Just like all GroupDocs libraries, GroupDocs.","title":"GroupDocs.Assembly for .NET – Generate Word \u0026 PDF Documents from Templates in Your C#/VB.NET/ASP.NET Apps"},{"content":"\rMeet the all new GroupDocs.Conversion for Java library – a multi-format document converter with support for Microsoft Word, Excel, PowerPoint, Visio, PDF \u0026amp; image files. Just like all GroupDocs Java libraries, GroupDocs.Conversion is designed as a middleware to make it easy to integrate the converter into any ECM, CMS, or Java app.\nIn this first release, the library already supports over 50 file formats and allows you to convert literally all common business documents to PDF and raster images. To name just a few, GroupDocs.Conversion for Java allows you to convert:\nMicrosoft Word (DOC/DOCX) to PDF Microsoft Word (DOC/DOCX) to image formats (TIFF, PNG, JPEG, BMP) Microsoft Excel (XLS/XLSX) to PDF Microsoft Excel (XLS/XLSX) to image formats (TIFF, PNG, JPEG, GIF, BMP) Microsoft PowerPoint (PPT/PPTX) to PDF Microsoft PowerPoint (PPT/PPTX) to image formats (TIFF, PNG, JPEG, GIF, BMP) PDF to image formats (TIFF, PNG, JPEG, BMP) And a lot more. The library doesn’t rely on any 3rd party dependencies and can be seamlessly integrated into your own app hosted on any Java servlet container. The input documents can be obtained from a URL or a file path. Converted documents can be saved in a file or sent straight to streams. The library automatically provides you with paths to each converted document (output file).\nThe list of supported file formats will be growing with each new release. Please feel free to contact support to request a feature or file formats you’d like to convert using the library. For more detail on GroupDocs.Conversion for Java and to download a free evaluation copy of the library, please visit product’s page.\n","permalink":"https://blog.groupdocs.com/conversion/convert-common-document-types-to-pdf-and-image-files-in-java-apps-word-to-pdf-to-image/","summary":"Meet the all new GroupDocs.Conversion for Java library – a multi-format document converter with support for Microsoft Word, Excel, PowerPoint, Visio, PDF \u0026amp; image files. Just like all GroupDocs Java libraries, GroupDocs.Conversion is designed as a middleware to make it easy to integrate the converter into any ECM, CMS, or Java app.\nIn this first release, the library already supports over 50 file formats and allows you to convert literally all common business documents to PDF and raster images.","title":"Convert Common Document Types to PDF and Image Files in Your Java Apps: Word to PDF, PDF to Image and a Lot More"},{"content":"\rGroupDocs.Annotation for Java is a lightweight library that allows end users to annotate PDF and Microsoft Office documents, raster images, AutoCAD drawings and 50+ types of files without the need to install the software that the documents or images were created in. A convenient web UI allows users to view, annotate, redact, comment on and share documents from any web-enabled device. Recently we’ve released a new GroupDocs.Annotation for Java library – version 1.7.0. We’ve greatly enhanced the metadata storage APIs, revealed the public document manipulation API and made a couple of other useful tweaks. In this post I’d like to discuss these updates in more detail.You can seamlessly integrate GroupDocs.Annotation for Java into your own web, desktop or mobile application to enhance your users’ document collaboration experience. The underlying APIs allow you to customize the web UI that comes with the library, or build your own desktop or mobile interface from scratch.\nStore Metadata in any DB or File Format In the previous version of the library we introduced support for databases. We quickly realized that this was not enough and completely redesigned the library to provide developers with a more flexible and manageable solution. To this end, we’ve re-implemented the existing functionality in an OOP manner. Now, you can store annotations, user comments, profile details, etc. in JSON and XML formats. Also, the list of supported databases now includes the following: MSSQL, MySQL, SQLite and PostgreSQL. Please find more details on how to work with DBs and store files meta-data in the documentation.\nBuild Mobile, Desktop or Server Applications Following the GroupDocs.Viewer for Java library, the AnnotationHandler API is now also extended with pure methods that do not require HTTP requests and response objects. The methods allow developers to build any kind of user interaction, be it a web, desktop or mobile UI. Now you can even process documents in the background as part of your Java server application. Similarly to the HTTP handler methods, here is a list of new, context-independent ones that are available in the AnnotationHandler class:\nrestoreAnnotationReplies getPrintDocumentPageImage listAnnotations exportAnnotations createAnnotation getAvatar addAnnotationReply editAnnotationReply deleteAnnotationReply deleteAnnotation saveTextField setTextFieldColor moveAnnotationMarker resizeAnnotation getDocumentCollaborators uploadFile importAnnotations getPrintView For the full signatures and detailed info on these methods, please refer to the JavaDoc that comes with the library in a JAR package.\nOther Improvements Along with new features, we also improved the existing functionality a bit. For example, you can now configure the underline and strikeout tools’ color by overloading new configuration methods:\nString getStrikeOutColor() String getUnderlineColor() Other fixes and improvements have been made to the front-end and exporting functionality. Please check the full list of updates on the GroupDocs.Annotation for Java library download page. For more information on the library, please visit its homepage.\n","permalink":"https://blog.groupdocs.com/annotation/control-meta-data-and-build-custom-ui-with-groupdocs-annotaion-for-java-library-version-1-7-0/","summary":"GroupDocs.Annotation for Java is a lightweight library that allows end users to annotate PDF and Microsoft Office documents, raster images, AutoCAD drawings and 50+ types of files without the need to install the software that the documents or images were created in. A convenient web UI allows users to view, annotate, redact, comment on and share documents from any web-enabled device. Recently we’ve released a new GroupDocs.Annotation for Java library – version 1.","title":"Control Meta-Data and Build a Custom UI with the New GroupDocs.Annotation for Java Library Version 1.7.0"},{"content":"\rGroupDocs.Viewer for .NET is a web-oriented middleware designed to display over 50 different document types in a browser. It is a client-server library that converts documents into an HTML-compatible format and then renders them in a browser just as a regular web-page. As a result, you don’t have to install any third-party software or browser plugins on the client. Documents can be viewed from any modern web-browser, including IE8+, Chrome, FireFox, Opera, Safari 5+ and their mobile versions. Recently, we created a sample that demonstrates a basic ASP.NET document viewer implementation based on the GroupDocs.Viewer for .NET library. It also shows the core difference between two rendering modes available in GroupDocs.Viewer: image- and HTML-based. This can help you choose the right document rendering mode, depending on your specific requirements. The sample itself is a standard ASP.NET WebForms C# project that was created using Microsoft Visual Studio 2012. It contains two example documents (in PDF and Excel formats), but you can upload an unlimited number of your own documents in different formats to test the viewer. For more information on the viewer and supported file formats, please see this page, while the sample project along with its description can be grabbed from the code.msdn.microsoft.com sample gallery.\n","permalink":"https://blog.groupdocs.com/viewer/seamlessly-build-asp-net-document-viewer-to-display-pdf-microsoft-word-and-excel/","summary":"GroupDocs.Viewer for .NET is a web-oriented middleware designed to display over 50 different document types in a browser. It is a client-server library that converts documents into an HTML-compatible format and then renders them in a browser just as a regular web-page. As a result, you don’t have to install any third-party software or browser plugins on the client. Documents can be viewed from any modern web-browser, including IE8+, Chrome, FireFox, Opera, Safari 5+ and their mobile versions.","title":"Seamlessly Build an ASP.NET Document Viewer to Display Over 50 Types of Documents, Including PDF, Microsoft Word and Excel"},{"content":"\rIn this post I\u0026rsquo;m going to introduce new features that became available with version 2.5.0 of the Java document viewer library from GroupDocs. GroupDocs.Viewer for Java is a lightweight document viewer library that supports more than 50 file formats, including Microsoft Office documents, PDFs, images, OpenDocument files, emails and others. Initially, the library was geared towards integration into web apps and websites. Starting from this release, we overcame the boundaries of the “web” prefix and made the viewer available for any type of applications, including desktop and mobile ones! As well as this change, we improved the core engine and the web UI that comes with the library. Check all the new stuff in detail below:\nOpen API This is probably the most remarkable feature in this release. With an open API for the user interface, you can now build custom applications based on the viewer, irrespective of the platform you work with. In other words, GroupDocs.Viewer for Java can now be smoothly integrated into any web, mobile or desktop app. The new methods don’t require HTTP requests and responses. They are enclosed in the ViewerHandler and you can use them to manage the document view:\ngetImageUrls(Image image) – Get thumbnails and other image files getPrintableHtml(PrintDocument doc) – Get the print document in HTML loadFileBrowserTreeData(FileBrowserTreeData treeData) – Load a tree of files from the base directory viewDocument(ViewDocument viewDocument) – Generate a list of images/pages Cache Control To help you better maintain your project’s storage space limitations, we’ve implemented the cache size control feature which allows you to set the upper boundary of the cache volume. GroupDocs.Viewer for Java maintains this by removing the oldest data from cache when its size grows beyond the limit. This can be configured with the following method:\nLong com.groupdocs.viewer.config.IBackEndConfiguration.getMaxCacheSize() GroupDocs.Viewer for Java uses it to get the cache size limit in megabytes.\nMicrosoft Azure Storage Support In this release we also implemented an out-of-the-box connector for the Microsoft Azure storage provider. It is represented as a custom input data handler:\ncom.groupdocs.viewer.handlers.input.AzureInputDataHandler You can use it as any other custom InputDataHandler. Initialize the AzureInputDataHandler instance with the Azure account credentials and GroupDocs.Viewer configuration:\npublic AzureInputDataHandler(String accountName, String accoutnKey, ServiceConfiguration config) Then apply it to the ViewerHandler on the initialization stage:\npublic ViewerHandler(ServiceConfiguration config, InputDataHandler inputDataHandler) Or you can set it later in the application using the InputDataHandler\u0026rsquo;s static method:\npublic static void setInputDataHandler(InputDataHandler inputDataHandler) Page Preloading By default, GroupDocs.Viewer for Java loads only pages that a user is currently viewing. All subsequent pages of the document are retrieved only when the user scrolls down to them. This behavior is called “lazy-loading” and aims to meet bandwidth limitations. In this release we’ve added the possibility to specify the number of pages that should be preloaded, so that when a user navigates to them they are quickly retrieved from the cache. You can now set pages to be fully loaded on the front-end at the start before they even appear in the viewport.\npublic Boolean isPreloadPagesOnBrowserSide() The number of pre-loaded pages is controlled with the same method as for the background caching:\npublic Integer getPreloadPagesCount() Tabbed Rendering of Excel Spreadsheets Microsoft Excel, ODS and other documents that have several sheets are now rendered with tab controls that allow end users to quickly switch between spreadsheets, just like in native applications.\nNew Localizations The UI is now available in English, Norwegian, Polish, Portuguese, Russian and Spanish. Furthermore, the localization functionality is fully adapted to the UTF-8 standard, to make it easy to customize the UI with any additional languages. The new version of the GroupDocs.Viewer for Java library is available for download from our downloads archive. Also, please feel free to download our samples to explore the Java version of the document viewer quickly. For more detailed installation and usage instructions, please see the documentation wiki.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-java-library-universal-document-viewer-for-your-web-mobile-desktop-apps/","summary":"In this post I\u0026rsquo;m going to introduce new features that became available with version 2.5.0 of the Java document viewer library from GroupDocs. GroupDocs.Viewer for Java is a lightweight document viewer library that supports more than 50 file formats, including Microsoft Office documents, PDFs, images, OpenDocument files, emails and others. Initially, the library was geared towards integration into web apps and websites. Starting from this release, we overcame the boundaries of the “web” prefix and made the viewer available for any type of applications, including desktop and mobile ones!","title":"GroupDocs.Viewer for Java Library Version 2.5.0 – A Universal Document Viewer for Your Web, Mobile \u0026 Desktop Apps"},{"content":"\rWe’re pleased to inform GetSimple developers that the .NET version of GroupDocs.Viewer can be seamlessly integrated into their websites thanks to a plugin we released a few weeks ago. With this plugin installed, you can embed and display over 50 types of documents and images on any page within your website. To name a few, supported formats include: PDF and Microsoft Word documents, Excel spreadsheets, PowerPoint presentations, Visio diagrams and CAD drawings. Unlike the cloud-based version, GroupDocs.Viewer for .NET is a downloadable library that can be installed on your own server. It allows you to store documents locally and host content behind your firewalls. The library is designed to be easy to integrate into any ASP.NET app or website and comes with an embeddable web UI. The plugin is absolutely free and can be downloaded from the official GetSimple marketplace. Please note that the plugin requires the GroupDocs.Viewer for .NET library to be installed first. You can download a free evaluation copy of the library from this page. For more detail on the .NET/ASP.NET version of the viewer, please see this page.\n","permalink":"https://blog.groupdocs.com/viewer/integrate-groupdocs-viewer-for-net-into-your-getsimple-cms-seamlessly/","summary":"We’re pleased to inform GetSimple developers that the .NET version of GroupDocs.Viewer can be seamlessly integrated into their websites thanks to a plugin we released a few weeks ago. With this plugin installed, you can embed and display over 50 types of documents and images on any page within your website. To name a few, supported formats include: PDF and Microsoft Word documents, Excel spreadsheets, PowerPoint presentations, Visio diagrams and CAD drawings.","title":"Integrate GroupDocs.Viewer for .NET Into Your GetSimple CMS Seamlessly"},{"content":"\rToday, I’d like to present several great enhancements that we’ve implemented in the GroupDocs.Annotation for Java library version 1.6.0:\nUser Avatars Remote collaboration in groups is much more engaging and productive when we can see each other (or at least put a face to each other). In this release we’ve implemented functionality that allows users to use personal avatars when annotating documents in a group. The avatar functionality can be easily configured through the library’s API. The {{AnnotationHandler}} has two new methods for handling user icons:\npublic byte\\[\\] getUserAvatar(String userGuid) public void setUserAvatar(String userGuid, byte\\[\\] avatarFile) The array used in these methods contains a binary picture that can be set for each user. For example, you can check if an avatar is already set, and if not, load one:\nif (annotationHandler().getUserAvatar(userGuid) == null){ FileInputStream avatarStream = new FileInputStream(new File(\u0026#34;E:\\\\\\\\Images\\\\\\\\smile.jpeg\u0026#34;)); byte\\[\\] bytes = new byte\\[avatarStream.available()\\]; IOUtils.readFully(avatarStream, bytes); Utils.closeStreams(avatarStream); annotationHandler().setUserAvatar(userGuid, bytes); } Save Annotations in a DB In this release we’ve added the capability to configure how you store annotation metadata. The ORMLite persistence framework is now used to support a huge variety of storage providers. You can still use good old local file storage but if you need more consistency you can now easily integrate GroupDocs.Annotation with your application’s database, be it a MySQL, Microsoft SQL Server, PostgreSQL, or other supported DB. For more detail on this feature, please see this page.\nNew Annotation Objects GroupDocs.Annotation for Java version 1.6.0 has two new annotation tools:\nRuler - allows users to measure the distance between specified points in pixels. Underline tool - allows users to underline selected text. Besides, we’ve improved support for native PDF and Word annotations and added the capability to export annotated Word documents to a final .doc/.docx file with the Word’s “Track Changes” feature active.\nPrint Preview One more enhancement that you may be interested in is the ability to generate a document print preview when users try to print the annotated document. The print preview displays documents with annotations added. To see a full list of changes and download the GroupDocs.Annotation for Java library version 1.6.0, please visit our download archive. For more information on the library please visit its homepage and documentation. We also encourage you to use the code examples that we’ve prepared to help you explore the library’s functionality quickly.\n","permalink":"https://blog.groupdocs.com/annotation/save-annotations-in-db-and-set-user-avatars-in-groupdocs-annotation-for-java-library/","summary":"Today, I’d like to present several great enhancements that we’ve implemented in the GroupDocs.Annotation for Java library version 1.6.0:\nUser Avatars Remote collaboration in groups is much more engaging and productive when we can see each other (or at least put a face to each other). In this release we’ve implemented functionality that allows users to use personal avatars when annotating documents in a group. The avatar functionality can be easily configured through the library’s API.","title":"Save Annotations in a DB and Set User Avatars in the GroupDocs.Annotation for Java Library"},{"content":"\rGroupDocs.Viewer for Java is a lightweight library that allows developers to display PDF (as well as Microsoft Word, Excel, PowerPoint and over 50 other types of documents) within their Java apps. The Java PDF viewer provides cross-platform compatibility, allowing end users to view PDF documents from any web-enabled device, including mobiles and tablets. The viewer works with all modern browsers: IE8+, Chrome, FireFox, Safari 5+, Opera and their mobile versions. There is no need to install anything on the client side. Users can view PDFs without having to install Adobe Acrobat Reader.\nFast \u0026amp; Clear PDF RenderingDepending on the chosen rendering mode, the viewer rasterizes PDFs to images or converts them to pure HTML+CSS+SVG. When rasterizing documents, the library extracts text and renders it on a separate layer on top of background images. As a result, both modes provide high-fidelity font rendering - texts look sharp regardless of the zoom factor. The Java PDF viewer library can load remote documents via URLs, from streams and files located on your storage. To load documents faster, the library cashes PDFs on the server side when they are loaded (viewed by a user) for the first time. There is also an AOT (ahead-of-time) caching option that allows you to force the library to add any specified PDF to cache before it has even been displayed to users. Convenient User InterfaceWe’ve packaged our Java PDF viewer with an out-of-the-box web UI that helps end users to easily navigate PDFs in a web-browser. You can adjust the UI\u0026rsquo;s look and feel by tweaking CSS or completely customize its functionality by complementing the JavaScript front-end. The demo below gives an idea of how the UI can be customized to match your app or website requirements. The embedded PDF document you see in the demo represents the default look and functionality of the UI, while the demo viewer itself is slightly tweaked with our CSS: In addition to that, the library provides a choice between English, Spanish, Portuguese, Norwegian and Russian UI localizations. Keep Your PDFs SafeThe GroupDocs.Viewer for Java library comes as downloadable JAR that can be deployed on your own server and behind your firewalls. All your PDFs are processed locally and hosted on your server, which ensures complete control over documents’ security. If you don’t want users to copy the contents of displayed PDFs, the printing, downloading and text copying options can be restricted or removed from the UI at all. And for an additional layer of security, the library allows you to add watermarks over the displayed PDF documents. Try the Viewer for FreePlease feel free to download an evaluation copy of the library or contact sales for a 30-day fully functional trial. To help you explore the library quickly, we’ve prepared a bunch of code samples along with detailed documentation. We are always happy to help you resolve use-cases of any complexity, so feel free to contact our support team for help. For more details on the Java PDF viewer library, please see this page. ","permalink":"https://blog.groupdocs.com/viewer/zero-footprint-cross-platform-java-pdf-viewer-for-your-apps/","summary":"GroupDocs.Viewer for Java is a lightweight library that allows developers to display PDF (as well as Microsoft Word, Excel, PowerPoint and over 50 other types of documents) within their Java apps. The Java PDF viewer provides cross-platform compatibility, allowing end users to view PDF documents from any web-enabled device, including mobiles and tablets. The viewer works with all modern browsers: IE8+, Chrome, FireFox, Safari 5+, Opera and their mobile versions.","title":"Zero-Footprint, Cross-Platform Java PDF Viewer for Your Apps"},{"content":"\rGroupDocs.Annotation for Java is a lightweight document annotation Java library that allows the placing of markup and comments in Microsoft Office documents, PDFs, images and over 50 other file types. It provides end users with a rich set of markup tools and can be used on any web-enabled device without the need to install third-party software. Thanks to its cross-platform compatibility and convenient UI, GroupDocs.Annotation is an ideal solution if you need to add document annotation functionality to your Java application. Recently I’ve added two short guides covering minor, but quite common, requests from GroupDocs.Annotation customers and would like to share them with you: Manage User Rights in GroupDocs.Annotation for Java GroupDocs.Annotation has a user authentication/authorization system that allows you to grant and restrict different access rights to certain users. Using it, the library can be easily integrated into the user management system used in your own application. You can find the guide on this page. Setting the TrueType Fonts for Document Exporting GroupDocs.Annotation for Java uses the TruType fonts to render annotations and to export documents with annotations. These fonts may be absent in Linux OSs. This guide shows how to install the fonts to be able to export documents properly.\n","permalink":"https://blog.groupdocs.com/annotation/managing-user-access-rights-and-specifying-fonts-with-groupdocs-annotation-for-java-library/","summary":"GroupDocs.Annotation for Java is a lightweight document annotation Java library that allows the placing of markup and comments in Microsoft Office documents, PDFs, images and over 50 other file types. It provides end users with a rich set of markup tools and can be used on any web-enabled device without the need to install third-party software. Thanks to its cross-platform compatibility and convenient UI, GroupDocs.Annotation is an ideal solution if you need to add document annotation functionality to your Java application.","title":"Managing User Access Rights and Specifying Fonts in the GroupDocs.Annotation for Java Library"},{"content":"\rGroupDocs.Annotation for Java is a flexible library built to extend document collaboration to the web. It allows end users to review, annotate and comment on over 50 types of documents. The library supports Microsoft Office and OpenDocument formats, PDFs, images, AutoCAD drawings and others. A rich set of tools allows users to draw lines, place watermarks and pointers, redact and comment text, strike through and underline it. And thanks to its cross-browser compatibility, the library lets users to annotate documents literally from any web-enabled device using just a browser and without having to install any third party software or plugins. The library has seen a number of improvements in the recent releases. In this article I\u0026rsquo;d like to introduce the most notable improvements.\nSupport for Native PDF \u0026amp; Microsoft Word AnnotationsStarting from version 1.5, GroupDocs.Annotation for Java supports native PDF and Word annotations. This means that annotations in a PDF document can be imported to GroupDocs.Annotation for further online review and editing. Also, annotations made with GroupDocs.Annotation can be exported to a PDF or Word file with the annotations in them for further offline editing. Support for Microsoft Word’s “Change Tracking” FeatureAnother useful feature supported in the newest version of the library is the “track changes” mechanism from Microsoft Word. Word documents annotated with the GroupDocs.Annotation for Java can now be exported to a Word (DOC/DOCX) file with the edits (comments, markups, etc.) highlighted with the Word’s “track changes” feature. For more details on GroupDocs.Annotation for Java, please visit its homepage. Also, download a free evaluation copy along with code examples to try the library yourself. ","permalink":"https://blog.groupdocs.com/annotation/support-for-native-word-and-pdf-annotations-in-groupdocs-annotation-for-java/","summary":"GroupDocs.Annotation for Java is a flexible library built to extend document collaboration to the web. It allows end users to review, annotate and comment on over 50 types of documents. The library supports Microsoft Office and OpenDocument formats, PDFs, images, AutoCAD drawings and others. A rich set of tools allows users to draw lines, place watermarks and pointers, redact and comment text, strike through and underline it. And thanks to its cross-browser compatibility, the library lets users to annotate documents literally from any web-enabled device using just a browser and without having to install any third party software or plugins.","title":"Support for Native Word \u0026 PDF Annotations in GroupDocs.Annotation for Java Version 1.5+"},{"content":"Greetings! As you may noticed, in most GroupDocs.Viewer for .NET sample projects, target documents are presented in the form of files. They are usually placed in the \u0026ldquo;testfiles\u0026rdquo; folder, which is specified in the Global.asax. So you might think that GroupDocs.Viewer can work with files only. But this is not true - GroupDocs.Viewer can also load documents from byte streams (System.IO.Stream). Moreover, there are no limitations on the type of stream: whether it\u0026rsquo;s a FileStream, a MemoryStream or a NetworkStream - GroupDocs.Viewer can work with it! So, in this article I\u0026rsquo;d like to shed light on all aspects of using streams with the GroupDocs.Viewer for .NET library: which types of streams are supported, how to grab files from a DB as streams, how to use streams in ASP.NET WebForms and also in MVC projects. UPD: the latest versions of the GroupDocs.Viewer for .NET library has seen a number of significant enhancements to how the viewer handles streams. Recently I\u0026rsquo;ve updated the article to reflect these changes. In particular, I rewrote the guides on how to use streams in ASP.NET WebForms and MVC projects, and added new chapters describing how to handle cache, load files from multiple streams, etc, as well as most common mistakes developers face with when adjusting streams in GroupDocs.Viewer. I also added a changelog, showing the updates implemented in each version of the viewer, so that you can quickly tweak the necessary settings. Hope, this will help you set up and run streams with GroupDocs.Viewer in your project hassle-free. Go to the article \u0026raquo;\u0026gt;\n","permalink":"https://blog.groupdocs.com/viewer/loading-documents-streams-groupdocs-viewer-net-library/","summary":"Greetings! As you may noticed, in most GroupDocs.Viewer for .NET sample projects, target documents are presented in the form of files. They are usually placed in the \u0026ldquo;testfiles\u0026rdquo; folder, which is specified in the Global.asax. So you might think that GroupDocs.Viewer can work with files only. But this is not true - GroupDocs.Viewer can also load documents from byte streams (System.IO.Stream). Moreover, there are no limitations on the type of stream: whether it\u0026rsquo;s a FileStream, a MemoryStream or a NetworkStream - GroupDocs.","title":"Loading Documents from Streams with the GroupDocs.Viewer for .NET Library"},{"content":"\rWe are pleased to announce the release of the extension that allows Magento developers to seamlessly integrate GroupDocs.Viewer for .NET into their websites. The extension has been approved by the Magento admins and is now available for download from the official Magento marketplace. With this extension installed, developers can embed and display 50+ types of documents and images on any page within their Magento websites. Supported document formats include PDF, Microsoft Word. Excel, PowerPoint, Visio, CAD and raster images. This extension is the third in a series and compliments other GroupDocs extensions that allow developers to integrate the cloud-based and Java versions of the GroupDocs.Viewer. The .NET and Java versions are based on downloadable libraries and allow you to host documents locally. The cloud-based extension provides simpler implementation, but requires documents to be hosted on GroupDocs\u0026rsquo; servers. Whatever deployment you choose, we provide free trials, so that you can test the viewer on your website. Also, existing users of the GroupDocs.Viewer can use these extensions for free. For more details on the extension and installation instructions, please visit its page on the Magento marketplace.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-net-extension-now-available-magento-developers/","summary":"We are pleased to announce the release of the extension that allows Magento developers to seamlessly integrate GroupDocs.Viewer for .NET into their websites. The extension has been approved by the Magento admins and is now available for download from the official Magento marketplace. With this extension installed, developers can embed and display 50+ types of documents and images on any page within their Magento websites. Supported document formats include PDF, Microsoft Word.","title":"GroupDocs.Viewer for .NET Extension Is Now Available for Magento Developers"},{"content":"\rHi, everyone! We\u0026rsquo;ve recently released a new version of the Java document viewer - GroupDocs.Viewer for Java version 2.3 - and would like to discover its new features and enhancements in this article. GroupDocs.Viewer for Java is an HTML5-based document viewer library designed to make it easy for developers to integrate into their Java apps. The viewer supports more than 50 document and image types, including PDF, Microsoft Word, Excel, PowerPoint, AutoCAD, Visio, etc. Implemented within HTML5 standards, the viewer allows documents to be viewed from any web-enabled device using only a web‑browser. Let\u0026rsquo;s now look at the enhancements seen in the latest version of the library (version 2.3):\nApplication Path Flexibility The application path allows the viewer to link and handle client-server requests correctly. Starting from version 2.2, it is possible to use a relative paths. You can now also choose between three different types of the applicationPath parameter value:\nAbsolute path, like: http://127.0.0.1:8080 Custom URL prefix, like: custom-url Prefix (custom-url) is added to the full application path, including context path ‑ http://127.0.0.1:8080/custom-url null value In this case the viewer uses the default application request URI (for example, http://127.0.0.1:8080/) Added UI Configuration Parameters PDF Printing Thanks to the new usePdfPrinting parameter, you can now print documents directly to PDF. Just set the parameter value to true. In this case, when clicking the Print button, a user gets the document printed out in the PDF format.\nPage Reordering When the supportPageReordering parameter is set to true, users can change a documents page order by dragging page thumbnails in the left side panel. Please note that this option does not change the original document itself. It is intended to help users conveniently browse and collaborate on documents in the web UI. Also, the page reordering feature currently works in the image-based rendering mode only. Set the useHtmlBasedEngine parameter to false in order to enable the feature.\nWatermarking Protecting documents with watermarks in now also easier. There are two parameters available:\nwatermarkText - specifies text for the watermark watermarkColor - specifies color of the watermark (6 hex digits, i.e. fb3000) Watermarks are added in a separate layer over the rendered documents, so that the original files are not modified. If you want to keep your documents safe, please be sure to disable both the Download and Printing options as well. Also, please note that watermarks can be added in the image-based rendering mode only.\nCustom Localization Another great feature added in the latest versions of the Java document viewer - support of custom localizations. In the earlier versions you would have to tweak the viewer\u0026rsquo;s front-end with your own localization (as described here). Starting from now, you can simply add a localization file. For example, assume we need Portuguese localization. First, we have to create a file called pt-PT.properties and fill it with translated terms:\nBookMode=Vista Revista FileName=Nome do Arquivo FitHeight=Ajustar a Altura FitWidth=Ajustar a Largura LoadingYourContent=Carregando conteudo... Modified=Modificado Of=de OpenFile=Abrir Arquivo ParentFolder=Pasta principal ScrollView=Scroll Vertical Search=Pesquisa Size=Tamanho Thumbs=Miniaturas The localization file name has to be in the following format: .properties to be recognized with the viewer. Once the file is ready, place it somewhere in the system (G:\\Projects\\GroupDocs\\app\\locale) and set the path as the localesPath parameter value:\nG:\\\\Projects\\\\GroupDocs\\\\app\\\\xFiles Please note. This value has to be strictly directory path only. Do not append the locale file name to the path, since GroupDocs.Viewer automatically picks up an appropriate localization for your system. So you can place several localization files in that directory.\nOther Improvements Added support for XPS file format Implemented P8 FileNet support Added sub-folders navigation. Now you can browse and open any sub-folder content. For a complete list of changes, please check the release notes in the GroupDocs file archive. The library itself can be downloaded from there. For more information on the viewer and its features, please visit GroupDocs.Viewer for Java home page. To help you install and get started with the viewer quickly we also provide example code projects and detailed documentation with technical articles and guides.\n","permalink":"https://blog.groupdocs.com/viewer/get-more-flexibility-with-the-new-features-in-groupdocs-viewer-for-java-library-2-3/","summary":"Hi, everyone! We\u0026rsquo;ve recently released a new version of the Java document viewer - GroupDocs.Viewer for Java version 2.3 - and would like to discover its new features and enhancements in this article. GroupDocs.Viewer for Java is an HTML5-based document viewer library designed to make it easy for developers to integrate into their Java apps. The viewer supports more than 50 document and image types, including PDF, Microsoft Word, Excel, PowerPoint, AutoCAD, Visio, etc.","title":"Get More Flexibility with the New and Improved Features in the GroupDocs.Viewer for Java Library 2.3"},{"content":"\rGroupDocs.Conversion for .NET is one of emerging products in the GroupDocs product family. GroupDocs.Conversion allows users to convert documents to and from over 50 different formats, including Word (DOC, DOCX) to PDF, PDF to image (TIFF, JPG), HTML to PDF, Word to HTML and many more. Unlike most of the software on the market, GroupDocs.Conversion is a .NET middleware designed specifically for easy integration into other applications. Thanks to its flexible API, GroupDocs.Conversion can be used in any .NET application: desktop-based (like console apps, WinForms, WPF and Windows services) and web-based (ASP.NET, including WebForms and MVC). In one of our earlier articles we discovered some of the key features and benefits of this library. In particular, GroupDocs.Conversion allows fast on-the-fly conversion and provides a number of interesting features designed especially for ASP.NET. For example, progress callbacks let the calling webpage know when a conversion has been completed. In this introduction article I\u0026rsquo;d like to show you basic and advanced usage of the GroupDocs.Conversion for .NET library in several types of applications. Go to the article \u0026raquo;\u0026gt;\n","permalink":"https://blog.groupdocs.com/conversion/convert-back-and-forth-between-50-document-formats-in-vb-net-c-sharp-word-to-pdf-to-image-html-to-pdf/","summary":"GroupDocs.Conversion for .NET is one of emerging products in the GroupDocs product family. GroupDocs.Conversion allows users to convert documents to and from over 50 different formats, including Word (DOC, DOCX) to PDF, PDF to image (TIFF, JPG), HTML to PDF, Word to HTML and many more. Unlike most of the software on the market, GroupDocs.Conversion is a .NET middleware designed specifically for easy integration into other applications. Thanks to its flexible API, GroupDocs.","title":"Convert Back and Forth Between 50+ Document Formats in VB.NET \u0026 C#: Word to PDF, PDF to Image, HTML to PDF and More"},{"content":"\rWe\u0026rsquo;re glad to announce the release of the GroupDocs.Viewer for Java extension for Joomla!. Developers who work with the Java version of our HTML5 document viewer can now seamlessly integrate it into Joomla! websites. The extension has been approved by the Joomla! marketplace team and is available for download from the official Joomla! marketplace. With the GroupDocs.Viewer integrated into Joomla!, you can easily embed and display all documents supported by the viewer on your Joomla! web-pages. These include: PDF and Word documents, Excel spreadsheets, PowerPoint presentations, Visio diagrams, CAD files, raster images and a lot more - over 50 file formats in total. Documents can be embedded to a web-page along with the GroupDocs.Viewer\u0026rsquo;s UI, which allows users to conveniently navigate large documents right on a web-page. The extension is free for developers who have a GroupDocs.Viewer for Java license. If you don\u0026rsquo;t have a license yet, but would like to test the Java version of the GroupDocs.Viewer on your Joomla! website, please download a free evaluation copy of the library from this page. For more details on the extension, please visit the Joomla! marketplace.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-java-can-now-be-seamlessly-integrated-into-your-joomla-website/","summary":"We\u0026rsquo;re glad to announce the release of the GroupDocs.Viewer for Java extension for Joomla!. Developers who work with the Java version of our HTML5 document viewer can now seamlessly integrate it into Joomla! websites. The extension has been approved by the Joomla! marketplace team and is available for download from the official Joomla! marketplace. With the GroupDocs.Viewer integrated into Joomla!, you can easily embed and display all documents supported by the viewer on your Joomla!","title":"GroupDocs.Viewer for Java can now be seamlessly integrated into Your Joomla! Website"},{"content":"\rWe\u0026rsquo;re pleased to announce the release of the PimCore extension for the .NET version of our HTML5 document viewer. PimCore developers can now seamlessly integrate the viewer\u0026rsquo;s functionality into their projects. Once installed, you will be able to embed and display almost 50 types of documents, including PDF and Microsoft Office, in your website or web app. This extension compliments the cloud-based one, which we\u0026rsquo;ve released earlier. So, from now you can choose between two deployment options: a cloud on-demand service or the downloadable .NET library. The first one is easier to deploy, but requires documents to be hosted on the GroupDocs servers. If you don\u0026rsquo;t want to expose your content to the Internet and would like to host your documents on-premises, please consider the downloadable .NET version. For more details on the HTML5 document viewer and deployment options, please see this page. Users who have purchased a license for the GroupDocs.Viewer for .NET library can use the new extension for free. In case you don\u0026rsquo;t have a license, but would like to test the viewer on your PimCore project, please feel free to contact sales for a free 30-day trial. For more information on the .NET extension, please visit the null.\n","permalink":"https://blog.groupdocs.com/viewer/pimcore-extension-for-the-groupdocs-viewer-for-net-library-is-now-available-for-download/","summary":"We\u0026rsquo;re pleased to announce the release of the PimCore extension for the .NET version of our HTML5 document viewer. PimCore developers can now seamlessly integrate the viewer\u0026rsquo;s functionality into their projects. Once installed, you will be able to embed and display almost 50 types of documents, including PDF and Microsoft Office, in your website or web app. This extension compliments the cloud-based one, which we\u0026rsquo;ve released earlier. So, from now you can choose between two deployment options: a cloud on-demand service or the downloadable .","title":"PimCore Extension for Easy Integration of the GroupDocs.Viewer for .NET Library Is Now Available for Download"},{"content":"\rThe GroupDocs.Viewer for Java library is a high-fidelity document viewer, built within HTML5 standards. It allows end-users to view over 45 types of documents on the web without the need to install any third-party software. Here at GroupDocs we always look for new ways to enhance our products with advanced security options. The GroupDocs.Viewer for Java library can be deployed on-premises and allows you to host documents on your private storage. This ensures you have complete control over documents security on the server side. But how to protect your content from unauthorized use when documents are exposed to users? GroupDocs.Viewer for Java allows you to easily restrict or disable the document printing, downloading and copying options. And in the recently released version 2.2, we\u0026rsquo;ve added yet another security layer which allows you to prevent browser cashing of viewed documents (that is, temporary storage of rendered pages). This option can be enabled with the help of a new parameter called useBrowserCache. In the following article I\u0026rsquo;d like to provide you with several useful tips about advanced caching strategies you can implement using this parameter, or without it, in case you use an earlier version of the library. Go to the article \u0026raquo;\u0026gt;\n","permalink":"https://blog.groupdocs.com/viewer/add-security-through-custom-caching-in-groupdocs-viewer-for-java-library/","summary":"The GroupDocs.Viewer for Java library is a high-fidelity document viewer, built within HTML5 standards. It allows end-users to view over 45 types of documents on the web without the need to install any third-party software. Here at GroupDocs we always look for new ways to enhance our products with advanced security options. The GroupDocs.Viewer for Java library can be deployed on-premises and allows you to host documents on your private storage.","title":"Add Security through Custom Caching in the GroupDocs.Viewer for Java Library Version 2.2"},{"content":"\rGreetings! We have good news for Joomla! developers. Recently we\u0026rsquo;ve released an extension which helps you to easily integrate the .NET version of the GroupDocs HTML5 document viewer into Joomla! websites. And now we are glad to announce that the extension is published and available for download from the official Joomla! marketplace. Unlike the cloud-based extension released earlier, this one integrates the downloadable .NET version of the GroupDocs.Viewer. It allows you to store and host documents on your (or your clients\u0026rsquo;) servers. There is no need to transfer documents to GroupDocs servers as in the cloud-based version. So, you have complete control over documents security. The new extension can be used by registered users of the GroupDocs.Viewer for .NET library for free. If you don\u0026rsquo;t have a license for the library and would like to test the extension on your Joomla! website, please feel free to contact our sales for a 30-day trial. For more details on the extension, please visit Joomla! marketplace.\n","permalink":"https://blog.groupdocs.com/viewer/net-version-of-the-groupdocs-html5-document-viewer-can-now-be-integrated-into-joomla/","summary":"Greetings! We have good news for Joomla! developers. Recently we\u0026rsquo;ve released an extension which helps you to easily integrate the .NET version of the GroupDocs HTML5 document viewer into Joomla! websites. And now we are glad to announce that the extension is published and available for download from the official Joomla! marketplace. Unlike the cloud-based extension released earlier, this one integrates the downloadable .NET version of the GroupDocs.Viewer. It allows you to store and host documents on your (or your clients\u0026rsquo;) servers.","title":"The .NET Version of the GroupDocs HTML5 Document Viewer Can Now Be Seamlessly Integrated into Joomla! CMS"},{"content":"\rRecently, we posted a guide describing how to integrate the GroupDocs.Viewer for .NET library into a PHP app. This time I\u0026rsquo;d like show you how to do the same thing with the Java version of the viewer. GroupDocs.Viewer is the foundation of most of the other GroupDocs applications. It is a high-fidelity HTML5 document viewer that allows you to display almost 50 types of documents within your own app or website. The viewer doesn\u0026rsquo;t require any client-side installation, allows users to view documents from any HTML5-compliant browser and comes with a convenient UI for navigating multi-page documents. If you are developing a PHP app and want to enhance its functionality with a universal document viewer that delivers a great user experience, this article is for you. It gives you a basic sample aimed to show how to integrate the Java version of the GroupDocs.Viewer into a PHP app. Go to the tutorial \u0026raquo;\u0026gt;\n","permalink":"https://blog.groupdocs.com/viewer/integrating-groupdocs-viewer-for-java-into-php-application/","summary":"Recently, we posted a guide describing how to integrate the GroupDocs.Viewer for .NET library into a PHP app. This time I\u0026rsquo;d like show you how to do the same thing with the Java version of the viewer. GroupDocs.Viewer is the foundation of most of the other GroupDocs applications. It is a high-fidelity HTML5 document viewer that allows you to display almost 50 types of documents within your own app or website.","title":"Integrating GroupDocs.Viewer for Java into a PHP Application"},{"content":"\rWe are pleased to announce the release of the extension which allows Magento web-developers to seamlessly integrate the Java version of the GroupDocs HTML5 document viewer into their websites. Once deployed, you will be able to embed and display over 45 types of documents on any page within your Magento website. The viewer doesn\u0026rsquo;t require any 3rd party plugin installation on the client-side and allows end-users to view documents from any HTML5-compliant web-browser. The extension is free for all GroupDocs.Viewer for Java users. If you don\u0026rsquo;t have a license for the library yet, but would like to test the document viewer on your Magento website, please contact sales for a free 30-day trial. For more details on the GroupDoc.Viewer for Java extension, please visit Magento Marketplace.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-for-java-extension-is-now-available-for-magento-users/","summary":"We are pleased to announce the release of the extension which allows Magento web-developers to seamlessly integrate the Java version of the GroupDocs HTML5 document viewer into their websites. Once deployed, you will be able to embed and display over 45 types of documents on any page within your Magento website. The viewer doesn\u0026rsquo;t require any 3rd party plugin installation on the client-side and allows end-users to view documents from any HTML5-compliant web-browser.","title":"GroupDocs.Viewer for Java Extension Is Now Available for Magento Users"},{"content":"\rLast week, we released an update to the GroupDocs.Viewer library for the .NET platform. Now it is time to share what version 2.0 of GroupDocs.Viewer has to offer to the Java world. You can find a full list of new features, improvements and fixes on the GroupDocs.Viewer download page. The most notable improvements, I\u0026rsquo;m going to discover in this article.\nNative HTML5-Based Document Rendering The brightest gem presented in this version is the HTML-based rendering mode - an addition to the image-based one that was the only choice in previous versions of the document viewer. Under the new mode, all text is placed on the page using pure HTML and CSS, while graphics are drawn using SVG format. This feature makes pages more \u0026ldquo;lightweight\u0026rdquo; and allows end-users to search for text within the document using the native browser search functionality. Please note: by default, the rendering mode is image-based, so you have to switch it explicitly. This can be done via the useHtmlBasedEngine parameter in the JavaScript plugin - just specify true to enable HTML mode. Also, when you turn on the HTML-based mode, make sure to set the com.groupdocs.viewer.config.ServiceConfiguration constructor\u0026rsquo;s useCache argument to true.\nEnhanced Thumbnails Panel Usability GroupDocs.Viewer for Java 2.0 has a new layout option for the thumbnails panel. The panel can now either slide over the document pages, or you can place it on the same level as the pages, so that it doesn\u0026rsquo;t overlap the document\u0026rsquo;s content. The layout options can be switched with the useInnerThumbnails Boolean parameter, where the true value places thumbnails to the left side of the viewport.\nImproved Text Search Engine Previous versions of the viewer could only search on exact phrases. That is also the default in the new version. A newly added option allows users to search for every separate word entered to the search form. To activate this, just specify true for the _searchForSeparateWords _parameter.\nEnhancements for the Upload API Token ID - a New Unique and Secure File Identifier This is a Java-specific feature of the new version of the document viewer. Before this update, the upload API was quite primitive - it only provided an ID of the uploaded file on the output side. The identification functionality was encapsulated into the TokenId class. Now, the _ViewerHandler _method:\npublic Object uploadFile(InputStream inputStream, String fileName, Integer timeToLive) returns the file token ID, which, as before, can be used to view the uploaded file. But with its new ID, the viewing process got few important improvements:\nUploaded File Time Usage Restriction The first improvement is the ability to restrict access to uploaded files using the TokenId time limit. Each uploaded file\u0026rsquo;s ID now has the _timeToLive _parameter, which can be checked with the\npublic boolean isExpired() method of the _TokenId _class. For example, before displaying a document, you can check:\nTokenId tki = new TokenId(tokenId); if(tki.isExpired()) { // access denied } Token ID Renewal API The redundancy of file upload and space usage issue was resolved with the token ID renewal API. Now, the old token can be refreshed using the\npublic Object renewTokenId(String tokenId) method of the _ViewerHandler _class.\nOther Improvements In addition to the above, the new version of the Java document viewer library features the following:\nFaster page rendering on first load - due to additional cache. Lower memory usage - due to tuned-up algorithms. Improved integration - the API is now better structured. For a complete list of new features, improvements and bug fixes, as well as to download the new version of the GroupDocs.Viewer for Java library, please visit this page. Also, here are a couple of samples that might help you discover all the new features faster:\nJava Dropwizard Framework Sample Java Spring Framework Sample ","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-2-0-new-features-in-the-java-version-of-the-document-viewer/","summary":"Last week, we released an update to the GroupDocs.Viewer library for the .NET platform. Now it is time to share what version 2.0 of GroupDocs.Viewer has to offer to the Java world. You can find a full list of new features, improvements and fixes on the GroupDocs.Viewer download page. The most notable improvements, I\u0026rsquo;m going to discover in this article.\nNative HTML5-Based Document Rendering The brightest gem presented in this version is the HTML-based rendering mode - an addition to the image-based one that was the only choice in previous versions of the document viewer.","title":"GroupDocs.Viewer 2.0 - New Features \u0026 Improvements to the Java Version of the Document Viewer"},{"content":"Greetings!\rThis is Part B of my post looking at the new features and enhancements to the GroupDocs document viewer for .NET version 2.0. For those of you who missed my previous post, please find it here. This time I\u0026rsquo;m going to continue describing the core updates that the library has seen in the second major release. So, here we go:\nEnhanced Text Search Options GroupDocs.Viewer 2.0 includes a lot of helpful text search improvements. And importantly, all the features described below are compatible with both the image-based and HTML-based rendering modes.\nAdjusting the Color of Search Hits When you search a word or a phrase in a document using GroupDocs.Viewer’s search toolbar, the matched text is highlighted with two colors. The first color, CurrentSearchColor, is applied to the first matched result. The second color, OtherSearchColor, is applied to all other matched results located after the first one. By default, CurrentSearchColor is light green, and OtherSearchColor is dark green. In GroupDocs.Viewer 2.0 you can specify these colors yourself. In order to do this, invoke the SearchHighlightColor method, which contains two string parameters - the first one is mandatory and specifies OtherSearchColor, while the second one is optional and specifies CurrentSearchColor. If you omit the second parameter, then the default light green color is used for both of the parameters. For example:\n…ViewerClientCode(). ….SearchHighlightColor(\u0026#34;blue\u0026#34;) //only OtherSearchColor is specified …ViewerClientCode(). … .SearchHighlightColor(\u0026#34;blue\u0026#34;, \u0026#34;red\u0026#34;)//both OtherSearchColor and CurrentSearchColor are specified Search for Any of Several Words What happens when you insert several words (two, for example) into the search field and hit Enter? There are two ways to deal with this. On the one hand, it can be treated as if you want to find an exact phrase. On the other hand, it can be treated as if you want to find both an exact combination AND all distinct words located separately. GroupDocs.Viewer 2.0 supports both of these approaches. By default, when you enter several words, GroupDocs.Viewer tries to find only the exact combination of these words - that is how previous versions of GroupDocs.Viewer worked. Now, if you want to switch to the second scenario, just use the new SearchForSeparateWords method, which takes two parameters and sets the value of its first parameter, searchForSeparateWords, to true. In this case, when several words are entered, GroupDocs.Viewer will find and highlight all of them, whether they are combined or separate. This might make you ask: what if the SearchForSeparateWords mode is enabled and you want to search only for the exact phrase, without having to change the source code back on the server-side? Continue reading…\nTreat Phrases in Double Quotes as Exact Phrases when Searching for Separate Words Let’s take a look at the SearchForSeparateWords method more closely:\npublic ClientHelper SearchForSeparateWords(bool searchForSeparateWords = true, bool treatPhrasesInDoubleQuotesAsExactPhrases = false) This method has two parameters, the second of which allows you to find and highlight only exact phrases even if the SearchForSeparateWords mode is enabled. To do this just call this method with both parameters set to true:\n…ViewerClientCode(). …..SearchForSeparateWords(true, true) By default, the second parameter is set to false, so you need to change it to true explicitly. When you do this, you can find exact phrases by wrapping words in double quotes. For example, if you enter word1 word2 into the search field, GroupDocs.Viewer finds and highlights all word1, all word2 and all combinations of the two. But if you enter \u0026ldquo;word1 word2\u0026rdquo; (in double quotes), GroupDocs.Viewer finds and highlights only this exact phrase (if any in the document).\nRearranging PagesPage Reordering is a brand new feature that was added in version 2.0 of the GroupDocs document viewer. This feature allows you to change the page order of the displayed document client-side, from a web-browser. This can be done in the GroupDocs.Viewer interface via the thumbnails panel, where page previews are displayed. A user just needs to drag the thumbnail of a page he wants to move and drop it to a new location. Pages in the document will be reordered accordingly. Also, GroupDocs.Viewer fixes the new order of the pages, so that next time the user loads the document, he/she will see the rearranged document. Page reordering doesn’t impact the original document on the server, but the user can download the rearranged version of the original document to the client-side. The only way to download it is to enable an option for downloading a PDF instead of the original file (please see how to configure conversion to PDF on download in my previous post). By default document rearranging feature is disabled. To turn it on, you should invoke the SupportPageReordering method:\n…ViewerClientCode(). ….SupportPageReordering(true) Also, please note that page reordering is supported only with the image-based rendering mode.\nCentering Pages GroupDocs.Viewer allows you to increase and decrease a document\u0026rsquo;s zoom level using the toolbar buttons Zoom In, Zoom Out and Zoom Level. In previous versions of the GroupDocs.Viewer for .NET library, and by default in version 2.0, when you decrease a zooming level and pages become small, they rearrange in such a way that they are located one next to the other, like tiles. For example, when a 50% zoom out level is reached, two pages are shown side by side, horizontally. GroupDocs.Viewer 2.0 has a new mode, designed to prevent this type of tile-like rearrangement. With this mode pages are always placed in one row, regardless of the zoom factor. In order to enable this mode, pass the true parameter to the ShowOnePageInRow method:\n…ViewerClientCode(). ….ShowOnePageInRow(true) Localization GroupDocs.Viewer 2.0 includes localizations for four languages for interface elements like text labels and tooltips, including: “en-US” (American English, the default), “es-ES” (Spanish), “pt-PT” (Portuguese) and \u0026ldquo;nb-NO\u0026rdquo; (Norwegian). To set up the needed locale, use the ClientHelper class\u0026rsquo; Locale method. It has two overloads:\npublic ClientHelper Locale(string locale); public ClientHelper Locale(SupportedLocales locale); These overloads are equivalent: you can use either of them. If you use several Locale methods in one Viewer control, the last one is applied. For example:\n…ViewerClientCode(). ….Locale(SupportedLocales.ptPT).Locale(\u0026#34;en-US\u0026#34;) In this line of code we invoke both overloads: in the first line we apply the Portuguese locale, and in second, English. The last locale will be applied, so after compilation and execution, end-users will see the English locale.\nOther Features and Improvements The DocViewerId method was removed from the ClientHelper class - there is no need for it anymore. The Groupdocs.Web.UI.Viewer class now has two new methods: EnableDownloadRequestHandling and EnablePrintRequestHandling. All of these have one Boolean parameter. They are like enabling and disabling downloading and printing (this was described earlier), but, in contrast to showing or hiding buttons in the GroupDocs.Viewer UI, these methods are more global - they allow developers to enable or disable downloading and printing across a website, all pages and instances of the GroupDocs.Viewer web-control. These options are more powerful than those that the web-control has. For example, if downloading is enabled in GroupDocs.Viewer\u0026rsquo;s web-control but disabled in the Viewer class, then users will not be able to download anything at all. 3. PDF to HTML conversion performance has been improved significantly thanks to using a newer version of Knockout.js (ver.3.0.0), which reduces the size of the sprites.png file. 4. Plenty of other minor features have been added to GroupDocs.Viewer 2.0. You can find a complete list of improvements, as well as download the new version of the viewer on this page. For more details on the GroupDocs.Viewer for .NET library itself, please see the product\u0026rsquo;s homepage. ","permalink":"https://blog.groupdocs.com/viewer/new-features-and-improvements-in-the-document-viewer-for-net-library-part-b/","summary":"Greetings!\rThis is Part B of my post looking at the new features and enhancements to the GroupDocs document viewer for .NET version 2.0. For those of you who missed my previous post, please find it here. This time I\u0026rsquo;m going to continue describing the core updates that the library has seen in the second major release. So, here we go:\nEnhanced Text Search Options GroupDocs.Viewer 2.0 includes a lot of helpful text search improvements.","title":"GroupDocs.Viewer 2.0 - New Features and Improvements in the Document Viewer for .NET Library (Part B)"},{"content":"Greetings!\rWe\u0026rsquo;re pleased to announce a major update of the GroupDocs.Viewer for .NET library: version 2.0. This version of the document viewer has a lot of new features, improvements and bug fixes. You\u0026rsquo;ll find a complete list of updates and the new library itself here. In this and the next article, I\u0026rsquo;d like to take a closer look at the updates that I think you\u0026rsquo;ll be the most interested. So here we go:\nDesktop .NET Document Viewer Without a doubt, the main new feature is support for non-web-based applications. GroupDocs.Viewer for .NET can now be used in desktop-based WinForms apps that have no relation to ASP.NET and internet. You can create a standalone EXE application, which will be able to display almost all popular document types without requiring any third-party plugins or middleware. We\u0026rsquo;ve prepared a couple of short guides that show how to integrate GroupDocs.Viewer into a desktop application:\nHow to Use the GroupDocs.Viewer WinForms Control Description of the GroupDocs.Viewer WinForms Control Methods HTML-Based Rendering Mode GroupDocs.Viewer v.2.0 includes a new HTML-based rendering mode, opposite to the default image-based one. The mode is focused on the textual information of the document: all texts from an original document are extracted and then rendered in a browser as real text, not images, while document background is rendered using SVG vector images. This is completely different from the image-based rendering mode, where documents are rendered to a set of images and parsed text is placed over the images. The feature might be very useful, since when the HTML-based mode is enabled, all text parsed from a document is placed on a web-page directly, so you can perform browser-based search for text within the document. Please note, that the image-based mode is enabled by default. In order to switch to the HTML-based one, please set the .UseHtmlBasedEngine(true) method\u0026rsquo;s parameter value to true.\nSwitching Between PNG and SVG Images When using the HTML-based rendering mode, GroupDocs.Viewer converts the original document to a combination of HTML markup and SVG images. However, since Internet Explorer 8 and other older browsers don\u0026rsquo;t support SVG, we\u0026rsquo;ve supplied the viewer with an additional mode that converts background images to PNG format instead of SVG. Image conversion can be used in conjunction with the HTML-based rendering described earlier. To use PNG images for backgrounds, you just need to invoke the UseHtmlBasedEngine method and set the value of the second optional parameter - usePngImagesForHtmlBasedEngine - to true:\n…ViewerClientCode(). … .UseHtmlBasedEngine(true, true) Watermarks You can now add text watermarks to any document. For this, use the Watermark method when invoking GroupDocs.Viewer on a web-page (an ASPX page in case of WebForms, or view in case of MVC). This method has two parameters: the first is mandatory and takes the string of text that should be placed on a document. The second is optional and takes the text color. If you omit the second parameter, text is displayed in red. Here is an example:\n…ViewerClientCode(). … .Watermark(\u0026#34;text for watermark\u0026#34;, Color.Aqua) A few notes regarding the feature that can save you time: 1. When added, a text watermark will be presented on every page of the document. You cannot specify which pages should contain the watermark. You also can\u0026rsquo;t place different watermarks on different pages in the same document. 2. Watermarks are only added to web-pages on the client-side. The original documents on the server are not modified. When a user downloads a watermarked document, they receive the original version of the document without any watermarks. 3. Watermarks can\u0026rsquo;t be added to a document when using the HTML-based rendering mode.\nEnabling/Disabling Document Downloading and Printing When a document is displayed in a browser, users can download and print the original file using buttons on the GroupDocs.Viewer’s toolbar. In previous versions of the viewer, you had to replace the default HTTP-handlers with your own to restrict (disable) the printing and downloading options. Such a scenario is described in the following article: How to Replace HTTP Handlers to Set up User Permissions in the GroupDocs.Viewer for .NET Library. With the release of version 2.0, you can do the same thing with a single line of code. In particular, the ClientHelper class (available via the ViewerClientCode method) now has two new methods: ShowDownload and ShowPrint. Each of these has one Boolean optional parameter. When the parameter value is set to true (the default value), users see the Download and Print buttons and can download or print the original file. When set to false, the Download and Print buttons are hidden and users can\u0026rsquo;t download or print the original document. Of course, you can also enable only one of the options, while keeping the other disabled. For example, the following code:\n…ViewerClientCode(). … .ShowDownload(true).ShowPrint(false) allows users to download a document, while restricting printing. Only the Download button will be displayed in the toolbar.\nDownloading Documents in PDF Format In addition to the standard download option, which allows users to download a document in the original file format, GroupDocs.Viewer for .NET version 2.0 can convert displayed documents to PDF, so that each time users try to download a document, they get a PDF copy of the original file. This feature is powered by our universal document conversion library: GroupDocs.Conversion for .NET. You can find a complete list of document formats that can be converted to PDF on this page. In order to activate the feature, just invoke the DownloadPdfFileIfPossible method with the downloadPdfFile parameter\u0026rsquo;s value set to true:\n…ViewerClientCode(). … .DownloadPdfFileIfPossible(true) New Layout for Page Thumbnails In earlier versions of our .NET document viewer, page thumbnails could only be displayed in the document area. (When clicking on the Thumbs button, a thumbnail panel slides over the document. As a result, a part of the document is hidden under the panel.) If this is an issue for your customers, GroupDocs.Viewer version 2.0 allows you to move thumbnails to the left side of the viewport. To do this, invoke the UseInnerThumbnails method and set the value of the use parameter to true:\n…ViewerClientCode(). ….UseInnerThumbnails(true) Extended Stream Support I\u0026rsquo;ve already written a detailed article showing how to load documents from streams with the GroupDocs.Viewer for .NET library. And since we\u0026rsquo;ve received a lot of positive feedback and suggestions on this feature, we decided to expand it in version 2.0 as follows:\nExtended Signature of the Stream Method The ClientHelper class\u0026rsquo; Stream method now has one mandatory and 3 optional parameters. Its signature is as follows:\npublic ClientHelper Stream(Stream stream, string fileName = null, string fileExtension = null, string fileDisplayName = null) As you can see, only the stream object itself is mandatory, all other parameters have the value null by default. Here are their descriptions:\nfileName - specifies the name of the file that will be created by the GroupDocs.Viewer and stored in the RootStoragePath folder. The stream content will be written to this file. fileExtension - specifies the file extension of the document in this stream. If an extension is provided, GroupDocs.Viewer will use it. If it isn\u0026rsquo;t, GroupDocs.Viewer uses its own document type recognition mechanism. fileDisplayName - specifies a file name which will be displayed when a user hits the Download or Print button. Important notice: the signature of the new Stream method is not compatible with its predecessor in the GroupDocs.Viewer version 1.x.\nSupport for Multiple Streams One more improvement - the Streams method with the next signature:\npublic ClientHelper Streams(IEnumerable streams) As you can see, it receives a set of streams. But before proceeding, let’s look at the StreamDefinition class from the metadata:\npublic class StreamDefinition { public StreamDefinition(); public string FilenameExtension { get; set; } public Stream Stream { get; set; } } It is a simple container class for the document that is presented as a stream. It has only two fields: the stream itself and a filename extension. Please note that this class does not implement the IDisposable interface so you should take care of stream disposal yourself. Let’s get back to the Streams method. Now you see that it simply obtains a set of streams, and, what is very important when using multiple streams, it will display all of them! In fact, the Streams method makes it possible to display more than one document within the GroupDocs.Viewer UI. Let me show you how:\nViewerClientCode() .TargetElementSelector(\u0026#34;#test\u0026#34;) … .Streams ( new List(2) { new StreamDefinition() { FilenameExtension = \u0026#34;pdf\u0026#34;, Stream = new FileStream(@\u0026#34;\\\\doc1.pdf\u0026#34;, FileMode.Open, FileAccess.Read, FileShare.Read) }, new StreamDefinition() { FilenameExtension = \u0026#34;docx\u0026#34;, Stream = new FileStream(@\u0026#34;\\\\doc2.docx\u0026#34;, FileMode.Open, FileAccess.Read, FileShare.Read) } } ) In this example we have two documents, two streams and two StreamDefinition instances. When executing this code, both of the documents are displayed sequentially, one after another! This is it for this article, but not for the new release. I\u0026rsquo;ll publish another post describing the rest of the new functionality and improvements (also very promising) in a few days. Stay in touch!\n","permalink":"https://blog.groupdocs.com/viewer/enhancements-and-new-features-in-the-document-viewer-for-net-library-part-a/","summary":"Greetings!\rWe\u0026rsquo;re pleased to announce a major update of the GroupDocs.Viewer for .NET library: version 2.0. This version of the document viewer has a lot of new features, improvements and bug fixes. You\u0026rsquo;ll find a complete list of updates and the new library itself here. In this and the next article, I\u0026rsquo;d like to take a closer look at the updates that I think you\u0026rsquo;ll be the most interested. So here we go:","title":"GroupDocs.Viewer 2.0 - Enhancements and New Features in the Document Viewer for .NET Library (Part A)"},{"content":"\rHi everyone! Continuing the series of articles related to GroupDocs.Annotation, this time I\u0026rsquo;d like to show you how to customize the look and feel of the GroupDocs.Annotation for Java UI. GroupDocs.Annotation for Java is a flexible library that allows end-users to annotate, mark up and comment on documents of more than 50 common formats from within you own app. For more information on the library, please see this page. The article provides detailed instructions that will help you make a custom user interface based on the GroupDocs.Annotation for Java library and seamlessly integrate it into your own app. It mainly covers customization of the navigation controls and collaboration events handling. Also, a sample code project is provided for better understanding of how the interface can be tweaked. Go to the tutorial \u0026raquo;\u0026gt;\n","permalink":"https://blog.groupdocs.com/annotation/customizing-groupdocs-annotation-for-java-ui-to-match-your-needs/","summary":"Hi everyone! Continuing the series of articles related to GroupDocs.Annotation, this time I\u0026rsquo;d like to show you how to customize the look and feel of the GroupDocs.Annotation for Java UI. GroupDocs.Annotation for Java is a flexible library that allows end-users to annotate, mark up and comment on documents of more than 50 common formats from within you own app. For more information on the library, please see this page. The article provides detailed instructions that will help you make a custom user interface based on the GroupDocs.","title":"Customizing GroupDocs.Annotation for Java UI to Match Your Needs"},{"content":"\rGreetings to everyone! And special greetings to the PHP community, since this time we are going to bring GroupDocs.Annotation for Java to your world. The GroupDocs.Annotation for Java library is a rich online collaboration tool for reviewing and annotating documents on the web. With high fidelity document rendering, it provides end-users with a comprehensive set of commenting and markup tools. Designed to work in the web and implemented in the HTML5-compliant borders, GroupDocs.Annotation for Java library supports over 50 file formats, including PDF, Microsoft Word, Excel and PowerPoint documents, as well as TIFF, PNG, JPG and other image formats. Earlier it was kind of unclear for developers working on platforms other than .NET and Java, in particular for those who work in a PHP environment, how to integrate the GroupDocs.Annotation for Java library into their application. We all know that using iframes is not the best solution out there. So, in this article we\u0026rsquo;d like to share a detailed guide of how to integrate the GroupDocs.Annotation for Java into a PHP application without having to use iframes. Go to the tutorial \u0026raquo;\u0026gt;\n","permalink":"https://blog.groupdocs.com/annotation/bring-groupdocs-annotation-for-java-into-php-application/","summary":"Greetings to everyone! And special greetings to the PHP community, since this time we are going to bring GroupDocs.Annotation for Java to your world. The GroupDocs.Annotation for Java library is a rich online collaboration tool for reviewing and annotating documents on the web. With high fidelity document rendering, it provides end-users with a comprehensive set of commenting and markup tools. Designed to work in the web and implemented in the HTML5-compliant borders, GroupDocs.","title":"Bring GroupDocs.Annotation for Java Functionality into Your PHP Application"},{"content":"\rWe are pleased to announce the release of the new library that enhances a set of our document collaboration tools - GroupDocs.Assembly for .NET. The library generates PDF and Word documents from templates by automatically filling out merge fields with custom data. If your company or a client have to create tens or hundreds of documents by filling out standard templates with data obtained through user input or from a DB, this library can be of great help. Just to mention a few examples, it can be used to generate legal documents, insurance policies, invoices, bills, NDAs, order quotes, offer letters, and any other types of documents. The library can be installed with just a single DLL and allows you to easily embed document generation functionality into your ASP.NET / C# application. The server part of the library is deployed in conjunction with a web UI, which allows end users to prepare templates and get completed documents without any help from developers. The workflow is simple: 1. Users create templates in a Word or PDF format by adding merge fields to documents. Templates can be prepared in any office software that supports PDF or DOC/DOCX file editing. 2. GroupDocs.Assembly\u0026rsquo;s wizards guide users through composing questionnaires (interviews) where each question is associated with a merge field in the templates. The questionnaires can be then embed into a web page or an application. 3. For each completed questionnaire, GroupDocs.Assembly generates a new, unique document by incorporating data entered through the questionnaire into the template. The finished document is available for download right away. 4. Update: starting from version 1.0.5, the GroupDocs.Assembly for .NET library includes a template editor component, meaning you can now not only generate documents based on your existing templates, but actually create new DOC/DOCX/PDF templates without the need to use Microsoft Office or Adobe Acrobat. With this new component, GroupDocs.Assembly for .NET covers a complete document generation cycle: 1) Create a new template or edit an existing one -\u0026gt; 2) Connect the template to a data source (a DB or user input) -\u0026gt; 3) Get completed documents that look like the template but incorporate data from your sources. For more details on this new version, its key components and features please refer to our new post on this page.\nKey Features \u0026amp; Benefits: Easy deployment with just a single DLL + customizable web UI. Data can be pulled from web forms (online questionnaires) or from a DB. Ability to handle JavaScript events such as onTemplateCreated, onTemplateMerge, etc. Simple wizards guide non-developer end users to prepare questionnaires and get completed documents with no coding required. Support for different types of form fields, including text boxes, check boxes, radio buttons, list boxes and combo boxes. Ability to set default values for each question, restrict respond length and value range. Output documents look exactly like the template, but with custom data filled into the form fields. We offer free deployment support to help you get the library up and running quickly. We\u0026rsquo;re also open to feature requests to customize the library to your requirements. If you\u0026rsquo;d like to try the library, please download a free evaluation copy from this page. We also offer a free 30-day license, which allows you to test the library without any restrictions - just contact our sales to get one. For more details on the features, deployment guides and code samples, please visit the product\u0026rsquo;s home page.\n","permalink":"https://blog.groupdocs.com/assembly/groupdocs-assembly-for-net-library-generate-word-and-pdf-documents-from-templates-in-asp-net-c/","summary":"We are pleased to announce the release of the new library that enhances a set of our document collaboration tools - GroupDocs.Assembly for .NET. The library generates PDF and Word documents from templates by automatically filling out merge fields with custom data. If your company or a client have to create tens or hundreds of documents by filling out standard templates with data obtained through user input or from a DB, this library can be of great help.","title":"GroupDocs.Assembly for .NET Library – Introduction"},{"content":"\rHello! Today I\u0026rsquo;d like to show you how to store and open files from a shared folder within your network using the GroupDocs.Annotation for Java library. For those of you who are not familiar with the library yet, it\u0026rsquo;s basically a web-based document viewer that comes with a comprehensive set of annotation tools. The library allows end users to comment on and mark up almost 50 types of documents from within your Java app. For more details on the library, please see this page. If you or your client have a private collaboration network and want to use a shared folder for storing the annotated documents, this article is for you. It will guide you through using the GroupDocs.Annotation for Java library with a network storage within your Windows and Linux environments. Go to the tutorial \u0026raquo;\u0026gt;\n","permalink":"https://blog.groupdocs.com/annotation/using-shared-storage-with-groupdocs-annotation-for-java-library/","summary":"Hello! Today I\u0026rsquo;d like to show you how to store and open files from a shared folder within your network using the GroupDocs.Annotation for Java library. For those of you who are not familiar with the library yet, it\u0026rsquo;s basically a web-based document viewer that comes with a comprehensive set of annotation tools. The library allows end users to comment on and mark up almost 50 types of documents from within your Java app.","title":"Using Shared Storage with the GroupDocs.Annotation for Java Library in Windows and Linux Environments"},{"content":"\rGroupDocs.Annotation for .NET library is a web-based framework which provides features for annotating different types of documents in a web-browser without having to install plugins or middleware on the client. With GroupDocs.Annotation, end users can view and annotate PDF, Microsoft Word, Excel, Outlook, PowerPoint, OpenOffice, AutoCAD and other types of documents and image files. The library comes with a set of commenting and markup tools, including: rectangles, polylines, watermarks, point and area notes, text markup and strikeouts. In this article I\u0026rsquo;d like to help you discover the GroupDocs.Annotation for .NET library\u0026rsquo;s basic functionality: how it works, where annotations are stored, how to manage users, etc. I\u0026rsquo;m also going to show you how to use the library in an ASP.NET MVC application. The sample project described in the article is based on MVC5, but most of the code can be used with any other versions of the MVC framework. Go to the article \u0026raquo;\u0026gt;\n","permalink":"https://blog.groupdocs.com/annotation/easy-integrate-groupdocs-annotation-for-net-library-into-your-asp-net-mvc-5-app/","summary":"GroupDocs.Annotation for .NET library is a web-based framework which provides features for annotating different types of documents in a web-browser without having to install plugins or middleware on the client. With GroupDocs.Annotation, end users can view and annotate PDF, Microsoft Word, Excel, Outlook, PowerPoint, OpenOffice, AutoCAD and other types of documents and image files. The library comes with a set of commenting and markup tools, including: rectangles, polylines, watermarks, point and area notes, text markup and strikeouts.","title":"Easy Integrate GroupDocs.Annotation for .NET Library into Your ASP.NET MVC5 App"},{"content":"\rGroupDocs.Viewer for .NET is a web-oriented framework which provides ample possibilities to view a wide variety of documents in a web-browser, including PDF, Word, Excel, PowerPoint, AutoCAD and many more. However, quite often there are situations when you are looking for a simple and quick solution and don\u0026rsquo;t need all the functionality that comes with a library. In case of GroupDocs.Viewer, for example, you may not want to use iframes on your pages, or add a lot of additional JavaScript and CSS files, which are used by GroupDocs.Viewer. You may also want to limit the number of asynchronous requests/responses through which the viewer works. Or, strip down the UI and just display documents without options to zoom, print, download, etc. In this article I\u0026rsquo;m going to show you how to implement such scenario using the GroupDocs.Viewer for .NET library. Go to the article \u0026raquo;\u0026gt;\n","permalink":"https://blog.groupdocs.com/viewer/stripping-groupdocs-viewer-for-net-functionality-down-to-lightweight-document-embedding-tool/","summary":"GroupDocs.Viewer for .NET is a web-oriented framework which provides ample possibilities to view a wide variety of documents in a web-browser, including PDF, Word, Excel, PowerPoint, AutoCAD and many more. However, quite often there are situations when you are looking for a simple and quick solution and don\u0026rsquo;t need all the functionality that comes with a library. In case of GroupDocs.Viewer, for example, you may not want to use iframes on your pages, or add a lot of additional JavaScript and CSS files, which are used by GroupDocs.","title":"Stripping GroupDocs.Viewer for .NET Functionality Down to a Lightweight Document Embedding Tool"},{"content":"Greetings everyone! Not all of you might know that the latest version of the GroupDocs.Annotation for .NET library can read and save annotated documents not only from local storage or web links, but also from network storage. In other words, you can now locate documents on any network machine. This feature can be useful for businesses who have several machines networked to one main storage, or for customers who use one machine as a server and another one as a file storage. In this article I\u0026rsquo;d like to show you how to use network storage with the GroupDocs.Annotation for .NET library and how to configure your servers. Go to the article \u0026raquo;\u0026gt;\n","permalink":"https://blog.groupdocs.com/annotation/groupdocs-annotation-for-net-read-documents-from-network-storages/","summary":"Greetings everyone! Not all of you might know that the latest version of the GroupDocs.Annotation for .NET library can read and save annotated documents not only from local storage or web links, but also from network storage. In other words, you can now locate documents on any network machine. This feature can be useful for businesses who have several machines networked to one main storage, or for customers who use one machine as a server and another one as a file storage.","title":"Using a Network Storage with the GroupDocs.Annotation for .NET Library"},{"content":"\rGood news for DNN users - we\u0026rsquo;ve recently released a module which allows you to integrate GroupDocs.Viewer for .NET into DNN CMS. Using the module you can seamlessly embed our HTML5 document viewer into your DNN site and display over 45 types of documents and images on any web page. Different from our cloud-based module, this version is developed based on the GroupDocs.Viewer for .NET library, which means you can now store and process documents on your own servers. Existing users of the GroupDocs.Viewer for .NET library can use the module for free. In case you don\u0026rsquo;t have a license for the library yet, please contact our sales for a free 30-day evaluation copy. For more information on the module and installation instructions, please visit this page on the official DNN store.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs-viewer-net-module-now-available-dnn-users/","summary":"Good news for DNN users - we\u0026rsquo;ve recently released a module which allows you to integrate GroupDocs.Viewer for .NET into DNN CMS. Using the module you can seamlessly embed our HTML5 document viewer into your DNN site and display over 45 types of documents and images on any web page. Different from our cloud-based module, this version is developed based on the GroupDocs.Viewer for .NET library, which means you can now store and process documents on your own servers.","title":"GroupDocs.Viewer for .NET Module Is Now Available for DNN Users"},{"content":"\rGreetings everyone! As you may know, GroupDocs.Viewer allows you to open and browse different types of documents (PDF, Word, Excel, etc.) in a browser, without any third-party plugins or programs. The viewer simply converts documents to a set of images, HTML, CSS and SVG and combines them to render the documents in HTML pages. GroupDocs.Viewer has several implementations designed for different platforms and forms of distribution. One of them is a .NET library. It is in fact a single DLL file which is easy to use in ASP.NET projects, both WebForms and MVC. There are a lot of examples and articles showing how to use the standard GroupDocs.Viewer\u0026rsquo;s for .NET functionality already, but this time I want to show you something different. Sometimes you may want to change, extend or supplement Viewer\u0026rsquo;s functionality. For example, you may want to restrict the download, copy or print options. You can disable these by simply configuring Viewer\u0026rsquo;s options, sure. But what if you want a more advanced and intelligent solution? For example, you may need to allow only registered users to be able to download a document, and restrict this option for unregistered users. This article shows you how to achieve this. Go to the article \u0026raquo;\u0026gt;\n","permalink":"https://blog.groupdocs.com/viewer/manage-user-permissions-replacing-http-handlers-groupdocs-viewer-net-library/","summary":"Greetings everyone! As you may know, GroupDocs.Viewer allows you to open and browse different types of documents (PDF, Word, Excel, etc.) in a browser, without any third-party plugins or programs. The viewer simply converts documents to a set of images, HTML, CSS and SVG and combines them to render the documents in HTML pages. GroupDocs.Viewer has several implementations designed for different platforms and forms of distribution. One of them is a .","title":"Manage User Permissions by Replacing HTTP Handlers in GroupDocs.Viewer for .NET Library"},{"content":"\rGreetings everyone! As you may already know, we\u0026rsquo;ve recently released the GroupDocs.Annotation for Java library. It is basically an HTML5-based document viewer that comes with a comprehensive set of tools for marking up and commenting on documents of almost 50 file formats. The library provides end users with the ability to view, annotate and collaborate on documents in real time. Today we\u0026rsquo;d like to present you with a quick guide on how to set up a basic Java web application with the document annotation capability. In this tutorial you will find out how to initialize and use AnnotationHandler, the main class that represents the GroupDocs.Annotation library itself. Further, you will find a request mapping, so that you can correctly map user actions to the server side code. Another nice feature is the configuration of the SignalR library, the tool that enables real time collaboration mode, when several parties can annotate the same document simultaneously and see each other\u0026rsquo;s comments in real time. For those of you who would like to try and test the GroupDocs.Annotation for Java web application, but have no time for creating it from scratch, we provide the project source code. So feel free to download, deploy and configure it for your needs. If you are using NetBeans, you can just create a new \u0026ldquo;Web Application with Existing Sources\u0026rdquo;, point to the sample sources and start it from the IDE. Go to the tutorial \u0026raquo;\u0026gt;\n","permalink":"https://blog.groupdocs.com/annotation/groupdocs-annotation-java-integrating-java-web/","summary":"Greetings everyone! As you may already know, we\u0026rsquo;ve recently released the GroupDocs.Annotation for Java library. It is basically an HTML5-based document viewer that comes with a comprehensive set of tools for marking up and commenting on documents of almost 50 file formats. The library provides end users with the ability to view, annotate and collaborate on documents in real time. Today we\u0026rsquo;d like to present you with a quick guide on how to set up a basic Java web application with the document annotation capability.","title":"GroupDocs.Annotation for Java - Integrating with a Java Web Project"},{"content":"\rWe are pleased to inform developers, especially those of you who prefer the Linux platform, about the release of the GroupDocs.Annotation for Java library. It is an HTML5 standard compliant library that allows you to display PDF, Microsoft Office and image files and comes with a comprehensive set of document commenting and markup tools. The viewer can work two ways: by rasterizing documents or by converting them to a combination of SVG, HTML and CSS. Both methods deliver clear, high-fidelity rendering. Key benefits include:\nSeamlessly enable end users to view, annotate, share and print more than 45 document formats, including PDF, Microsoft Office (DOC, DOCX, XLS, XLSX, PPT, PPTX, etc.) and OpenDocument files (ODT, ODS, etc.), plain text documents, CAD and raster images within your Java apps. Documents can be rendered as real text files (HTML5 based technology of HTML, CSS and SVG combination), meaning users can select, mark up, strikeout and comment on text within a document. GroupDocs.Annotation for Java is a 100% native solution - you don\u0026rsquo;t need any 3rd party software. Simplicity of installation - the library can be deployed with a packaged JAR file or hosted within your own servlet container. Using only a few JavaScript lines or an iframe, you can integrate the UI, which can be easily customized to fit the look and style of your own app. GroupDocs.Annotation for Java is set up to work cross-domain using JSONP and CORS, so it\u0026rsquo;s designed to be run external to projects. Thanks to this, PHP and RoR Linux-based applications can use it from within the same server. The library allows end users to view and annotate documents from any web-enabled device, including tablets and mobiles, and using any HTML5 compliant web-browser. For more information on the GroupDocs.Annotation for Java library, please visit the product page, check out code samples and download a free evaluation copy. Also, please feel free to contact our sales team for an evaluation license which enables you to test all features without any limits during 30 days for free.\n","permalink":"https://blog.groupdocs.com/annotation/groupdocs-annotation-for-java-library-annotate-pdf-office-and-image-files/","summary":"We are pleased to inform developers, especially those of you who prefer the Linux platform, about the release of the GroupDocs.Annotation for Java library. It is an HTML5 standard compliant library that allows you to display PDF, Microsoft Office and image files and comes with a comprehensive set of document commenting and markup tools. The viewer can work two ways: by rasterizing documents or by converting them to a combination of SVG, HTML and CSS.","title":"GroupDocs.Annotation for Java Library - Annotate PDF, Office and Image Files within Your Java Apps"},{"content":"\rGood news for .NET developers - our universal document conversion library, GroupDocs Conversion for .NET is now available for download! The library enables developers to seamlessly convert back and forth between over 50 common file formats from within their .NET (C#, VB.NET) apps. For example, using the library, you can convert Word documents (DOC, DOCX) to PDF files and to images without the need for Microsoft Word or Adobe Acrobat on either server or client side. Key Benefits of the GroupDocs Document Conversion for .NET Library: 1. Multiple file format support. With a single library you get a universal converter for your C# / VB.NET apps that supports over 50 file formats. Just to name a few, you can convert:\nWord (DOC, DOCX) to PDF PDF to image files (JPG, TIFF) PDF to XPS PDF to TXT Word (DOC, DOCX) to HTML DOC to DOCX and vise versa Word (DOC, DOCX) to image files (JPG, TIFF) Word (DOC, DOCX) to RTF And many more\u0026hellip; 2. Completely independent. GroupDocs Conversion for .NET library works without dependencies on a virtual printer driver, Microsoft Office Automation, Adobe Acrobat or any other 3rd party software. 3. Fast \u0026amp; Accurate. GroupDocs Conversion handles multi-page Word and PDF documents quickly. No matter which file format is processed, output documents always look sharp and retain the original layout. 4. Easy Integration. The library can be deployed into your project with just a single DLL. We offer free support during the whole integration period and code examples in C#, which can help you get the converter up and running quickly. If you\u0026rsquo;d like to integrate the GroupDocs Conversion for .NET library into your own app, please download a free trial version or contact our sales team for a free 30-day evaluation license which comes with a fully-functional version of the library Also, please visit the GroupDocs Conversion for .NET Library product page for more details on features and code samples.\n","permalink":"https://blog.groupdocs.com/conversion/groupdocs-conversion-for-dot-net-library-convert-in-c-sharp-vb-net-word-doc-to-pdf-to-image-and-more/","summary":"Good news for .NET developers - our universal document conversion library, GroupDocs Conversion for .NET is now available for download! The library enables developers to seamlessly convert back and forth between over 50 common file formats from within their .NET (C#, VB.NET) apps. For example, using the library, you can convert Word documents (DOC, DOCX) to PDF files and to images without the need for Microsoft Word or Adobe Acrobat on either server or client side.","title":"GroupDocs.Conversion for .NET Library - Convert Over 50 File Formats in VB.NET \u0026 C#: Word (DOCX, DOC) to PDF to Image Files and More"},{"content":"\rWe\u0026rsquo;re glad to announce the release of the GroupDocs.Comparison for .NET library. Developers working on .NET can use the library to seamlessly add document comparison capability to their own applications. With this library, end users can compare documents of all most popular formats, including PDF, Microsoft Word and Excel. The library also includes a diff view GUI, which displays differences between two documents with a redline view approach and is easy to customize and integrate into your own app. Key Benefits of the GroupDocs Diff Library for .NET (C# / VB.NET):\nSupport for all popular text document formats, including: Acrobat: PDF, PDF/A Microsoft Word: DOC, DOCX Microsoft Excel: XLS, XLSX Microsoft PowerPoint: PPT, PPTX Other: ODT, TXT, HTML Suitable for any project - developers can use the diff library in any .NET project, including MVC and WebForms.\nThe library comes with a clear and easy-to-use GUI, which displays differences between two documents with an intuitive redline diff view approach. Users can also merge and download compared files for further offline editing.\nThe UI can be easily customized to match your app\u0026rsquo;s look and feel.\nGroupDocs.Comparison for .NET is a 100% independent library, which can be integrated with a single DLL and doesn\u0026rsquo;t require any client side installation.\nIf you\u0026rsquo;d like to integrate the GroupDocs.Comparison for .NET library into your own app, please download a free trial version, or contact our sales team for a free 30-day evaluation license which comes with a fully-functional version of the library. We offer free technical support during the integration phase, so please feel free to contact us, should you need any assistance. Also, please visit the GroupDocs.Comparison for .NET Library product page for more details on features and code samples.\n","permalink":"https://blog.groupdocs.com/comparison/groupdocs-comparison-dot-net-library-compare-pdf-word-excel-text-documents-with-diff-view-gui/","summary":"We\u0026rsquo;re glad to announce the release of the GroupDocs.Comparison for .NET library. Developers working on .NET can use the library to seamlessly add document comparison capability to their own applications. With this library, end users can compare documents of all most popular formats, including PDF, Microsoft Word and Excel. The library also includes a diff view GUI, which displays differences between two documents with a redline view approach and is easy to customize and integrate into your own app.","title":"GroupDocs.Comparison for .NET Library - Compare PDF, Word, Excel and Other Text Documents with a Diff View GUI"},{"content":"\rWe are glad to announce the release of the GroupDocs Signature for .NET Library. The library is developed based on our online signature app and enables developers to easily add electronic signature capabilities to their own ASP.NET, C#/VB.NET applications. It\u0026rsquo;s a one-stop-shop solution, which includes all the necessary controls for a complete, legally-binding electronic signature workflow. Key features include: Electronic Signature Capture Control Users can sign documents either by uploading a scanned copy of their signature, or by drawing it right in a web-browser with a mouse. Signature Audit Trails and Anti-tampering GroupDocs Signature allows you to record and store detailed logs on document processing. It also applies unique hash records to documents at each signing stage in order to prevent alterations. This makes GroupDocs Signature compliant with the E-SIGN act and allows you to provide your app\u0026rsquo;s users with a legally binding alternative to a conventional paper-based signing workflow. Cross-Format Support Users can upload documents of just about any common business format, including Microsoft Office documents (DOC, DOCX, XLS, XLSX, PPT, PPTX, etc.), Visio diagrams (VSD, VDX), PDF and CAD files, images (TIFF, JPG, JPEG). The files are converted to PDF and can be signed online, from a web-browser. Convenient Signing Workflows An intuitive workspace allows end users to manage documents, save contacts and store signatures for reuse. Automatic reminders are sent to signers who have not signed a document and notifications inform all parties when signatures are applied. Complete Control Over Documents GroupDocs Signature for .NET can be installed and hosted using your own infrastructure. As a result, documents can be stored, processed and accessed from your own servers and behind your firewalls. Easy Integration The library is lightweight and can be integrated with a single DLL. There\u0026rsquo;s no need for client-side installation, as the app runs on all modern browsers. We also provide free technical support during the whole integration period to help you get up and running quickly. If you\u0026rsquo;d like to integrate the GroupDocs Signatures for .NET Library into your own project, you can download a free trial version, or contact our sales team for a free 30-day evaluation license which comes with a fully-functional version of the library. Also, please visit the GroupDocs Signature for .NET Library product page for more details on features and code samples.\n","permalink":"https://blog.groupdocs.com/signature/capture-electronic-signatures-in-asp-net-apps-with-groupdocs-signature-dot-net-library/","summary":"We are glad to announce the release of the GroupDocs Signature for .NET Library. The library is developed based on our online signature app and enables developers to easily add electronic signature capabilities to their own ASP.NET, C#/VB.NET applications. It\u0026rsquo;s a one-stop-shop solution, which includes all the necessary controls for a complete, legally-binding electronic signature workflow. Key features include: Electronic Signature Capture Control Users can sign documents either by uploading a scanned copy of their signature, or by drawing it right in a web-browser with a mouse.","title":"Capture Electronic Signatures from within Your ASP.NET Apps with the GroupDocs.Signature for .NET Library"},{"content":"\rWe\u0026rsquo;re pleased to announce the release of the GroupDocs Viewer for Java Library! Java developers can now seamlessly use our web-based document viewer within their Java development environment. Just like GroupDocs Viewer for .NET Library, this version can be easily embedded into customer platforms and allows developers to display over 40 document and image file formats without any external dependencies.\nBenefits of the GroupDocs Document Viewer for Java Library: Support for more than 40 file formats, including: Portable Document Format: .pdf Microsoft Word: .doc .docx .docm .dot .dotx .dotm Microsoft Excel: .xls .xlsx .xlsm .xlt .xltx .xltm .xlsb .xml Microsoft PowerPoint: .ppt .pptx .pptm Microsoft Visio: .vsd .vss .vst .vsw .vdx .vsx .vtx .vsdx .vsdm .vssx .vssm .vstx .vstm .vsl Microsoft Project: .mpp .mpt .mpx Microsoft Outlook: .msg OpenDocument Formats: .odt .ott .ods .odp Rich Text Format: .rtf Plain Text Format: .txt Comma-Separated Values: .csv HyperText Markup Language: .htm .html .mht .mhtml XML Paper Specification: .xps AutoCAD Drawing File Format: .dxf Image files: .bmp .gif .jpg .png .tiff\nHosted documents can be either rasterized or converted to HTML+CSS+SVG using HTML5 technology. The last option allows you to render documents as real text files, meaning users can search for, select and copy text to the clipboard right from the hosted documents.\nNo Flash, Adobe Reader or any other 3rd party software installation is required. Users can view documents from any desktop, tablet or mobile device browser that supports HTML5.\nGroupDocs Viewer for Java library comes with a convenient UI that allows users to seamlessly navigate multi-page documents in a browser. In particular, users can scroll or turn pages with buttons, preview pages with thumbnails, jump to a specified page, zoom in and out of a document, search for text using keywords, print and download documents right from a web-browser.\nThe UI can be easily customized to match your own app style. You can customize fonts, color scheme, button styles - whatever you need. You can also customize UI functionality. For example, you can restrict or hide the document download and print options for security reasons.\nBeing optimized for Java development environment, GroupDocs Viewer is easy to integrate into your projects. In addition, we provide free technical support during the whole integration period for hassle-free deployment.\nIf you\u0026rsquo;d like to integrate our Java document viewer into your own app, download a free trial version, or contact our sales team for a free 30-day evaluation license which comes with a fully-functional version of the library. Also, please visit the GroupDocs Viewer for Java Library product page for more details on features and code samples.\n","permalink":"https://blog.groupdocs.com/viewer/announcing-groupdocs-java-document-viewer/","summary":"We\u0026rsquo;re pleased to announce the release of the GroupDocs Viewer for Java Library! Java developers can now seamlessly use our web-based document viewer within their Java development environment. Just like GroupDocs Viewer for .NET Library, this version can be easily embedded into customer platforms and allows developers to display over 40 document and image file formats without any external dependencies.\nBenefits of the GroupDocs Document Viewer for Java Library: Support for more than 40 file formats, including: Portable Document Format: .","title":"GroupDocs Viewer for Java Library - a J2EE \u0026 J2SE Universal Java Document Viewer"},{"content":"We\u0026rsquo;ve announced the launch of GroupDocs\u0026rsquo; online signature plugin for DotNetNuke. This plugin lets you embed signature forms into DotNetNuke, share them with customers and collect signatures online. The workflow is simple: upload a document template to GroupDocs, add signature fields (date, sign, single/multi-line text fields, etc.), include signer email addresses and publish. Recipients fill in the form information and submit it online. An instant notification is received on completion of the task. GroupDocs Signature is an online signature app that supports signing and sending business documents through a web-browser. No new software installations are needed. The applications is compatible with a range of popular file-formats.\nBenefits of GroupDocs\u0026rsquo; Online Signature AppElectronic signatures have gained respect and popularity in the corporate world. They speed up the signature process for contracts and other documents. Organizations have adapted to the change and can see the benefits it offers. The traditional signing method involved printing documents, signing the papers, sending them by fax or mail, and other steps. It was a time consuming activity that increased admin overheads. GroupDocs\u0026rsquo; online signature app is a secure and legally binding service that facilitates instant online document signing. A simple workflow ensures that users can prepare signature forms easily, invite partners, gather signatures and close deals. Some of the benefits of using GroupDocs Signature are: Easy form management: Add fields (check box, single-line text, drop-down, and others) to the document before sharing with peers. Automate the signing process: Set reminder emails on pending documents. Get updates: Receive notifications about signed documents. Use as a plugin: Install the plugin to your CMS (WordPress, Joomla, etc.) and embed signature forms directly. Track status: Different status icons (pending, completed, or expired) instantly shows the current state of the document. Save time: Manage contacts and store signatures for re-use for different purposes. Multiple document format support: Microsoft Word, PDF, ODT, and others. Why GroupDocs Signature?It is a known fact that e-signature increases the speed of commercial transactions. Business demands faster process turn-around times. The Internet has brought just such a change to document collaboration and signing online contracts. Teams and business units meet online, discuss ideas, make suggestions, and devise strategy. This approach has resulted from a move away from conventional methods of business communication, cutting down on paper and emails. The need for online signature services is ever-increasing and most countries worldwide now accept e-signatures is transactions. GroupDocs\u0026rsquo; online signature app lets you sign documents - NDA\u0026rsquo;s, invoices, contracts, insurance forms and others - from your web-browser. Create forms and invite partners to sign documents. Signers access the document link via email, submit form information and upload a signature. Instant notifications are sent to all parties involved. Track document status, add watermarks, save time, and create a paperless office with GroupDocs Signature! There is no fear of data misuse since all documents are encrypted. Want to see how it works? Just try the demo now. Learning is easy and you\u0026rsquo;ll understand the process flow in seconds. We appreciate and value our customers\u0026rsquo; feedback. Your suggestions can help us improve and deliver products and services effectively. Write an email to support@groupdocs.com, chat online or post feedback or queries on the GroupDocs Forum. ","permalink":"https://blog.groupdocs.com/signature/online-signature-plugin-for-dotnetnuke-released/","summary":"We\u0026rsquo;ve announced the launch of GroupDocs\u0026rsquo; online signature plugin for DotNetNuke. This plugin lets you embed signature forms into DotNetNuke, share them with customers and collect signatures online. The workflow is simple: upload a document template to GroupDocs, add signature fields (date, sign, single/multi-line text fields, etc.), include signer email addresses and publish. Recipients fill in the form information and submit it online. An instant notification is received on completion of the task.","title":"Online Signature Plugin from GroupDocs Now Available for DotNetNuke"},{"content":"\rWe\u0026rsquo;ve received a lot of feedback from our customers asking us to create a .NET library based on our HTML5 document annotation app. We\u0026rsquo;ve worked hard and today are pleased to announce the release of the document annotation library for developers on .NET platforms (ASP.NET, C#, VB.NET). Using the library, developers can seamlessly enhance their web and mobile apps with the ability to annotate Microsoft Office documents, PDFs and image files. The benefits that the library offers include:\nEnd users can annotate more than 50 file formats, including all common Microsoft Office documents (DOC, DOCX, XLS, XLSX, PPT, PPTX, etc.), PDF files and images (JPEG, GIF, PNG, BMP, TIFF). Documents are rendered as a combination of images and selectable text. This allows end users to select, comment on, strikeout and mark up text while annotating documents within your web or mobile app. The library is extremely lightweight and can be integrated with a single DLL, while the UI can be embedded with just a few lines of JS code. The UI can be easily customized using your own CSS so that it matches your app\u0026rsquo;s look and feel. GroupDocs.Annotation for .NET is a completely independent library. So, no 3rd party software is required. End users can annotate images, PDFs and other documents from any web-enabled device, including mobiles and tablets without having to install Flash, Adobe Acrobat or any other plugins. All modern browsers are supported. The library comes with a comprehensive set of annotation tools. End users can mark up, strikeout and comment on text, add notes to images and any point on the document, draw freehand lines and shapes, drop watermarks, etc. Annotated documents can be saved, downloaded, printed out or exported to a PDF file with all the comments and markups added by end users. Lastly, we offer free support to developers during the whole integration period to make the deployment hassle-free. If you\u0026rsquo;d like to add the HTML5-based document annotation capabilities to your app, please download a free evaluation version, or contact our sales team for a free 30-day fully-functional license. Also, please visit the product page for more details on features and code samples.\n","permalink":"https://blog.groupdocs.com/annotation/html5-image-and-pdf-annotation-library-for-asp-net-csharp-vb-net-apps/","summary":"We\u0026rsquo;ve received a lot of feedback from our customers asking us to create a .NET library based on our HTML5 document annotation app. We\u0026rsquo;ve worked hard and today are pleased to announce the release of the document annotation library for developers on .NET platforms (ASP.NET, C#, VB.NET). Using the library, developers can seamlessly enhance their web and mobile apps with the ability to annotate Microsoft Office documents, PDFs and image files.","title":"HTML5 Image, PDF and Microsoft Office Document Annotation Library for ASP.NET, C# and VB.NET Apps"},{"content":"We\u0026rsquo;re glad to announce the launch of GroupDocs\u0026rsquo; annotation plugin for Moodle. GroupDocs Annotation, an online annotation app, is popular with our users because it lets them annotate and review most popular file formats from a web-browser. Upload any document that you want a team to review to a GroupDocs account. Then copy and paste the embed link to a Moodle page. Invite and share the link with members to start collaborative annotation. Moodle CMS displays the embedded document and makes file sharing easy and simple. GroupDocs Annotation lets you annotate PDF and other files from a web-browser. A wide set of annotation option allows reviewers to add comments the way that suits them best: by adding comments, for example, or drawing on the document. In minutes, members working across different time-zones can collaborate and suggest changes. All comments are saved in a single file that helps publishing teams expedite the review cycle.\nGroupDocs Annotation: BenefitsDocument review processes are often long. A document must go through different checks and is reviewed by different divisions in an organization. Sometimes, the existing process does not use employees time the best way it could. GroupDocs Annotation offers compelling document management benefits to individuals and organizations. It\u0026rsquo;s a Cloud app, and Cloud apps have transformed the way organizations operate. They reduce cost, can improve productivity and facilitate team collaboration. Some of the benefits of GroupDocs Annotation are: Wide file format support: Supports a wide-range of file formats from text, spreadsheets, PDF, or image files. Collaboration: Share a link or invite members via email. Within minutes, team members collaborate online. Integration: Download and install the plugin to your CMS and embed the document directly from GroupDocs. Access rights: Restrict document rights (download, print, or copy) when sharing documents to prevent unauthorized use. View comments in side panel: Read the comments made by each reviewer to keep updated and avoid repeating comments. Presentation mode: View documents in real-time, broadcasting mouse, scroll and zoom events. Why GroupDocs Annotation?When active minds collaborate, new ideas are generated. Organizations understand the \u0026lsquo;social explosion\u0026rsquo; phenomena worldwide that has changed buyer attitudes and behavior. They adapt to new methods and technologies to improve work output, collaborate faster and create an exchange platform when working to create the next big product. Customer feedback and suggestions are important aspects for product design. In short: fast review, feedback, and collaboration holds great value for product development. GroupDocs\u0026rsquo; cloud-based annotation app serves the need for different industry verticals. Annotate PDF, Microsoft Word or image files from your desk. Engage in document sharing, add comments, resolve conflicts and improve document quality. No additional software is required as it runs in a web-browser. Collaborate with global teams easily and start reviewing online. Anyone invited to collaborate on a document can view, read and comment. This platform not only promotes making suggestions or reviewing documents, it also acts an an in-house employee forum for discussions. From academic institutions, technology start-ups, law firms, online businesses, advertising firms - all need a powerful online document management platform. Want to see how it works? Try now!. Learning GroupDocs\u0026rsquo; PDF annotation app is easy: you will understand the flow in minutes. We appreciate and value our customers\u0026rsquo; feedback. Your suggestions can help us improve and deliver products and services effectively. Write an email to support@groupdocs.com, chat online or post feedback or queries on the GroupDocs Forum. ","permalink":"https://blog.groupdocs.com/annotation/online-pdf-annotation-plugin-for-moodle-cms-released/","summary":"We\u0026rsquo;re glad to announce the launch of GroupDocs\u0026rsquo; annotation plugin for Moodle. GroupDocs Annotation, an online annotation app, is popular with our users because it lets them annotate and review most popular file formats from a web-browser. Upload any document that you want a team to review to a GroupDocs account. Then copy and paste the embed link to a Moodle page. Invite and share the link with members to start collaborative annotation.","title":"Online PDF Annotation Plugin for Moodle CMS Now Available for Download"},{"content":"GroupDocs is excited to announce the launch of the GroupDocs Comparison plugin for TextPattern. With this plugin, you can compare two documents in a browser. Select source and target files and run the comparison. Embed the compared documents to your TextPattern pages and easily share them with peers. GroupDocs Comparison generates a summary of any changes made to the document. Tracking insertions or deletions is easy. GroupDocs Comparison runs on a web-browser so no new software installations is needed.\nGroupDocs Comparison - An Online Document Comparison AppGroupDocs Comparison is an online document comparison tool that lets you compare documents and find differences between versions. Reviewing and comparing two Microsoft Word documents can be a time-consuming activity and may lead to errors. Our comparison app offers features and benefits that expediate the task and give accurate results. To find the current version of a document, select files from your GroupDocs account for comparison. In seconds, GroupDocs Comparison generates a summary report that highlights changes. The use of blueline (insertion) and redline (deletion) markup lets you see changes instantly. Merge the differences found in two Word documents and save them as a final .docx file! Refer to our online help on How To Generate Embed Key and Redline GUID for GroupDocs Comparison plugin to learn how to compare documents with extra security. Online Document Comparison App - BenefitsWith faster product releases and organizations adapting to agile methodologies, content management is important. Publishing teams understand the need for version control to effectively manage this challenge. Checking legacy documents for review and comparison may take a lot of time. Multitasking is crucial. So people adapt to web-based technologies to achieve tasks and increase output. GroupDocs Comparison fulfills the objective - save time, avoid manual errors, protect unauthorized use and stay current. Some of the benefits of using GroupDocs Comparison are: Track view: Multicolor tracking view highlights additions or deletions. Consolidate document: Merge different versions of a documents into a single file and export it to Word. Categorize changes: List view and status view helps navigation between pages to check the status. Protect documents: Monitor and remove any unauthorized changes. Stay Current: Find document differences quickly and manage document version effectively. Why GroupDocs Comparison?Think of document comparison in the past: it was a cumbersome task for writers and editors. Searching archived documents and sitting an entire day to figure out the changes made between previous and current document versions. Manual intervention was needed and prone to errors. With technology advancements, document management tools are important for optimizing task and achieving goals. GroupDocs Comparison provides solutions that meets the demand for companies in the document management space. Generate a consolidated document that tracks the findings and share it with colleagues and peers. Product teams get an overview of any modifications which helps them devise an effective design strategy. An activity that required hours to complete can now be done in minutes. Web-entrepreneurs can embed and share documents online with partners through their portal or CMS. This facilitates document collaboration and speeds up the operational cycle. Want to see how it works? Register now. Learning GroupDocs Comparison is easy: you will understand the flow in minutes. We appreciate and value our customers\u0026rsquo; feedback. Your suggestions can help us improve and deliver products and services effectively. Write an email to support@groupdocs.com, chat online or post feedback or queries on the GroupDocs Forum. ","permalink":"https://blog.groupdocs.com/comparison/groupdocs-plugin-for-textpattern-released/","summary":"GroupDocs is excited to announce the launch of the GroupDocs Comparison plugin for TextPattern. With this plugin, you can compare two documents in a browser. Select source and target files and run the comparison. Embed the compared documents to your TextPattern pages and easily share them with peers. GroupDocs Comparison generates a summary of any changes made to the document. Tracking insertions or deletions is easy. GroupDocs Comparison runs on a web-browser so no new software installations is needed.","title":"GroupDocs Comparison Plugin for TextPattern Released"},{"content":"We\u0026rsquo;re happy to announce the release of GroupDocs Viewer for .NET 1.5.0 as an update to our suite of .NET Libraries. This version includes many new features and enhancements. Some of the features and enhancements are listed below:\nSupport for Microsoft Visio and Microsoft Outlook file formats A setting to customize the width of the thumbnails container A setting to display the image width (for cache generation) Cross-domain detection Support for Norwegian language Header-less Viewer and control methods Concatenation of multiple streams into one document Usage of a default width for images having smaller widths A message box to display the file-download errors Client error handling for GetPdf2JavaScript Supports the display of pages with variable heights in their original proportion Resizing after creation: the setWidth and setHeight methods allow resizing of the viewer even after creation Error propagation to customer\u0026rsquo;s code: an event is triggered when an error occurs, containing the information about the error. This event can be intercepted and processed by the user\u0026rsquo;s code Please refer to the GroupDocs Viewer for .NET Documentation for reference. This version also saw a number of bug fixes like unresponsive browser displaying an \u0026ldquo;unresponsive script\u0026rdquo; window when opening a large file; pages are empty after zooming in book mode, etc. Download this latest version and check for information on what\u0026rsquo;s new from the null If you have any questions or issues please raise them within the GroupDocs Support Forums, and we\u0026rsquo;ll be happy to assist.\n","permalink":"https://blog.groupdocs.com/total/groupdocs-viewer-for-net-1-5-0-supports-microsoft-visio-and-outlook-files/","summary":"We\u0026rsquo;re happy to announce the release of GroupDocs Viewer for .NET 1.5.0 as an update to our suite of .NET Libraries. This version includes many new features and enhancements. Some of the features and enhancements are listed below:\nSupport for Microsoft Visio and Microsoft Outlook file formats A setting to customize the width of the thumbnails container A setting to display the image width (for cache generation) Cross-domain detection Support for Norwegian language Header-less Viewer and control methods Concatenation of multiple streams into one document Usage of a default width for images having smaller widths A message box to display the file-download errors Client error handling for GetPdf2JavaScript Supports the display of pages with variable heights in their original proportion Resizing after creation: the setWidth and setHeight methods allow resizing of the viewer even after creation Error propagation to customer\u0026rsquo;s code: an event is triggered when an error occurs, containing the information about the error.","title":"GroupDocs Viewer for .NET 1.5.0 Supports Microsoft Visio and Outlook Files"},{"content":"Online document management has gained wide industry acceptance in the last few years. From version control, central document repositories, cost reduction, and increasing employee output: cloud technologies helps. One of the tasks we often perform in our work is to compare documents or files to find differences and check which version is the most recent. That can be frustrating at times: it is time consuming and takes time that could be used for other tasks. Consider the example of a software engineer who needs to review and spot the differences in two Javascript or PHP files. Checking lines of code manually is error-prone and the engineer may miss important details. In this scenario, there should be a mechanism that can highlight the differences real-time and provide a summary on additions or deletions made in the files. [caption id=\u0026ldquo;attachment_4112\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;622\u0026rdquo; caption=\u0026ldquo;How Lawyers and Legal Firms Benefit from GroupDocs Comparison\u0026rdquo;]\r[/caption] Whether you need to compare Word documents, Excel spreadsheets or PDF files – GroupDocs Comparison is here to help you. Use it to compare documents online, from within your web browser. In this blog, we\u0026rsquo;ll see how lawyers or legal firms can use our document comparison tool to their advantage. In the legal world, PDFs are commonly used for electronic filing and it has become a standard practice in courts and government agencies.\nGeneral Tasks Performed by LawyersLawyers or legal experts need to maintain close contact with their clients. They report all progress and activities, and advise on critical issues. Not only that, but preparing large sets of documents for hearings and other legal proceedings is a key activity. So there is a need for revision and document comparison at each level. It requires meticulous execution as even the smallest change, if unnoticed, can have an impact on the case. Client confidentiality and preventing unauthorized use of legal documents are other important issues. What is GroupDocs Comparison?GroupDocs Comparison is on online document comparison app that lets you accurately compare Word documents, as well as Excel and PDF files, online from your desk. When you compare Word documents, for example, GroupDocs generates a redline view to spot the differences between two files. All insertions or deletions are marked with blue and redline respectively. A summary of the compared document helps readers figure out changes in real-time. No new software installations are needed. With GroupDocs Comparison, you can consolidate the difference between different versions and export it to DOC file for offline editing. Protect documents from unauthorized use and view the categorized changes to stay current. Benefits of the Document Comparison AppGroupDocs\u0026rsquo; online document comparison tool offers compelling features that can be used to: Version control: Lawyers constantly juggle files and documents to build their case. Keeping ten versions of a document may sound tidy, but eventually, they\u0026rsquo;ll need to automate the document comparison process to find the current version. GroupDocs Comparison does the job perfectly. Compare Word documents, PDF files and Excel spreadsheets: Upload documents to GroupDocs, select the source and target documents and run document comparison. GroupDocs\u0026rsquo; line tracking feature allows you to see the changes made to the document. Lawyers will find it very helpful as the feature works in a similar way to that of change tracking in Microsoft Word. It saves time and they can engage in multitasking. Website integration: If you\u0026rsquo;re running a website and want to share a compared document with your peers, use the GroupDocs Comparison plugin. Faster dissemination of information is crucial to win business and clients. GroupDocs Comparison promotes online document collaboration. Protect documents: GroupDocs Comparison helps you see what has been added, edited or deleted. This way, you can instantly spot and clear any unauthorized changes. Compatible with different file formats: GroupDocs Comparison supports a wide range of popular industry formats. Since lawyers have to work on different legal documents, they may encounter cross-platform and version issues. Not anymore: GroupDocs Comparison overcomes cross-version issues and is platform independent. DOCX, XLS, PPTX, PDF, ODT, and many other formats are supported. SummaryGroupDocs Comparison offers great value for professionals and corporates. Save time, avoid human error, check which is the most up-to-date version of two documents in seconds and increase productivity. ","permalink":"https://blog.groupdocs.com/comparison/how-lawyers-and-legal-firms-benefit-from-groupdocs-document-comparison-app/","summary":"Online document management has gained wide industry acceptance in the last few years. From version control, central document repositories, cost reduction, and increasing employee output: cloud technologies helps. One of the tasks we often perform in our work is to compare documents or files to find differences and check which version is the most recent. That can be frustrating at times: it is time consuming and takes time that could be used for other tasks.","title":"How Lawyers and Legal Firms Benefit from GroupDocs' Document Comparison App"},{"content":"Introduction In one of my previous articles I talked about using the Bootstrap CSS framework in web projects. Exactly 2 years after the very first release of Bootstrap to the open world by the ex-Twitter developers we have now Bootstrap v3 - the new version of the most popular CSS framework. I’m calling it the most popular because of the recently announced results from the meanpath source-code search engine which shows that 1% of websites nowadays are using Bootstrap. Which is a quite big number considering the fact there are more than 150 million active websites across the world wide web. But enough with rhetorical facts and let’s move on to the important part of this article. [caption id=\u0026ldquo;attachment_4039\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;622\u0026rdquo; caption=\u0026ldquo;What Has Changed in Bootstrap v3\u0026rdquo;]\r[/caption]\nWhat Has Changed in Bootstrap v3? On a first sight it doesn’t seem to have changed much, because Bootstrap v3 is still a CSS framework at the end of the day. Of course a lot of people are used to its features by now. But if you’re familiar with the code of the previous versions (mainly the LESS part of it) it has actually changed a lot. Both the CSS and JavaScript parts were rewritten to provide better optimization for the end product, because the Bootstrap developers and community are pushing it to be more relevant to current front-end trends and best practices.\nNo more fallback Support for IE7 The first major thing is that the framework doesn’t provide fallback styles for IE7 anymore. And that is to be expected, because even jQuery dropped them with their last major version. Dropping support for older browsers is an important transition for web evolution, because not that far into the feature, progressive enhancement will be aimed mainly at improving the mobile experience, rather than making websites behave the same way under different browser vendors. And that’s what I’m looking forward too as a web developer.\nFluid by default The other big change is that Bootstrap v3 is responsive and fluid by default. This is because responsiveness isn’t a new concept in web development anymore and it’s such a common and widely used technique that it just doesn’t make sense to having a site that\u0026rsquo;s optimized for mobile users. Because of all that, the .row-fluid and .container-fluidclasses are now gone. They’re replaced with a lot of new classes for this, which give users a lot more freedom over and options for how they want their app’s layout to look on different screens. I won’t go into too much detail, or share code snippets, because you can find plenty of examples and instructions in the official documentation. The next major change in Bootstrap v3 is that it is built around the idea of the “Mobile First” approach. If you aren’t familiar with this practice, it’s basically a way of developing a web app. You start developing it for the smallest phones, then tablets and so on until you reach the large desktop look and features. So this change comes hand in hand with the default fluid nature of the framework. If you\u0026rsquo;re disappointed about these changes and think that you’re obligated to make your site responsive and can’t use Bootstrap v3 because of this, don’t worry: you can still make static sites, just with some extra classes in the HTML. You have now a standalone class for responsive images - .img-responsive - instead of having all of your images that way when using the responsive version of the framework.\nGlyphicons use font files The next important change I really want to point out goes hand in hand with one of my previous articles, Using Web Icon Fonts – Best Practices. That’s right, Glyphicons now use a font file instead of a PNG sprite, which I find awesome. It has 180 icons inside it, so be sure to check them out if you plan on using them in your project.\nNew look Also another big change is the default look of the whole framework. Like the other changes, this shows that Bootstrap aims to stay relevant to the current state of web. The design has “gone flat” as they call it, meaning that a lot of box shadows and gradients have been removed from most of the elements. The bright colors have been changed to more neutral ones. Soft, darker colors and more simplicity is what web 2.0 stands for, so this change was kind of expected, at least from me.\nModules added, modules removed The last changes I want to mention are what modules are removed and what’s added. Accordion, submenus and typeahead were removed. They are replaced by new modules: Panels and List Groups.\nPanels are basically boxes that have an optional header, footer and, of course, content part. This could come in handy for any custom notification boxes (something like alerts in that sense) or containers for articles and so on. List groups can be used for a simple or really complex series of components that have some sort consistent hierarchy. Of course they don’t limit you in any way and you can use them for whatever type of structure you think fits them well. It’s a flexible and powerful component which could fit very well in responsive and more complex layouts. There are thousands of other changes on the class names of pretty much the whole framework which you can find on the official Bootstrap website. For those of you who aren’t ready to transition yet, don’t worry: version 2.3.2 is still null.\nTo Sum It Up Personally, I’m very pleased with the new version of the framework and I have already started using Bootstrap v3 in several new projects. I could say it’s not bad, but I’ll probably need a bit more time to adapt to it as with anything new. I like that they’ve gone for the icon font and the mobile first approach and that they keep looking to the future. AR\n","permalink":"https://blog.groupdocs.com/total/bootstrap-v3-what-has-changed-in-the-new-version/","summary":"Introduction In one of my previous articles I talked about using the Bootstrap CSS framework in web projects. Exactly 2 years after the very first release of Bootstrap to the open world by the ex-Twitter developers we have now Bootstrap v3 - the new version of the most popular CSS framework. I’m calling it the most popular because of the recently announced results from the meanpath source-code search engine which shows that 1% of websites nowadays are using Bootstrap.","title":"Bootstrap v3: What Has Changed in the New Version"},{"content":"The technology research firm Gartner states that the demand for SaaS (Software as a Service) products will continue to grow in a recent report (February, 2013). The report highlights that some of the top segments for the SaaS market will be:\nOffice suites, IT operations management and storage management. Corporates understand the need to stay abreast technology trends and are taking the necessary steps to move towards cloud or web-based document management systems. Following the changing trends almost all industry verticals seek to adapt newer technologies to collaborate faster, lower costs and increase revenue. In this blog, we\u0026rsquo;ll focus how GroupDocs\u0026rsquo; online document viewer can benefit one of the world\u0026rsquo;s largest industries: healthcare. [caption id=\u0026ldquo;attachment_3941\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;How GroupDocs Viewer Benefits the Healthcare Industry\u0026rdquo;]\r[/caption]\nHow Does the Healthcare Sector Operate?Organizations in the healthcare sector work with a wide range of information, from patient data, through insurance forms for claims precessing, to sharing financial records, even viewing X-rays and displaying reports, forms and all kinds of files. They need to share, view, and read large amounts of medical records to manage operations efficiently. Disseminating information or reports to doctors, patients, and pharmacies easily and securely is important for a positive customer experience. In a way, viewing and sharing reports is a key task. According to Plunkett Research Ltd. market survey in 2011, the global healthcare market was projected to be $5.5 trillion and expected to grow further. With increase spending in medicare from developed and growing markets, healthcare organizations need cutting edge technology that cater to their needs. Introduction to Online Document Viewer from GroupDocsGroupDocs Viewer is an cloud-based application for sharing and viewing documents. GroupDocs\u0026rsquo; online document viewer tool is software and platform independent, that is, you can view most common file formats online without installing any new software. Our application supports and works with a range of files, from text documents (PDF, Word), reports (Excel), presentations (PPT, ODT), to image files (JPG, GIF, etc.). The rendered document retains the exact quality of the original. The entire process of sharing and viewing documents is smooth. All you need to view a file is a web browser. Let us see how GroupDocs Viewer works in a real-life scenario. How Can GroupDocs Viewer Benefit the Healthcare Sector?GroupDocs\u0026rsquo; online document viewers offers compelling features that can be used to achieve: Collaboration: GroupDocs Viewer simplifies the document viewing process. It makes it easy to share documents and lets readers access files through a browser: they don\u0026rsquo;t have to download files, append them to emails or use special software. Information can be shared between departments (for example medical - admin - accounts) without having to worry about whether everyone has the same software. Multiple File Format Support: Hospitals share lots of different file formats: spreadsheets, documents, images, medical reports, invoices, etc. GroupDocs Viewer is compatible with all common business file formats so one solution lets you share all files. Share a medical report (ODT) with a doctor, without worrying about cross-platform or cross version issues. All they need is a web browser. CMS Integration: Most websites or portals are built using Content Management systems. For example, WordPress, Joomla, Drupal, or ExpressionEngine, and so on. GroupDocs\u0026rsquo; plugins allow you to embed documents to websites or applications. We support a huge range of CRMs to make sure that you can embed files whatever platform you use. With GroupDocs, it is as easy to embed a file and a viewer as it is to embed a YouTube video. Just copy, paste, and publish. API and SDK\u0026rsquo;s: Product companies can leverage GroupDocs API SDK\u0026rsquo;s benefits to integrate the GroupDocs app suite into their applications to make a robust document management platform. Don\u0026rsquo;t code your own document viewer: save ours and save time. Access to Other GroupDocs Apps: Access the other powerful GroupDocs apps: GroupDocs Comparison to compare documents of various types, GroupDocs Assembly to create forms and collect user information, and GroupDocs Signature to collect secure online signatures. Save resources: Storing, sharing and reading documents online saves resources and money. Online files don\u0026rsquo;t get worn, or mislaid in the way paper-copies does, and are more secure. Healthcare organizations require all these features and need to work efficiently. GroupDocs can help.\nSummaryGovernments and state agencies worldwide are beginning to accept the web-based document management model and see the potential it offers. Digital documents are easy to share across teams, even widely dispersed ones. A tool like GroupDocs Viewer also overcomes cross-platform issues so that everyone who needs it has easy access to files. It allows health organizations to move towards a paperless environment and, at the same time, engage in document collaboration with GroupDocs\u0026rsquo; online document viewer. ","permalink":"https://blog.groupdocs.com/viewer/online-document-viewer-from-groupdocs-for-the-healthcare-industry/","summary":"The technology research firm Gartner states that the demand for SaaS (Software as a Service) products will continue to grow in a recent report (February, 2013). The report highlights that some of the top segments for the SaaS market will be:\nOffice suites, IT operations management and storage management. Corporates understand the need to stay abreast technology trends and are taking the necessary steps to move towards cloud or web-based document management systems.","title":"Online Document Viewer from GroupDocs: How It Works for the Healthcare Industry"},{"content":"SugarCRM is an open-platform web-based customer relationship management system which has an on-demand cloud platform, Sugar On-Demand. In a previous article, we discussed how to create and use a plugin for SugarCRM, now we will discuss Sugar On-Demand\u0026rsquo;s features. We will use the GroupDocs GDrive plugin as an example. [caption id=\u0026ldquo;attachment_3933\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;How to Сreate a Custom GroupDocs Plugin for Sugar On-Demand\u0026rdquo;]\r[/caption]\nRequirements PHP 5.3 SugarCRM On-Demand account SugarCRM On-Demand application GroupDocs account Development of GroupDocs GDriveTwo main features of Sugar On-Demand are: All functions relating to the file system are denied. Sugar On-Demand is a cloud service so all plugin files must be installed from a single package because you will not be able to override deleted files during deployment. Using the JavaScript SDK On the on-demand version of SugarCRM we can\u0026rsquo;t use our PHP SDK because all functions that work with file system are prohibited. Also it\u0026rsquo;s impossible to override installed files which is why we have to use only one package for the installation, and the installed plugin doesn\u0026rsquo;t need to deploy. In the Gdrive plugin we use the JavaScript SDK which is minimized and located in the plugin root folder/_Dashlets/gd_GroupDocsDashlet/_gd_GroupDocsDashletLibs.tpl file. You can view and download GroupDocs JavaScript SDK from GitHub. In this file we have also minimized CSS styles for the plugin UI. In the _plugin root folder/Dashlets/gd_GroupDocsDashlet/_gd_GroupDocsDashletScript.tpl we have all the JavaScript functions that provide the plugin UI\u0026rsquo;s connectivity to the JavaScript SDK. For the on-demand version of the plugin we don\u0026rsquo;t use Dashlet: the entire user-side UI is in the Module detail view page (if a user clicks on GroupDocs in the main menu, they will see the user side UI). Minimized Template File For this reason we have the minimized template file _plugin root folder/views/gd_GroupDocsEditView.tpl.\n\u0026lt;div\u0026gt; \u0026lt;!-- GroupDocs plugin: begin HTML --\u0026gt; \u0026lt;div id=\u0026#34;gd-logo\u0026#34;\u0026gt;\u0026lt;/div\u0026gt; \u0026lt;div id=\u0026#34;gd-widget-container\u0026#34;\u0026gt; \u0026lt;h4\u0026gt;My GroupDocs\u0026lt;/h4\u0026gt; \u0026lt;div id=\u0026#34;gd-widget-wrapper\u0026#34;\u0026gt; \u0026lt;div id=\u0026#34;currentPath\u0026#34; style=\u0026#34;margin: 10px 0px 0px 50px; font-size: 14px; color: blue;\u0026#34;\u0026gt;/\u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;gd-widget\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;GroupDocsWidget\u0026#34;\u0026gt; \u0026lt;!-- Folders --\u0026gt; \u0026lt;h5\u0026gt;Folders:\u0026lt;/h5\u0026gt; \u0026lt;div class=\u0026#34;itemList\u0026#34; id=\u0026#34;foldersContainer\u0026#34;\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;h5\u0026gt;Files:\u0026lt;/h5\u0026gt; \u0026lt;!-- Files --\u0026gt; \u0026lt;div class=\u0026#34;itemList\u0026#34; id=\u0026#34;filesContainer\u0026#34;\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;h5\u0026gt;Download/Delete file:\u0026lt;/h5\u0026gt; \u0026lt;div\u0026gt; \u0026lt;form name=\u0026#34;delete\u0026#34; action=\u0026#34;index.php?module=gd\\_GroupDocs\u0026amp;amp;action=delete\u0026#34; method=\u0026#34;post\u0026#34;\u0026gt; \u0026lt;input type=\u0026#34;hidden\u0026#34; name=\u0026#34;deleteGuid\u0026#34; id=\u0026#34;deleteGuid\u0026#34;\u0026gt; \u0026lt;input class=\u0026#34;gd-rmv-btn\u0026#34; type=\u0026#34;button\u0026#34; id=\u0026#34;deleteBtn\u0026#34;\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div\u0026gt; \u0026lt;form name=\u0026#34;download\u0026#34; action=\u0026#34;index.php?module=gd\\_GroupDocs\u0026amp;amp;action=download\u0026#34; method=\u0026#34;post\u0026#34;\u0026gt; \u0026lt;input type=\u0026#34;hidden\u0026#34; name=\u0026#34;fileGuid\u0026#34; id=\u0026#34;downloadGuid\u0026#34;\u0026gt; \u0026lt;input class=\u0026#34;gd-dl-btn\u0026#34; type=\u0026#34;button\u0026#34; id=\u0026#34;downloadBtn\u0026#34;\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;h5\u0026gt;Copy/Move file:\u0026lt;/h5\u0026gt; \u0026lt;div\u0026gt; \u0026lt;form name=\u0026#34;copy\u0026#34; action=\u0026#34;index.php?module=gd\\_GroupDocs\u0026amp;amp;action=copy\u0026#34; method=\u0026#34;post\u0026#34;\u0026gt; \u0026lt;label for=\u0026#34;destPath\u0026#34;\u0026gt;Folder in which you want to copy file\u0026lt;/label\u0026gt; \u0026lt;br\u0026gt; \u0026lt;input type=\u0026#34;text\u0026#34; id=\u0026#34;destPath\u0026#34; name=\u0026#34;destPath\u0026#34; class=\u0026#34;gd-custom-input-text\u0026#34;\u0026gt; \u0026lt;input type=\u0026#34;hidden\u0026#34; id=\u0026#34;srcPath\u0026#34; name=\u0026#34;srcPath\u0026#34;\u0026gt; \u0026lt;input type=\u0026#34;hidden\u0026#34; name=\u0026#34;copyGuid\u0026#34;\u0026gt; \u0026lt;input type=\u0026#34;hidden\u0026#34; name=\u0026#34;do\u0026#34;\u0026gt; \u0026lt;input class=\u0026#34;gd-custom-btn-gray\u0026#34; name=\u0026#34;copyButton\u0026#34; type=\u0026#34;button\u0026#34; value=\u0026#34;Copy\u0026#34; id=\u0026#34;copyBtn\u0026#34;\u0026gt; \u0026lt;input class=\u0026#34;gd-custom-btn-gray\u0026#34; name=\u0026#34;moveButton\u0026#34; type=\u0026#34;button\u0026#34; value=\u0026#34;Move\u0026#34; id=\u0026#34;moveBtn\u0026#34;\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;!-- start email --\u0026gt; \u0026lt;div\u0026gt; \u0026lt;form action=\u0026#34;/index.php?module=gd\\_GroupDocs\u0026amp;amp;action=sendEmail\u0026#34; method=\u0026#34;post\u0026#34; id=\u0026#34;sendForm\u0026#34; name=\u0026#34;sendForm\u0026#34;\u0026gt; \u0026lt;h5\u0026gt;Choose receivers:\u0026lt;/h5\u0026gt; \u0026lt;div\u0026gt; \u0026lt;select multiple=\u0026#34;\u0026#34; id=\u0026#34;emailList\u0026#34; name=\u0026#34;emailList\\[\\]\u0026#34; class=\u0026#34;gd-email-receivers\u0026#34;\u0026gt; \u0026lt;!-- Add items in JavaScript --\u0026gt; \u0026lt;/select\u0026gt; \u0026lt;input class=\u0026#34;gd-custom-btn-gray\u0026#34; type=\u0026#34;button\u0026#34; value=\u0026#34;Add receiver\u0026#34; id=\u0026#34;addEmail\u0026#34;\u0026gt; \u0026lt;label for=\u0026#34;neverExp\u0026#34; style=\u0026#34;display: block\u0026#34;\u0026gt; \u0026lt;input type=\u0026#34;checkbox\u0026#34; id=\u0026#34;neverExp\u0026#34; name=\u0026#34;neverExp\u0026#34; checked=\u0026#34;\u0026#34;\u0026gt; Never expires \u0026lt;/label\u0026gt; \u0026lt;label for=\u0026#34;datePicker\u0026#34; style=\u0026#34;display: block\u0026#34;\u0026gt; Expiration date: \u0026lt;input type=\u0026#34;text\u0026#34; id=\u0026#34;datePicker\u0026#34; name=\u0026#34;datePicker\u0026#34;\u0026gt; \u0026lt;img src=\u0026#34;modules/gd\\_GroupDocs/images/cal.gif\u0026#34; id=\u0026#34;date\u0026#34;/\u0026gt; \u0026lt;/label\u0026gt; \u0026lt;input type=\u0026#34;button\u0026#34; value=\u0026#34;Send emails\u0026#34; id=\u0026#34;sendEmail\u0026#34; class=\u0026#34;gd-custom-btn-orange gd-email-receivers-btn\u0026#34;\u0026gt; \u0026lt;input type=\u0026#34;hidden\u0026#34; value=\u0026#34;\u0026#34; name=\u0026#34;attach\u0026#34; id=\u0026#34;attach\u0026#34;\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;!-- end email --\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;gd-widget\u0026#34;\u0026gt; \u0026lt;h5\u0026gt;Create new folder:\u0026lt;/h5\u0026gt; \u0026lt;div\u0026gt; \u0026lt;input class=\u0026#34;gd-custom-input-text\u0026#34; placeholder=\u0026#34;Enter folder name\u0026#34; type=\u0026#34;text\u0026#34; id=\u0026#34;folderInput\u0026#34;\u0026gt; \u0026lt;input class=\u0026#34;gd-custom-btn-gray\u0026#34; name=\u0026#34;create\u0026#34; type=\u0026#34;button\u0026#34; value=\u0026#34;Create folder\u0026#34; id=\u0026#34;createBtn\u0026#34;\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;h5\u0026gt;Upload local file:\u0026lt;/h5\u0026gt; \u0026lt;label class=\u0026#34;filebutton gd-custom-btn-gray\u0026#34;\u0026gt; Browse \u0026lt;input type=\u0026#34;file\u0026#34; id=\u0026#34;uploadfile\u0026#34;\u0026gt; \u0026lt;/label\u0026gt; \u0026lt;input type=\u0026#34;text\u0026#34; id=\u0026#34;filefield-text\u0026#34; value=\u0026#34;No file selected\u0026#34;\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div\u0026gt;\u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;!-- GroupDocs plugin: end HTML --\u0026gt;\u0026lt;/div\u0026gt; This file contains simple HTML which generates the UI. To override the standard view of the plugin\u0026rsquo;s edit list and edit view pages, we use the plugin root folder/views/edit.view.php and plugin root folder/views/edit.list.php files.\nThe Edit Plugin Page - Admin Only The edit plugin page is the plugin root folder/views/view.edit.php. This is the admin side of the plugin and only admins have access to it.\n\u0026lt;?php if (!defined(\u0026#39;sugarEntry\u0026#39;) || !sugarEntry) die(\u0026#39;Not A Valid Entry Point\u0026#39;); /\\* \\* \\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\* \\* SugarCRM Community Edition is a customer relationship management program developed by \\* SugarCRM, Inc. Copyright (C) 2004-2012 SugarCRM Inc. \\* \\* This program is free software; you can redistribute it and/or modify it under \\* the terms of the GNU Affero General Public License version 3 as published by the \\* Free Software Foundation with the addition of the following permission added \\* to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK \\* IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY \\* OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. \\* \\* This program is distributed in the hope that it will be useful, but WITHOUT \\* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS \\* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more \\* details. \\* \\* You should have received a copy of the GNU Affero General Public License along with \\* this program; if not, see http://www.gnu.org/licenses/ or write to the Free \\* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA \\* 02110-1301 USA. \\* \\* You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road, \\* SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com. \\* \\* The interactive user interfaces in modified source and object code versions \\* of this program must display Appropriate Legal Notices, as required under \\* Section 5 of the GNU Affero General Public License version 3. \\* \\* In accordance with Section 7(b) of the GNU Affero General Public License version 3, \\* these Appropriate Legal Notices must retain the display of the \u0026#34;Powered by \\* SugarCRM\u0026#34; logo. If the display of the logo is not reasonably feasible for \\* technical reasons, the Appropriate Legal Notices must display the words \\* \u0026#34;Powered by SugarCRM\u0026#34;. \\* \\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\* \\*/ /\\* \\* \\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\* \\* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc. \\* All Rights Reserved. \\* Contributor(s): \\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_.. \\* \\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\* \\*/ class gd\\_GroupDocsViewEdit extends ViewEdit { function gd\\_GroupDocsViewEdit() { parent::ViewEdit(); } /\\*\\* \\* This method will handle the actual display logic of the view. \\*/ function display() { global $current\\_user; if ($current\\_user-\u0026gt;is\\_admin == \u0026#34;1\u0026#34;) { $ss = new Sugar\\_Smarty(); $ss-\u0026gt;assign(\u0026#39;savedText\u0026#39;, SugarCleaner::cleanHtml($this-\u0026gt;savedText)); $ss-\u0026gt;assign(\u0026#39;saving\u0026#39;, $this-\u0026gt;dashletStrings\\[\u0026#39;LBL\\_SAVING\u0026#39;\\]); $ss-\u0026gt;assign(\u0026#39;saved\u0026#39;, $this-\u0026gt;dashletStrings\\[\u0026#39;LBL\\_SAVED\u0026#39;\\]); $ss-\u0026gt;assign(\u0026#39;id\u0026#39;, $this-\u0026gt;id); $ss-\u0026gt;assign(\u0026#39;height\u0026#39;, $this-\u0026gt;height); $gd = BeanFactory::getBean(\u0026#39;gd\\_GroupDocs\u0026#39;); $config = $gd-\u0026gt;retrieve\\_by\\_string\\_fields(array(\u0026#39;deleted\u0026#39; =\u0026gt; \u0026#39;0\u0026#39;)); // TODO: If user is not admin?? $cid = $config-\u0026gt;fetched\\_row\\[\u0026#39;cid\u0026#39;\\]; $pkey = $config-\u0026gt;fetched\\_row\\[\u0026#39;pkey\u0026#39;\\]; $bpath = $config-\u0026gt;fetched\\_row\\[\u0026#39;bpath\u0026#39;\\]; $str = $ss-\u0026gt;fetch(\u0026#39;modules/gd\\_GroupDocs/views/gd\\_GroupDocsEditView.tpl\u0026#39;); $libs = new Sugar\\_Smarty(); $libsStr = $libs-\u0026gt;fetch(\u0026#39;modules/gd\\_GroupDocs/Dashlets/gd\\_GroupDocsDashlet/gd\\_GroupDocsDashletLibs.tpl\u0026#39;); $script = new Sugar\\_Smarty(); $script-\u0026gt;assign(\u0026#39;moduleName\u0026#39;, \u0026#39;gd\\_GroupDocs\u0026#39;); if (isset($cid) \u0026amp;\u0026amp; !empty($cid) \u0026amp;\u0026amp; $cid != null \u0026amp;\u0026amp; isset($pkey) \u0026amp;\u0026amp; !empty($pkey) \u0026amp;\u0026amp; $pkey != null \u0026amp;\u0026amp; isset($bpath) \u0026amp;\u0026amp; !empty($bpath) \u0026amp;\u0026amp; $bpath != null) { $script-\u0026gt;assign(\u0026#39;cid\u0026#39;, $cid); $script-\u0026gt;assign(\u0026#39;pkey\u0026#39;, $pkey); $script-\u0026gt;assign(\u0026#39;bpath\u0026#39;, $bpath); } else { $script-\u0026gt;assign(\u0026#39;error\u0026#39;, \u0026#39;Error! Please enter credentials in GroupDocs settings!\u0026#39;); } $scriptStr = $script-\u0026gt;fetch(\u0026#39;modules/gd\\_GroupDocs/Dashlets/gd\\_GroupDocsDashlet/gd\\_GroupDocsDashletScript.tpl\u0026#39;); $content = $str; $js = $libsStr; $js .= $scriptStr; print \u0026#39;\u0026lt;script\u0026gt;\u0026#39;; // delay cos \u0026#39;sugarcrm form\u0026#39; is actualy builded by js print \u0026#39;setTimeout(function(){\u0026#39;; // create node, there will be the list print \u0026#39;var content = \\\\\u0026#39;\u0026#39; . $content . \u0026#39;\\\\\u0026#39;;\u0026#39;; print \u0026#39;$(\u0026#34;#detailpanel\\_1\u0026#34;).append(content);\u0026#39;; print \u0026#39;},1500);\u0026#39;; print \u0026#39;\u0026lt;/script\u0026gt;\u0026#39;; print $js; parent::display(); } else { print \u0026#39;\u0026lt;script\u0026gt;\u0026#39;; // delay cos \u0026#39;sugarcrm form\u0026#39; is actualy builded by js print \u0026#39;setTimeout(function(){\u0026#39;; // create node, there will be the list print \u0026#39;$(\u0026#34;#content\u0026#34;).append(\\\\\u0026#39;Only administrator can see this block\\\\\u0026#39;);\u0026#39;; print \u0026#39;},1500);\u0026#39;; print \u0026#39;\u0026lt;/script\u0026gt;\u0026#39;; parent::display(); } } } View List Page - User View The view list page is the plugin root folder/views/view.list.php file. All users can access this page where they will see folders and files which are shared for this user.\n\u0026lt;?php /\\*\\* \\* Created by JetBrains PhpStorm. \\* User: liosha \\* Date: 12.09.13 \\* Time: 17:45 \\*/ if(!defined(\u0026#39;sugarEntry\u0026#39;) || !sugarEntry) die(\u0026#39;Not A Valid Entry Point\u0026#39;); class gd\\_GroupDocsViewList extends SugarView{ function gd\\_GroupDocsViewList() { parent::SugarView(); } public function display() { $libs = new Sugar\\_Smarty(); $libsStr = $libs-\u0026gt;fetch(\u0026#39;modules/gd\\_GroupDocs/Dashlets/gd\\_GroupDocsDashlet/gd\\_GroupDocsDashletLibs.tpl\u0026#39;); $script = new Sugar\\_Smarty(); $script-\u0026gt;assign(\u0026#39;moduleName\u0026#39;, \u0026#39;gd\\_GroupDocs\u0026#39;); $gd = BeanFactory::getBean(\u0026#39;gd\\_GroupDocs\u0026#39;); $config = $gd-\u0026gt;retrieve\\_by\\_string\\_fields(array(\u0026#39;deleted\u0026#39; =\u0026gt; \u0026#39;0\u0026#39;)); // TODO: If user is not admin?? $cid = $config-\u0026gt;fetched\\_row\\[\u0026#39;cid\u0026#39;\\]; $pkey = $config-\u0026gt;fetched\\_row\\[\u0026#39;pkey\u0026#39;\\]; $bpath = $config-\u0026gt;fetched\\_row\\[\u0026#39;bpath\u0026#39;\\]; if (isset($cid) \u0026amp;\u0026amp; !empty($cid) \u0026amp;\u0026amp; $cid != null \u0026amp;\u0026amp; isset($pkey) \u0026amp;\u0026amp; !empty($pkey) \u0026amp;\u0026amp; $pkey != null \u0026amp;\u0026amp; isset($bpath) \u0026amp;\u0026amp; !empty($bpath) \u0026amp;\u0026amp; $bpath != null) { $script-\u0026gt;assign(\u0026#39;cid\u0026#39;, $cid); $script-\u0026gt;assign(\u0026#39;pkey\u0026#39;, $pkey); $script-\u0026gt;assign(\u0026#39;bpath\u0026#39;, $bpath); } else { $script-\u0026gt;assign(\u0026#39;error\u0026#39;, \u0026#39;Error! Please enter credentials in GroupDocs settings!\u0026#39;); } $scriptStr = $script-\u0026gt;fetch(\u0026#39;modules/gd\\_GroupDocs/Dashlets/gd\\_GroupDocsDashlet/gd\\_GroupDocsDashletScript.tpl\u0026#39;); $js = $libsStr; $js .= $scriptStr; $ss = new Sugar\\_Smarty(); $str = $ss-\u0026gt;fetch(\u0026#39;modules/gd\\_GroupDocs/views/gd\\_GroupDocsEditView.tpl\u0026#39;); $content = $str; print \u0026#39;\u0026lt;script\u0026gt;\u0026#39;; // delay cos \u0026#39;sugarcrm form\u0026#39; is actualy builded by js print \u0026#39;setTimeout(function(){\u0026#39;; // create node, there will be the list print \u0026#39;var content = \\\\\u0026#39;\u0026#39; . $content . \u0026#39;\\\\\u0026#39;;\u0026#39;; print \u0026#39;$(\u0026#34;#content\u0026#34;).append(content);\u0026#39;; print \u0026#39;},1500);\u0026#39;; print \u0026#39;\u0026lt;/script\u0026gt;\u0026#39;; print $js; parent::display(); } } Sharing - Admin Only For sharing functionality we created a separate bin which generates one more table in the database - \u0026ldquo;gd_groupdocs_shared\u0026rdquo; - and a separate module which provides only sharing functionality. Only admins can access the module. The gd_GroupDocs_Sharing module is almost the same as gd_GroupDocs but doesn\u0026rsquo;t have the user side UI or the different admin side UI. That\u0026rsquo;s all: the plugin\u0026rsquo;s created. This plugin can be installed as a common plugin for other versions of SugarCRM.\n","permalink":"https://blog.groupdocs.com/total/how-to-create-plugin-for-sugar-on-demand-using-groupdocs-gdrive-plugin-example/","summary":"SugarCRM is an open-platform web-based customer relationship management system which has an on-demand cloud platform, Sugar On-Demand. In a previous article, we discussed how to create and use a plugin for SugarCRM, now we will discuss Sugar On-Demand\u0026rsquo;s features. We will use the GroupDocs GDrive plugin as an example. [caption id=\u0026ldquo;attachment_3933\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;How to Сreate a Custom GroupDocs Plugin for Sugar On-Demand\u0026rdquo;]\r[/caption]\nRequirements PHP 5.3 SugarCRM On-Demand account SugarCRM On-Demand application GroupDocs account Development of GroupDocs GDriveTwo main features of Sugar On-Demand are: All functions relating to the file system are denied.","title":"How to Сreate a Plugin for Sugar On-Demand Using GroupDocs GDrive Plugin Example"},{"content":"When we released GroupDocs.Viewer for .NET, we got lots of questions from SharePoint users about whether it could be used to build a SharePoint document viewer. Finally, the answer is yes: our online document viewer allows integration with SharePoint web applications. Moreover, SharePoint websites using GroupDocs.Viewer for .NET can also be used for cross-domain document viewing. [caption id=\u0026ldquo;attachment_3916\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo;]\r[/caption] Just follow these simple step-by-step instructions to embed our online document viewer in your SharePoint websites as a Web Part: Requirements\nServer running the GroupDocs document viewer service Microsoft SharePoint 2010 Microsoft Visual Studio 2010 The following steps illustrate a typical process for creating of a Web Part which can be used to run the GroupDocs document viewer service: 1. Open Visual Studio 2010 as administrator and create a new Empty SharePoint Project. Note: If you have not run as an administrator, then Visual Studio will prompt you to restart using different credentials as shown below: 2. Specify the local SharePoint server and then click Finish. Note: You cannot use a SharePoint instance outside your workstation. All the necessary files are created as shown below: 3. To create a Web Part in the project, click Web Part and then click Add. The necessary files needed for the Web Part are created as shown. 4. We are using WebPartConsumer.cs to write functions to access the GroupDocs document viewer service. Add the following lines to the WebPartConsumer.cs file:\nprotected override void RenderContents(HtmlTextWriter writer) { // Fetch JavaScript Libraries string scriptLibraries = GetHtmlPageContents(\u0026#34;http://localhost:2020/Home/GetJavaScriptLibraries\u0026#34;); // Fetches the inline Scripts string inlineDocPreviewScript = GetHtmlPageContents(\u0026#34;http://localhost:2020/Home/GetInlineDocumentScript\u0026#34;); writer.Write(scriptLibraries); writer.Write(\u0026#34; \u0026#34;); writer.Write(inlineDocPreviewScript); // Renders the contents to the page. base.RenderContents(writer); } //Function to get the contents from a given URL private static string GetHtmlPageContents(string strURL) { String strResult; WebResponse objResponse; WebRequest objRequest = HttpWebRequest.Create(strURL); objResponse = objRequest.GetResponse(); using (StreamReader sr = new StreamReader(objResponse.GetResponseStream())) { strResult = sr.ReadToEnd(); } return strResult; } 5. Now, deploy the project. The Output screen is displayed: On the Output screen, you can see that the solution ViewConsumer.wsp is successfully deployed to the SharePoint server. 6. To view the control in a local SharePoint instance, you have to add it to your page as a web part. 7. To add the control, go to a page intended for editing. 8. Add the Web Part by using the option Add a Web Part as shown below. 9. The Web Part (WebPartConsumer) is listed as shown below. 10. Click Add to add the Web Part to the page. 11. Click Stop Editing to save the page. After saving, you can see the WebPart, WebPartConsumer, in action as shown below. Thus, the GroupDocs document viewer service, integrated in a web application, is consumed in a SharePoint website.\n","permalink":"https://blog.groupdocs.com/viewer/how-to-build-sharepoint-document-viewer-using-groupdocs-viewer-for-net/","summary":"When we released GroupDocs.Viewer for .NET, we got lots of questions from SharePoint users about whether it could be used to build a SharePoint document viewer. Finally, the answer is yes: our online document viewer allows integration with SharePoint web applications. Moreover, SharePoint websites using GroupDocs.Viewer for .NET can also be used for cross-domain document viewing. [caption id=\u0026ldquo;attachment_3916\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo;]\r[/caption] Just follow these simple step-by-step instructions to embed our online document viewer in your SharePoint websites as a Web Part: Requirements","title":"How to Build a SharePoint Document Viewer Using GroupDocs.Viewer for .NET"},{"content":"The Internet has transformed our lives. We buy things with click of a mouse, be it entertainment, grocery, or accessories. The consumer-web relationship will only grow in the near future. As a result, enterprises and small, as well as start-ups understand the need to engage and collaborate with consumers to get an edge and thrive. So, the need for online document management systems arose. Online document management systems allow you to view and share documents, increase productivity, facilitate collaboration, and save cost. [caption id=\u0026ldquo;attachment_3875\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;View and Annotate Documents Online with GroupDocs\u0026rdquo;]\r[/caption] Document storage and security are widely debated concerns. But cloud computing offers compelling features, and organizations realize the importance of online document management and are adapting to the change. GroupDocs\u0026rsquo; online document management apps let you go paperless, share and annotate PDF and other documents, collect signatures and user information, and perform a number of other tasks (it\u0026rsquo;s a powerful package of six apps). From content sharing to preventing unauthorized use of data, GroupDocs provides optimal value. There\u0026rsquo;s no need to look for standalone products to meet a specific need. Use GroupDocs\u0026rsquo; app suite and benefit from document collaboration. We\u0026rsquo;ll see how the combination of GroupDocs\u0026rsquo; apps works for professionals working in the banking sector. Data analysts and investment bankers study company reports, financial statements and stock prices meticulously to predict future growth and publish projection reports. Research and collaboration with different groups are a part of their job. Based on their reports, investors invest in the stocks they suggest have the best chance to give a good return. With stiff competition, reaching out to potential customers and providing valuable information to get business is important. How can GroupDocs help?\nPreparing Reports – Online Document Annotation GroupDocs Annotation is an online annotation app that lets you review and annotate PDF, word-processing files and images. Upload the document and invite colleagues to review the document. Team member view the comments of peers online, annotate documents using a flexible set of annotation options, resolve conflicts and help publishing teams store comments in a single file. Editors and writers incorporate suggestions and publish content. This way you save time, increase productivity, and avoid repetition. Now you must be wondering, how can GroupDocs Annotation benefit me? Every document development (reports, white papers, research articles, etc.) goes through a review cycle to ensure that the document meets industry and organizational standards. Consider a situation where you have done a fundamental analysis of an oil major. You\u0026rsquo;ve spent months researching and meeting different professionals and have put together all the information that an agency or a investor firm need for their decision making. It is certain that you\u0026rsquo;d want it be reviewed multiple times by in-house departments before making it publicly available to ensure consistency and that the factual data is correct. GroupDocs\u0026rsquo; PDF annotation app fosters document collaboration and makes it easy to communicate. Share a link to the document and team members can join the collaborative review process from anywhere in the world. It is extremely beneficial for large projects where client interaction is a must. Comments are visible to all invited parties and you manage the document from within your GroupDocs account. Collaborate real-time and get feedback faster.\nSharing Data – Online Document Viewer GroupDocs Viewer is a web-based app that lets you read, share, and view documents online with a browser. Share different document types (PDF, DOCX, XLS, etc.) with users effectively from within your website or company portal. No new software installations is needed. The online document viewer lets you embed documents and is platform independent. As a banker, you see the potential: disseminate reports faster, attract foreign investors and acquire business. Sharing information is easy and your customers do not have to rely on any external software to view data. If you are using a content management system (like WordPress or Joomla) to publish news or updates, GroupDocs\u0026rsquo; online document viewer allows you to embed documents for visitors to view and read. Reach your target audience and share Excel files, PDF, Word files, or PowerPoint presentations projecting a firm\u0026rsquo;s growth trajectory in minutes. Your readers can search text, use thumbnails to navigate to a certain section of a report, print or download the document to read it offline (these features can also be turned off to safeguard the data). All that is possible with our all-in-one online document viewer.\nSummaryProfessionals in the banking sector benefit from GroupDocs\u0026rsquo; online document management apps in several ways: GroupDocs Annotation speeds up document review by allowing teams to mark up documents in real time, online, and discuss suggested changes to resolve conflicts instantly. GroupDocs Viewer allows them to share reports online quickly and easily in a way that allows their readers to access and view information without installing software or depending on any type of software other than a web browser. ","permalink":"https://blog.groupdocs.com/viewer/view-annotate-documents-online-groupdocs-document-management-apps/","summary":"The Internet has transformed our lives. We buy things with click of a mouse, be it entertainment, grocery, or accessories. The consumer-web relationship will only grow in the near future. As a result, enterprises and small, as well as start-ups understand the need to engage and collaborate with consumers to get an edge and thrive. So, the need for online document management systems arose. Online document management systems allow you to view and share documents, increase productivity, facilitate collaboration, and save cost.","title":"View and Annotate Documents Online with GroupDocs' Document Management Apps"},{"content":"GroupDocs offers a full set of document management tools for SugarCRM: we\u0026rsquo;ve developed a bunch of plugins which help you use Viewer, Annotation, Assembly, Comparison and Signature apps in SugarCRM. This article gives some recommendations on how to create your own custom plugin for SugarCRM. We will use the GroupDocs Viewer plugin for SugarCRM as an example. SugarCRM is an open-platform web-based CRM solution which has an on-demand cloud platform. Today we show you how to create an on-site version plugin. Thе next article considers some bottlenecks when creating plugins using the SugarCRM cloud platform. [caption id=\u0026ldquo;attachment_3861\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;How to Create a Custom GroupDocs Plugin for SugarCRM\u0026rdquo;]\r[/caption]\nRequirements PHP 5.3 Installed SugarCRM GroupDocs account Plugin Creation Before you start creating a plugin, keep in mind that all data and all parameters such as displayed fields (including field parameters), relationships etc. are declared as arrays in SugarCRM. Also make sure that your plugin file starts with the following:\n/\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\* \\* SugarCRM Community Edition is a customer relationship management program developed by \\* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc. \\* \\* This program is free software; you can redistribute it and/or modify it under \\* the terms of the GNU Affero General Public License version 3 as published by the \\* Free Software Foundation with the addition of the following permission added \\* to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK \\* IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY \\* OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. \\* \\* This program is distributed in the hope that it will be useful, but WITHOUT \\* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS \\* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more \\* details. \\* \\* You should have received a copy of the GNU Affero General Public License along with \\* this program; if not, see http://www.gnu.org/licenses/ or write to the Free \\* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA \\* 02110-1301 USA. \\* \\* You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road, \\* SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com. \\* \\* The interactive user interfaces in modified source and object code versions \\* of this program must display Appropriate Legal Notices, as required under \\* Section 5 of the GNU Affero General Public License version 3. \\* \\* In accordance with Section 7(b) of the GNU Affero General Public License version 3, \\* these Appropriate Legal Notices must retain the display of the \u0026#34;Powered by \\* SugarCRM\u0026#34; logo. If the display of the logo is not reasonably feasible for \\* technical reasons, the Appropriate Legal Notices must display the words \\* \u0026#34;Powered by SugarCRM\u0026#34;. \\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*\\*/ Getting Started First of all, create a manifest.php file. This file will contain all information for plugin installation. I\u0026rsquo;m not showing the manifest.php code because of its big size but you can find it on GitHub. The next step is creating icons: we need to create a folder named icons and add all icon files to it. Now let\u0026rsquo;s start creating the plugin functionality. The GroupDocs Viewer plugin embeds files from a GroupDocs account using its GUID. Plugin Functionality Lets start with variables. All variables are specified in vardefs.php.\nThen create a folder named shugarModule which will contain all functionality.\nCreate a language file:\nIn the ShugarModule folder, create a language folder. In this folder, create an application folder with an en_us.lang.php file. You will have the following structure: Create a relationships folder. This folder will contain all the files that describe relationships for the database tables that will be created for the plugin. In the ./relationships directory, all the many-to-many relationships are defined and included in the $dictionary array. The files are stored in ./appropriate folder/\u0026lt;relation_table_name\u0026gt;MetaData.php. Tables are generated based on these definitions. These files are included through the ./modules/TableDictionary.php file. If you create a custom many-to-many relationship, you need to add a reference to the new relationship to the custom/application/Ext/TableDictionary/tabledictionary.php file. If the file doesn\u0026rsquo;t exist, create it. These changes take effect after you clear the Sugar cache by running the Quick Repair and Rebuild option from the Admin Repair screen. The following are the definitions for $dictionary[]. They are similar to the Vardefs. If necessary use that page as a reference. \u0026lt;relationship_table\u0026gt; : The index for this relationship in the $dictionary array table : The name of the table that is created in the database fields : Array containing arrays for each column definition. The join table must have a field for the primary key of each table to be linked, a primary key for the join table itself, a deleted field for relationship unlinking, and a date_modified field to track when the relationship changes. Additional fields can be added to track the role played by the relationship indices : The database indices on the relationship table relationships : Definitions of the relationships between the two tables lhs_modules : The left hand module. Should match $beanList index lhs_table : The left hand table name lhs_key : The key to use from the left table rhs_modules : The right hand module. Should match $beanList index rhs_table : The right hand table name rhs_key : The key to use from the right table relationship_type : Relationship type join_table : Join table used to join items join_key_lhs : Left table key. Should exist in table field definitions above join_key_rhs : Right table key. Should exist in table field definitions aboveWe\u0026rsquo;ve finished with the basic functions needed to for SugarCRM to install and recognize the plugin. Now we can work directly with the module files which do all magic. In the SugarModule folder, create a modules folder, and in this folder create a gdoc_GroupDocs folder. This last folder will be placed in the SugarCRM installation\u0026rsquo;s modules folder and will contain all the plugin files.\nPlace the vardefs.php file, which contains an array with all variables, into this folder.\nCreate a controller.php file. This file will do all the work, and will receive all the requests from the form. This is a controller.php code: if(!defined(\u0026#39;sugarEntry\u0026#39;) || !sugarEntry) die(\u0026#39;Not A Valid Entry Point\u0026#39;); //require\\_once(\u0026#39;include/MVC/Controller/SugarController.php\u0026#39;); class Gd\\_GroupDocsController extends SugarController { var $moduleName = \u0026#39;gd\\_GroupDocs\u0026#39;; public function action\\_index() { return parent::action\\_listview(); } Here we can see the following:\nThe first line is standard for SugarCRM. Then we define a class for the controller which extends the standard SugarCRM controller class. All action names must start with \u0026ldquo;action_\u0026rdquo; and then the action name. To call an action, simply call \u0026ldquo;\u0026amp;action=index\u0026rdquo; in the URL. Also we need views. To edit the plugin page, we need the edit.view.php file.\nCreate a views folder and place edit.views.php in it. The following table lists the metadata definition files found in the modules/module/metadata directory, and a brief description of their purpose within the system.\nFile\nDescription\nadditionalDetails.php\nUsed to render the Popup information displayed when a user hovers the mouse cursor over a row in the List View.\neditviewdefs.php\nUsed to render a record\u0026rsquo;s EditView.\ndetailviewdefs.php\nUsed to render a record\u0026rsquo;s DetailView.\nlistviewdefs.php\nUsed to render the List View display for a module.\nmetafiles.php\nUsed to override the location of the metadata definition file to be used. The EditView, DetailView, List View, and Popup code check for the presence of these files.\npopupdefs.php\nUsed to render and handle the search form and list view in Popups.\nsearchdefs.php\nUsed to render a module\u0026rsquo;s basic and advanced search form displays.\nsidecreateviewdefs.php\nUsed to render a module\u0026rsquo;s quick create form shown in the side shortcut panel.\nsubpaneldefs.php\nUsed to render a module\u0026rsquo;s sub-panels shown when viewing a record\u0026rsquo;s DetailView.\nWe\u0026rsquo;ve finished with the basic files. There can be other files depending on the plugin functionality, but for the purposes of this example, we\u0026rsquo;re done.\nThe Final Plugin Let\u0026rsquo;s look at the installed module structure: [caption id=\u0026ldquo;attachment_3863\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;The installed module structure\u0026rdquo;]\r[/caption] And lets see how our plugin looks like in action. [caption id=\u0026ldquo;attachment_3864\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;The plugin edit page\u0026rdquo;]\r[/caption] An embedded file on the page. [caption id=\u0026ldquo;attachment_3865\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;An embedded file on the page\u0026rdquo;]\r[/caption]\n","permalink":"https://blog.groupdocs.com/total/sugarcrm-plugin-tutorial-using-groupdocs-viewer-api/","summary":"GroupDocs offers a full set of document management tools for SugarCRM: we\u0026rsquo;ve developed a bunch of plugins which help you use Viewer, Annotation, Assembly, Comparison and Signature apps in SugarCRM. This article gives some recommendations on how to create your own custom plugin for SugarCRM. We will use the GroupDocs Viewer plugin for SugarCRM as an example. SugarCRM is an open-platform web-based CRM solution which has an on-demand cloud platform. Today we show you how to create an on-site version plugin.","title":"SugarCRM Plugin Tutorial Using GroupDocs Viewer API"},{"content":"Contao users have a reason to smile. Our team is happy to announce the launch of GroupDocs\u0026rsquo; Annotation plugin for Contao. Our document annotation app, GroupDocs Annotation, is popular with our users because it lets them annotate most popular file formats. Annotate PDF, word processing documents and images from a web-browser. GroupDocs Annotation lets you mark up documents, share feedback, discuss ideas and expedite the document review cycle. Invite colleagues for document review. Your colleagues can choose from a set of annotation options to add comments. This way, GroupDocs Annotation facilitates collaboration between team members. All members of a team can see comments or suggestion made by others. Information publishers then consolidate the feedback saved in a single file and publish the document. So save time, increase productivity, and make document collaboration simpler. [caption id=\u0026ldquo;attachment_3823\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;PDF Annotation Module for Contao Is Released\u0026rdquo;]\r[/caption]\nWhat is GroupDocs Annotation? Is collaborating with different teams for review taking endless hours? Don\u0026rsquo;t worry, GroupDocs Annotation helps you share and review documents online easily and quickly. All you need to do is to upload a document to your GroupDocs account and send invitations to members for document review. Members receive invitation and start annotating documents - text notes, point notes, and strikeouts are some of the options available. It\u0026rsquo;s that simple, avoid exchanging emails and work smarter with GroupDocs Annotation. GroupDocs\u0026rsquo; app lets you communicate and complete tasks faster, whether you\u0026rsquo;re performing online PDF annotation or online JPEG annotation. From product managers to subject matter experts, GroupDocs Annotation makes collaboration across different groups easy and is extremely beneficial when you\u0026rsquo;re communicating with global teams. Streamline the review process and annotate PDF and other files from your desk.\nInstalling The Annotation Plugin Please refer to our online help for detailed instructions on installing and using GroupDocs\u0026rsquo; annotation plugin for Contao. Please Note: to start using GroupDocs Annotation, you need to sign up with GroupDocs first. But don\u0026rsquo;t worry, we provide a free 14 days trial period so you can test the app before purchasing it.\nWhy GroupDocs Annotation? Collaboration fosters innovation - the adage holds true for the modern technology era. Companies are going social to engage with customers and gather information about their likes and dislikes. To make winning products, companies need to understand the buyers\u0026rsquo; behavior, needs, utility, and benefits. To engage with consumers, community forums developed. People share their ideas, or service issues, and suggest ways of improving the platform. Organizations understand their customers\u0026rsquo; needs and model their product based on their feedback. On the similar lines, file sharing and reviewing documents is a key activity in any workplace. Teams want to collaborate faster, resolve issues, and provide suggestions to improve document quality. The process results in faster communication and assist members to participate in collaborative reviewing. Writers and editors working on the project gain too and are not needed to follow-up with every member for review. Comments are visible to everyone in the group and people share ideas, resolve conflicts, and complete tasks efficiently. GroupDocs Annotation is compatible with wide range of file formats and doesn\u0026rsquo;t require software installations. The app allows you to annotate PDF, Excel and other files using only a browser. Academic institutions, healthcare, law firms, banking, advertising are some of the verticals that can leverage the power of GroupDocs Annotation Learning is fun and simple. Engage in document annotation to see the benefits. Try it now! Have interesting experiences to share? Please leave your feedback on GroupDocs\u0026rsquo; products on our forum.\n","permalink":"https://blog.groupdocs.com/total/pdf-annotation-plugin-for-contao-released/","summary":"Contao users have a reason to smile. Our team is happy to announce the launch of GroupDocs\u0026rsquo; Annotation plugin for Contao. Our document annotation app, GroupDocs Annotation, is popular with our users because it lets them annotate most popular file formats. Annotate PDF, word processing documents and images from a web-browser. GroupDocs Annotation lets you mark up documents, share feedback, discuss ideas and expedite the document review cycle. Invite colleagues for document review.","title":"PDF Annotation Plugin for Contao CMS Is Now Available for Download"},{"content":"Progressive Enhancement As for a lot of other big companies, at GroupDocs.com user experience is the most important thing taken into account when developing huge web products. The reasons are quite obvious. It really comes down to the design and user groups a web app targets when choosing cross-browser support and priorities. There is a web development practice called “Progressive Enhancement” which stands behind the idea that all users should have identical experience with websites. Unfortunately, nothing is ever ideal in this world and as much as a developer might try to accomplish results driven by this philosophy there are things that are just impossible to make look or act the same way. You have to take into consideration a lot of different things, like the device resolution, hardware, browser vendor and version, and many other factors. Progressive enhancement is a lot like democracy to me because it cannot be realized exactly as its original model, but you try to recreate it and apply its ideas as much as possible in your workflow. [caption id=\u0026ldquo;attachment_3817\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;584\u0026rdquo; caption=\u0026ldquo;Modernizr JavaScript Library\u0026rdquo;]\r[/caption]\nWhat Is Modernizr All About? nullis a feature detection JavaScript library for HTML5 and CSS3. In other words, it checks if the client’s browser supports the new goodies that HTML5 and CSS3 have in their bags. One of the reasons I’ve decided to write about this library is the fact that some people misunderstand what exactly Modernizr does. The wrong assumption is that Modernizr is doing browser vendor detection or more specifically that it\u0026rsquo;s sniffing the navigator.userAgent string. Indeed, this was how browser detection was done by devs a few years ago, but it is actually a very unsafe and unreliable way of handling cross-browser issues. It has been considered very poor practice from a long time now. This is mainly due the fact that the navigator.userAgent string contains horribly organized and sometimes wrong data. So that’s why doing straight feature detection in the browser is a much more convenient way to resolve cross-browser issues. It’s more efficient to make someone do a task, proving what he’s capable of, than asking him theoretically, right? This is probably the most core functionality of Modernizr, but there is actually a lot more in it, like enabling HTML5 tags support in legacy browsers such as IE6 - IE8. OK the credit for HTML5 tags support goes to html5shim/html5shiv, but that’s included in Modernizr (by default) so you don’t have to load those separately.\nWhat Is Modernizr\u0026rsquo;s Workflow? At the start of every page load in the client’s browser, Modernizr tests all of the features you’ve asked it to and places corresponding classes on the tag of your document. For features that aren’t supported by the current browser it adds a “no-” prefix to the corresponding class name for that feature. For example if the user is browsing with IE8, where box-shadow isn’t supported, Modernizr adds a “no-boxshadow” class to the document\u0026rsquo;s tag.\nHow Can I Take Advantage of Modernizr? Modernizr JavaScript library is a tool intended to help developers handle progressively enhancing web pages. It really depends on how you want to approach the visual and functional differences in browsers. Let’s go with CSS first.\nCSS3 /\\* CSS3 Gradient in modern browsers \\*/ .gradient-box { background: linear-gradient(to bottom, rgba(226,226,226,1) 0%, rgba(219,219,219,1) 50%, rgba(209,209,209,1) 51%, rgba(254,254,254,1) 100%); } /\\* fallback image for old browsers - IE7, IE8 \\*/ .no-cssgradients .gradient-box { background: url(img/vertical-gradient.png) 0 0 repeat-x; } So if you want to have gradients in IE8 just as in modern browsers, you have to use images. This is what the example above is doing, by using only the class placed by Modenizr on the tag (in this case .no-cssgradients) to override the original style. Pretty simple, isn’t it?\nHTML5 Now let’s move onto doing actually something with the library instead of leaving it to do all the work for us. In the next example I’ll use the “placeholder” form input in HTML5.\nModernizr.load({ test: Modernizr.input.placeholder, yep : \u0026#39;\u0026#39;, // I\u0026#39;ve left the \u0026#34;yep\u0026#34; node just in case you have to include something even when it\u0026#39;s supported, otherwise just skip writing \u0026#34;yep\u0026#34; in there nope: \u0026#39;placeholder-polyfill.js\u0026#39; }); This is a very basic example of the Modernizr.load() method. What it does is as simple as it looks. It checks if the browser supports this feature and if it doesn’t it loads a polyfill for it. Polyfill is a code written in JavaScript to enable (mirror) some HTML5 functionality in older browsers that doesn’t have native support for it. You can write one yourself, but you can also find plenty on the internet. Loading scripts via the .load() method of the library is really fast, because it loads files asynchronously. Just keep in mind that you shouldn\u0026rsquo;t include the whole library if you\u0026rsquo;re going to test just for one or two features in the browsers. There are single solutions for most of what you\u0026rsquo;re going to need on this matter, so just make a quick search.\nHow to Install Modernizr? First of all, let’s download it. Go to the official download page at null As suggested in there, you should use the development version before you start developing since it won’t be easy for you to predict all of the features you’re going to use in the project. The best place to include the script is inside the of the document, right after your stylesheet files. Be sure to include the script there if you’re going to use HTML5 Shiv which needs to be executed before the of the document is loaded. After you do this be sure to place a “class=”no-js” on the tag of your document. This class will be replaced by Modernizr with “class=”js” if JavaScript is enabled in your browser. This is it, you can now start using the library. After you have the big picture of your site, you can write down all of the features you’ll be enhancing progressively and go to the download page again. In the wizard there, check only those features you’ll need so you can optimize your own version of the library before uploading it to the production environment.\nConclusion Modernizr JavaScript library a tool that you don’t usually have a good reason not to use. It really is. It’s a very useful, small and fast library and if you’re going to use HTML5 and CSS3 (which you should use) using it in your project can only be helpful to you. There are really good reasons for why the biggest companies in IT like Twitter, Google and Microsoft are using it for their websites right? AR\n","permalink":"https://blog.groupdocs.com/total/modernizr-feature-detection-javascript-library/","summary":"Progressive Enhancement As for a lot of other big companies, at GroupDocs.com user experience is the most important thing taken into account when developing huge web products. The reasons are quite obvious. It really comes down to the design and user groups a web app targets when choosing cross-browser support and priorities. There is a web development practice called “Progressive Enhancement” which stands behind the idea that all users should have identical experience with websites.","title":"Introducing Modernizr: a Feature Detection JavaScript Library"},{"content":"Introduction A few years ago, HTML 5 still wasn’t very well supported by most popular browsers so web sites were created mostly with XHTML or HTML4. I still have a folder on my machine filled with HTML templates for both XTML and HTML 4. Inside of it there are also templates for newsletters, micro-sites, responsive templates and whatnot. All of them were built by taking code from 2 or 3 different templates and look like Frankenstein\u0026rsquo;s code monster. Which is understandable, because there are several doctypes in HTML4 and XHTML which developers had to take into account. Setting up a template for a new project wasn’t the fastest thing to do. But now, with HTML5, things are different. [caption id=\u0026ldquo;attachment_3806\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;HTML5 Boilerplate Template\u0026rdquo;]\r[/caption] HTML5 Boilerplate is a basic template for starting a new web project. It is used by some of the largest and most popular websites and companies for their websites and services, like Google, Microsoft and Nike. Boilerplate template is used in every GroupDocs related project as well, even for this blog.\nWhere to Get It? You can download the full version of Boilerplate template from the official website: http://html5boilerplate.com/. You can also can build your own optimized version of the template, choosing only the files you really need for your project here http://www.initializr.com/ For this tutorial I’ll use Initializr\u0026rsquo;s custom builder. I’ll go with the “Classic H5BP\u0026quot; settings for this one.\nWhat’s Inside It? HTML Boilerplate template has really simple structure built from few folders for your project’s CSS, images and scripts. It alos includes the most popular CSS and JS frameworks, like jQuery, modernizr and Normalize. The full version has a lot of other useful things, but I’ll stick to the core files of the template and leave the rest to your own investigations. Let’s look what’s in the index.html file. Right after the HTML5 doctype, you\u0026rsquo;ll see a few \u0026lt;!--\\[if lt IE …\\]\u0026gt; statements. This is very useful feature and I\u0026rsquo;ve used it in almost every project I\u0026rsquo;ve worked on in the last 3 years or so. Those statements basically put specific classes on the element depending on which IE version the client is using: .ie7, .ie8 etc. Those classes are very helpful when you need to override a CSS rule to fix a bug in IE7 for example. The content in the of the document should be pretty self-explanatory. There a few tags for the document’s charset type, viewport and description. Heads up: Don’t forget to edit the documents . Of course we have the CSS files included and after them we have another IE specific statement which runs HTML5shiv for legacy browsers which don’t have support for the new tags in HTML5 (header, footer, nav, etc.). Keep in mind that you might want to get rid of\nmeta http-equiv=\u0026#34;X-UA-Compatible\u0026#34; content=\u0026#34;IE=edge,chrome=1 before pushing the project to live, because it’s an option created by Microsoft mainly for development and testing purposes.\nJavaScript At the start of the you can see one more statement for enabling Chrome Frame in legacy browsers. I usually keep this since it might improve the user experience for someone out there. At the end of the , several scripts are loaded, make sure they stay there! The first two scripts load jQuery. The first one tries to load the library from Google’s servers and if it fails to do so the next script loads a local copy of jQuery to prevent potential problems with the site’s functionality. After those 2, plugins.js and main.js swhould be included. Main.js is an empty file ready for your own JavaScript, and plugins.js is a file used to initialize plugins. And at the end of the file, you\u0026rsquo;ll find a Google Analytics script template where you can insert your GA ID to enable tracking. That’s all of the index.html file. Create your wrapper element inside the body of the document and start writing markup.\nCSS Let’s talk about the CSS templates located in the css folder. There should be 3 files in total in this folder: main.css, normalize.css, normalize.min.css Main.css contains a few very basic styles for text, images and other popular HTML elements. There are a few helpful service classes you can use too, like .clearfix and**.invisible**. Also some media query statements for print media and responsive layouts. You can of course do whatever you want with the file: extend, delete or rename it. As for Normalize.css, this is your CSS reset file. You should always have one of these in your project. Normalize is probably the most popular CSS reset out there and it\u0026rsquo;s built to bring a more consistent look to sites across modern browsers. If you decide to use your own reset file that’s OK, but you’re strongly encouraged to keep the first 5 or 6 CSS selectors which helps desktop legacy and mobile browsers with the rendering of HTML5 elements. If you have other files in the template you don’t know what do to with, feel free to remove them.\nConclusion Boilerplate is the perfect solution if you don’t have your own HTML template. You can extent it and edit it as much as you want to fit your project\u0026rsquo;s needs. You can use Initializr anytime you want to set up a different template output, or you can simply create a few versions of the template which are working for you and use them later on. It’s all up to you to decide. AR\n","permalink":"https://blog.groupdocs.com/total/using-html5-boilerplate-template-in-your-web-project/","summary":"Introduction A few years ago, HTML 5 still wasn’t very well supported by most popular browsers so web sites were created mostly with XHTML or HTML4. I still have a folder on my machine filled with HTML templates for both XTML and HTML 4. Inside of it there are also templates for newsletters, micro-sites, responsive templates and whatnot. All of them were built by taking code from 2 or 3 different templates and look like Frankenstein\u0026rsquo;s code monster.","title":"Using HTML5 Boilerplate Template in Your Web Project"},{"content":"Our team is glad to announce the launch of GroupDocs\u0026rsquo; Annotation plugin for CMSMS users. Download and install the plugin to your CMSMS website to share and annotate files online. GroupDocs supports all widely used file formats so you can annotate PDF, word-processing documents and even images. GroupDocs Annotation is a web-based app which lets you add comments and notes to documents and images from a web-browser. Teams collaborate faster, share views, resolve conflict and expedite the workflow. Choose from a set of different annotation options (text notes, strikeouts, area notes, etc.) to comment in any way that suits you. See comments from all members in a single file. Save time, streamline the review process and prioritize tasks with our online application. [caption id=\u0026ldquo;attachment_3794\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;PDF Annotation Module for CMSMS Is Released\u0026rdquo;]\r[/caption]\nWhat is GroupDocs Annotation? GroupDocs Annotation is a cloud-based application that lets you share and review documents online. The workflow is simple. First of all, select a document from your GroupDocs library or upload a document, and then share it with your team members. Invited members give suggestion and exchange ideas to improve the document. There is no need to write emails back and forth during the review: everyone involved is notified once comments or notes are added. This mechanism helps avoid confusion and people can manage tasks easily. With GroupDocs it\u0026rsquo;s not a cumbersome task to annotate PDF or Word documents. GroupDocs Annotation supports most popular file formats! GroupDocs Annotation is effective when collaborating in global teams. Constant reviews and updates are needed. GroupDocs Annotation allows you to streamline the review process and reduce the communication gap. From online PDF annotation to online image annotation, GroupDocs\u0026rsquo; app lets you share ideas, communicate and complete tasks faster.\nInstalling The Annotation Plugin Refer to the online help for instructions on installing and using GroupDocs\u0026rsquo; annotation plugin for CMSMS. Please Note: to start using GroupDocs Annotation on your CMSMS website, you need to sign up with GroupDocs first. But don\u0026rsquo;t worry, we provide a free 14 days trial period so you can test the app before purchasing it.\nWhy GroupDocs Annotation? Digital media has changed the way companies operate. As the web takes center-stage, corporations are remodeling their businesses to suit new needs. Collaboration is very important for many reasons: get instant updates, stay current, save time and deliver content. In the same context, document sharing and reviewing has seen a paradigm shift from the traditional sharing of Word documents via email. People want real-time collaboration between groups to resolve complex discussions or views before releasing a product. GroupDocs Annotation helps them with this. Global teams working on big projects benefit from GroupDocs Annotation. Projects often involve collaboration between multiple groups, which means that a document goes through multiple reviews. It can be difficult for editors and writers who have to collaborate with every team and gather feedback. Not anymore! Share documents and invite teams to participate in collaborative reviewing. Individuals post their comments which are saved in a repository. Writers incorporate changes and deliver results. GroupDocs Annotation overcomes cross-platform and cross-version issues allowing you to annotate PDF and others document types online. GroupDocs Annotation has wide industry usage and can help banks, academic institutions, law firms, IT companies, etc. leverage the power of online document collaboration. Try it now to see the difference. You will get going in minutes. Have interesting experiences to share? Please leave your feedback on GroupDocs products on our forum.\n","permalink":"https://blog.groupdocs.com/total/groupdocs-pdf-annotation-plugin-for-cmsms-released/","summary":"Our team is glad to announce the launch of GroupDocs\u0026rsquo; Annotation plugin for CMSMS users. Download and install the plugin to your CMSMS website to share and annotate files online. GroupDocs supports all widely used file formats so you can annotate PDF, word-processing documents and even images. GroupDocs Annotation is a web-based app which lets you add comments and notes to documents and images from a web-browser. Teams collaborate faster, share views, resolve conflict and expedite the workflow.","title":"Annotate PDF and Other Documents on CMSMS Web-Pages with GroupDocs' Annotation Plugin"},{"content":"As I mentioned in my article on how to optimize Bootstrap this post will explain the basic syntax and features that the LESS language has to offer which you’ll need to extend, edit or minify Bootstrap. Hopefully this tutorial will help you understand the basics of using Bootstrap with LESS.\nWhat Is LESS? LESS is a dynamic stylesheet language which gives you more options and freedom when writing CSS. It helps you keep styles better organized, cascade styles more naturally and correct, and it speeds up CSS development in general. Also it’s a simple language which can be learned in a matter of hours by anyone with some programming experience. Even if you don’t have programming skills, it won\u0026rsquo;t take you long to learn at least its basic features. [caption id=\u0026ldquo;attachment_3791\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;LESS Dynamic Stylesheet Language\u0026rdquo;]\r[/caption]\nLESS syntax The idea with LESS is to help you develop faster, not to put an additional burden on your shoulders. It can be a lifesaver in large projects such GroupDocs. Described as simply as possible, you write CSS pretty much the same way you’ve always done using the CSS syntax, but with a different mindset when you’re writing in LESS. Which means that you now have options which allow you to write less code. LESS\u0026rsquo; slogan is “LESS is more”. Let’s write a few CSS styles and see how we can improve them with less syntax:\n.blog-article { height: 300px; } .blog-article .image { display: block; float: left; border: 3px dashed black; } .blog-article h2 { font-size: 24px; color: #ccc; text-shadow: 1px 1px #000; } In LESS, it looks like this:\n.blog-article { height: 300px; .image { display: block; float: left; border: 3px dashed black; } h2 { font-size: 24px; color: #ccc; text-shadow: 1px 1px #000; } } What if we want to extend some of the parent classes by adding a new class? In CSS, this is done by concatenating the two classes without leaving space between them:.class1.class2. In LESS, we do it by writing the new class inside the block of the main class with the \u0026amp; operator in front of it:\n.blog-article { height: 300px; \u0026amp;.longer { height: 500px; } } This compiles into:\n.blog-article { height: 300px; } .blog-article.longer { height: 500px; } After you compile the LESS code, it looks exactly the same as the CSS example above. So what have we gained here? Well, we don’t have to write the parents over and over before each new selector, but only inside the .blog-article block brackets ({ }). It might not seem like a big improvement, but as you write more and more code for your website, this way of writing becomes beneficial because styles look a lot more organized and are easier to read. But let\u0026rsquo;s now discover some really neat benefits that we get when using LESS CSS.\nVariables As in classical programming languages, variables are used as containers where you store information as number values or text, depending on your needs. You can find a whole file in Bootstrap filled only with variables so developers can easily change different styles for their projects such as text colors or font types:\n@gray: #555; @sansFontFamily: \u0026#34;PT Sans\u0026#34;, Helvetica, Arial, sans-serif; The whole idea behind variables is that you can use them later in any of your rulesets without having to remember the exact hexadecimal code of a color, or a specific font family:\n.blog-article { h2 { font-family: @sansFontFamily; font-size: @fontLarge; color: @gray; } } Of course you can also do arithmetical expressions with variables which store number values:\nh4 { font-size: @fontLarge / 2; } Mixins Mixins are great for reusing code, something which is a big issue in CSS development. For example, imagine that you have multiple elements with blue background and some image pattern. You can make a simple ruleset that has these background styles inside it and reuse it where you need it later on:\n// This is a simple CSS ruleset which can be added as a mixin inside other rulesets to inherit its properties .blue-background { background: @blue url(path/img.png) 0 0 repeat-x; } .blog-article { .blue-background; } .widget-box { color: @white; border: 2px solid @lime; .blue-background; } // The code above compiles into: .blog-article { background: #049cdb url(path/img.png) 0 0 repeat-x; } .widget-box { color: #fff; border: 2px solid #83ff46; background: #049cdb url(path/img.png) 0 0 repeat-x; } The parametric mixins spring from the same idea as the simple ones, but can accept parameters much like functions do in other programming languages. You can see a lot of them inside the mixins.less file in Bootstrap. Here is one that\u0026rsquo;s very frequently used:\n.border-radius (@radius) { border-radius: @radius; -moz-border-radius: @radius; -webkit-border-radius: @radius; } When we use this mixin inside a ruleset we just have to pass it the desirable value for the border radius we need on this element:\n.button { .border-radius(5px); } // This outputs to the following CSS .button { border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; } No more worries over browser support! If you\u0026rsquo;re writing a lot of repeatable code, just think of a way to create a mixin from it and start calling it in other parts of LESS when you need it. There is much, much more that LESS CSS can offer to boost your development process and productivity, but those features should be enough for you to extend and modify your Bootstrap as much as you want. If you\u0026rsquo;re interested in learning more about using Bootstrap with LESS CSS or using LESS CSS even without Bootstrap, you can find anything necessary on LESS\u0026rsquo; official website. AR\n","permalink":"https://blog.groupdocs.com/total/using-bootstrap-with-less-css-tutorial/","summary":"As I mentioned in my article on how to optimize Bootstrap this post will explain the basic syntax and features that the LESS language has to offer which you’ll need to extend, edit or minify Bootstrap. Hopefully this tutorial will help you understand the basics of using Bootstrap with LESS.\nWhat Is LESS? LESS is a dynamic stylesheet language which gives you more options and freedom when writing CSS. It helps you keep styles better organized, cascade styles more naturally and correct, and it speeds up CSS development in general.","title":"Using Bootstrap With LESS CSS - Tutorial"},{"content":"The Web 2.0 era has brought consumers and organizations closer. Consumers are active in community forums, blogs or other information-sharing platforms to discuss their tastes and preferences. Closer relationships with their customers has helped organizations understand buyer\u0026rsquo;s behavior and devise new products faster. Growing Internet penetration ensures that organizations who share, collaborate and reach out to their customers have a competitive edge. Managing documents effectively is important for businesses to increase the transaction cycle. Every aspect of document management, from collecting and storing information, accepting quotes and requesting signatures, requires sound management practices. Before the dawn of the information age, businesses had limited options and had to buy standalone products to achieve document management tasks. [caption id=\u0026ldquo;attachment_3774\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Benefit from GroupDocs\u0026rsquo; Document Assembly and Online Signature Apps\u0026rdquo;]\r[/caption] In today\u0026rsquo;s world, what appeals to us the most when we buy a product? Variety, benefits, utility, and cost. GroupDocs\u0026rsquo; apps suite offers compelling document management features that let you address specific requirements and complete tasks easily. View, annotate, sign, assemble, compare, and convert documents online. How can GroupDocs\u0026rsquo; apps suite solve real-world problems? Let\u0026rsquo;s look at how it helped Tom. Tom works as a marketing manager for a leading firm in the FMCG (Fast-Moving Consumer Goods) sector. His job involves meeting with potential clients, understanding their needs, gathering information and closing sales. He regularly meets 8-10 clients a day and sends them proposals soon after the meeting. Keeping track of documents and storing information is difficult. Tom asked himself if the process could be automated: could he create a proposal template, add questions, and send them to his clients to collect information? After an Internet search he found a solution that automates the document generation process and increases his productivity - GroupDocs\u0026rsquo; document assembly app.\nHow Do I Benefit From GroupDocs\u0026rsquo; Document Assembly Service? GroupDocs Assembly is a web-based app that helps you generate custom documents by collecting data entered by users through online forms. The app automatically incorporates the data into an existing document template. With this app, you can seamlessly generate hundreds or even thousands of custom documents, without manually customizing each one. It can take less than an hour to set up a template and you can re-use it any number of times. All you need to do is create a standard document template in Microsoft Word or PDF format and add fields for the user-data. Then upload the template to GroupDocs and create an online questionnaire associated with the fields in the template. Once done, invite clients to complete the questionnaire online. As clients enter and submit data, GroupDocs automatically generates a new document that incorporates the data into the template. In this a way a unique document is created for each individual client. There are countless types of documents that can be assembled with this app - sales contracts, order quotes, NDAs, job applications, and event registrations. GroupDocs Assembly helped Tom collect data and get completed documents quickly. However, that was not his only challenge. He also needed to get documents signed. He was not worried because he knew that GroupDocs\u0026rsquo; online signature service would help him overcome that challenge.\nHow Do I Benefit From GroupDocs\u0026rsquo; Online Signature Service? GroupDocs Signature is another useful app in the suite, indispensable when you need to get documents signed quickly. With this app, documents can be signed online, in a web-browser. Just upload a document to your GroupDocs account, add recipients (signers and CCs) and send the document for signature. Documents can be signed by dropping an image of a handwritten signature, or by drawing a signature in the web-browser. Once the document is signed, notifications are sent to all the parties involved. GroupDocs\u0026rsquo; online signature service allows you to get documents signed faster, as you don\u0026rsquo;t need to print, scan, or fax them. More importantly, documents signed with GroupDocs are absolutely legally binding in most countries, including US, EU, Canada, Japan, and Australia.\n","permalink":"https://blog.groupdocs.com/signature/assemble-documents-and-acquire-online-signatures-groupdocs/","summary":"The Web 2.0 era has brought consumers and organizations closer. Consumers are active in community forums, blogs or other information-sharing platforms to discuss their tastes and preferences. Closer relationships with their customers has helped organizations understand buyer\u0026rsquo;s behavior and devise new products faster. Growing Internet penetration ensures that organizations who share, collaborate and reach out to their customers have a competitive edge. Managing documents effectively is important for businesses to increase the transaction cycle.","title":"Assemble Documents and Acquire Online Signatures with GroupDocs!"},{"content":"Businesses relish the economic opportunities SaaS and cloud based platforms offer. Organizations worldwide are reacting to a shift in the document management space. Lawmakers in various countries stresses the need to save documents and files online, rather than the traditional way: paper. Different verticals such as pharmaceuticals, IT, and banking have started implementing and harnessing the benefits from online document management. There are many advantages: digital file storing and sharing is safe and secure, protects unauthorized use through security layers, and reduces cost, to mention a few. One thing is certain: the paperless environment will redefine how businesses communicate in future. [caption id=\u0026ldquo;attachment_3543\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Bring your online document management to a new level with GroupDocs\u0026rdquo;]\r[/caption] GroupDocs offers cloud based document management and document collaboration solutions for your business. Faster collaboration between teams increases productivity and avoids confusion. From academic papers and legal documents to financial reports, organizations require solutions to manage their data and files easily and effectively. At GroupDocs we\u0026rsquo;re addressing those issues and making products that drive innovation in online document management. What can GroupDocs do?\nSharing and Viewing Files GroupDocs Viewer is an online document viewer that lets you share, view, and read files through a browser. From Word, PDF or Excel, GroupDocs Viewer supports viewing a wide range of popular formats. Send and receive documents online in seconds with no new new installations needed. Collaboration is fast and you can reach out to your audience and share information.\nReviewing and Editing Files GroupDocs Annotation helps you review and annotate documents online. Upload a document, share links with colleagues, make comments and engage in collaborative review. Members can see comments made by others and can resolve conflicts. Instant feedback helps the publishing team expedite the process because all comments are saved in a single file. There are different annotation options available: point notes, highlight text, strikeouts, and others that are equally easy to use.\nSigning Documents GroupDocs Signature is a secure and safe online signature service that lets you sign and receive documents online. Just email or send a link to your partners to sign documents: upload, scan, or draw. Once the document is signed, instant notification is received by both the parties. Only an internet connection and a web-browser is needed to function. GroupDocs Signature supports section-specific signing that involves signers collaborating from anywhere.\nCollecting Information Through Forms GroupDocs Assembly is an online document generation service that supports merging fields (name, date, signature, etc.) into a document template. Send the custom template to your customers. After they enter the information, GroupDocs Assembly generates a new document with user-input data that retains the layout and structure of the original. In short, create once and reuse it! Document assembly saves time as recipients submit information online. Save time and automate the document generation process.\nConverting Files GroupDocs Conversion is an online file conversion app that lets you convert documents from one format to another with a browser. GroupDocs Conversion supports popular file formats (Excel, PDF, Word, PPT, and others) and retains the original layout after conversion.\nComparing Files GroupDocs Comparison lets you compare two Word documents or PDFs easily. Insertions and deletions from the source and target documents are made in blue and red lines. This helps finding the exact differences and keep the files up-to-date. Online document management gets more important as a global workforce demands an online repository and version control. Cloud storage and service providers has enabled people to store and share documents online. By managing your documents with GroupDocs\u0026rsquo; apps suite, you are staying on top of document management and ahead of the competition!\n","permalink":"https://blog.groupdocs.com/total/online-document-management-and-collaboration-made-easy-with-groupdocs/","summary":"Businesses relish the economic opportunities SaaS and cloud based platforms offer. Organizations worldwide are reacting to a shift in the document management space. Lawmakers in various countries stresses the need to save documents and files online, rather than the traditional way: paper. Different verticals such as pharmaceuticals, IT, and banking have started implementing and harnessing the benefits from online document management. There are many advantages: digital file storing and sharing is safe and secure, protects unauthorized use through security layers, and reduces cost, to mention a few.","title":"GroupDocs Apps Suite: Online Document Management and Collaboration Made Easy"},{"content":"null is the most popular and widely used CSS framework and there is a good reason for its popularity. It gives developers well styled CSS for the elements used most in the modern web. Things like buttons, form controls, navigation and much, much more. Since it’s written in LESS it keeps the CSS of bigger projects such as GroupDocs well organized so it is easy to follow and maintain your CSS code. [caption id=\u0026ldquo;attachment_3526\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;The Benefits of Bootstrap CSS framework for your web development projects\u0026rdquo;]\r[/caption] Bootstrap is mix of CSS style templates and JavaScript plugins. This article focuses on using Bootstrap CSS framework. Keep in mind that the framework focuses on giving users a vast set of CSS templates that ranges from basic typography and buttons, to menus, forms and tables. AT the end of the day, the CSS files of the library are packed with a lot of code, some of which you probably don’t need, depending on your project’s size and content. Personally, I wouldn’t recommend using Bootstrap CSS framework in small projects, for example small business web sites and portfolios, business card website or small WordPress templates.\nBootstrap It or Not? Start by deciding whether you need using Bootstrap CSS framework in your project. Check the design: what functionality and what kind of elements are in your project? If you need just one or two Bootstrap modules or plugins, just search for stand-alone solutions. Don’t include the whole framework just so you can use the buttons or the input styles. Instead, copy the CSS from the official site and download the standalone JavaScript plugin from Bootstrap\u0026rsquo;s official git repository. But if you decide that you really want to use Bootstrap CSS in your project because you’ll be happy to use maybe half of the styles, how do you exclude those you don’t need without braking the framework code? First, learn how to compile LESS files. There is a lot of free software which can do this for you, so you should not be worried about it. Just make a quick search on the subject and pick a software solution which suits your taste. I\u0026rsquo;m currently using Crunch. You can also try to find a plugin which compiles LESS to CSS for your favorite text editor. You\u0026rsquo;ll probably find one. Now let’s strip the Bootstrap down a bit. Assuming you’ve downloaded the whole pack of LESS files, for now you just need to open the major file: bootstrap.less. As you can see, all the other files in this folder are included in the main one, so every time you compile this file, all of the code from the rest are included in the output CSS file. When I start optimizing Bootstrap for a new project I first comment out all of the files, except the following ones: variables.less, mixins.less, reset.less, layouts.less, type.less. Commenting a line in LESS is pretty standard. Just put “//” at the beginning of the line we want to be ignored by the browser.\nWhy Should We Keep Those Files? variables.less and mixins.less are pretty vital and necessary in order for Bootstrap to function normally, because those two files store pretty much all of the variables and mixins (functions) that are used in the rest of the files. reset.less contains basic CSS reset styles which you should have in any project, but if you have better reset styles you can use them instead by placing them in the same file. type.less contains pretty much Bootstrap\u0026rsquo;s whole typography so you’re strongly encouraged to edit this file so it reflects the design of your project. If you\u0026rsquo;re uncertain how to use it, just comment this file out as well.\nHow Do I Usually Proceed with the Optimization? I then start to uncomment the other files necessary for my project. For example I have a few buttons, text inputs and navigation bars in the design of my new project. In order to use Bootstrap’s styling for them, I’ll uncomment the following files: buttons.less, forms.less, navbar.less. I also have one modal window so I’ll need modals.less as well, so I’ll include that as well. I then extend and change the code in those files as much as necessary until everything it is styled according to the current design. To optimize your bootstrap.css as much as possible, comment out or remove the styles you’re not using from the loaded .less files. If you don’t understand the LESS syntax it is probably better to avoid doing that so you don’t mess up something in the files, which could results in an error, making it impossible to compile the framework. Of course, after compiling you can add your own styles at the end of bootstrap.css, but you’re strongly encouraged to learn LESS so you can modify the existing files or to create new less files yourself. You can look forward to a future article explaining the basic things about LESS in order to write your own styles and other goodies with or without resorting to Bootstrap. AR\n","permalink":"https://blog.groupdocs.com/total/using-bootstrap-css-framework-in-your-project/","summary":"null is the most popular and widely used CSS framework and there is a good reason for its popularity. It gives developers well styled CSS for the elements used most in the modern web. Things like buttons, form controls, navigation and much, much more. Since it’s written in LESS it keeps the CSS of bigger projects such as GroupDocs well organized so it is easy to follow and maintain your CSS code.","title":"Using Bootstrap CSS Framework in Your Project"},{"content":"\rCustomers who integrate our HTML5 document viewer into their website can plug it into other websites too. This article shows how to build an ASP.NET WebForms HTML5 document viewer using the .NET version of the GroupDocs.Viewer.\nRequirements IIS 7 or later. Microsoft Visual Studio 2012 Part A: Creating A GroupDocs.Viewer Web Service Follow the steps given below to create a GroupDocs online document viewer service:\nOpen Visual Studio 2012 and create a new ASP.NET Web Forms Project: Add a New Item to the Project and then click Add to create a web service, WebServiceProvidingViewer: Add the following lines to WebServiceProvidingViewer.asmx to import the GroupDocs.Viewer library using Groupdocs.Web.UI:\npublic WebServiceProvidingViewer() { GroupdocsViewer.SetRootStoragePath(Server.MapPath(@\u0026#34;~/documents\u0026#34;)); } \\[WebMethod\\] public string GetJavaScriptLibraries() { //Fetches the script bocks. return Groupdocs.Web.UI.GroupdocsViewer.CreateScriptLoadBlock().LoadJquery().LoadJqueryUi().UseHttpHandlers().ToString(); } \\[WebMethod\\] public string GetInlineDocumentScript() { // Fetches the file contents. string groupdocsViewercript; using (FileStream fileStream = new FileStream(@\u0026#34;TestDoc.docx\u0026#34;, FileMode.Open)) { groupdocsViewercript = Groupdocs.Web.UI.GroupdocsViewer.ClientCode() .TargetElementSelector(\u0026#34;#doc\u0026#34;) .Stream(fileStream, \u0026#34;docx\u0026#34;) .DocViewerId(\u0026#34;doc\\_viewer\u0026#34;) .EnableRightClickMenu(true) .ShowThumbnails(true) .OpenThumbnails(true) .ZoomToFitWidth() .ToString(); } return groupdocsViewercript; } If you intend to use GroupDocs.Viewer for .NET on IIS version 7 or later in Classic Pipeline Mode, IIS version 6 or Visual Studio ASP.NET Development Server, then insert the following HTTP handler descriptions into the system.web section of your site’s web.config file: \u0026lt;system.web\u0026gt; \u0026lt;httpHandlers\u0026gt; \u0026lt;addverb=\u0026#34;GET,POST\u0026#34;path=\u0026#34;document-viewer/ViewDocumentHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.ViewDocumentHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addverb=\u0026#34;GET,POST\u0026#34;path=\u0026#34;document-viewer/GetDocumentPageImageHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.GetDocumentPageImageHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addverb=\u0026#34;GET,POST\u0026#34;path=\u0026#34;document-viewer/LoadFileBrowserTreeDataHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.LoadFileBrowserTreeDataHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addverb=\u0026#34;GET,POST\u0026#34;path=\u0026#34;document-viewer/GetImageUrlsHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.GetImageUrlsHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addverb=\u0026#34;GET\u0026#34;path=\u0026#34;document-viewer/CSS/GetCssHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.CssHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addverb=\u0026#34;GET\u0026#34;path=\u0026#34;document-viewer/images/\\*\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.EmbeddedImageHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addverb=\u0026#34;GET,POST\u0026#34;path=\u0026#34;document-viewer/GetScriptHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.ScriptHandler, Groupdocs.Viewer, Culture=neutral\u0026#34;/\u0026gt; \u0026lt;addverb=\u0026#34;GET\u0026#34;path=\u0026#34;document-viewer/GetFileHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.GetFileHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addverb=\u0026#34;GET,POST\u0026#34;path=\u0026#34;document-viewer/GetPdf2JavaScriptHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.GetPdf2JavaScriptHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addverb=\u0026#34;GET,POST\u0026#34;path=\u0026#34;document-viewer/GetPdfWithPrintDialogHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.GetPdfWithPrintDialogHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;/httpHandlers\u0026gt; If you intend to use GroupDocs.Viewer for .NET on IIS version 7 or later in Integrated Pipeline Mode, then insert the following HTTP handler descriptions into the system.webServer section of your site’s **web.config **file: \u0026lt;system.webServer\u0026gt; \u0026lt;handlers\u0026gt; \u0026lt;addname=\u0026#34;ViewDocumentHandler\u0026#34;verb=\u0026#34;GET,POST\u0026#34;path=\u0026#34;document-viewer/ViewDocumentHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.ViewDocumentHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addname=\u0026#34;GetDocumentPageImageHandler\u0026#34;verb=\u0026#34;GET,POST\u0026#34;path=\u0026#34;document-viewer/GetDocumentPageImageHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.GetDocumentPageImageHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addname=\u0026#34;LoadFileBrowserTreeDataHandler\u0026#34;verb=\u0026#34;GET,POST\u0026#34;path=\u0026#34;document-viewer/LoadFileBrowserTreeDataHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.LoadFileBrowserTreeDataHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addname=\u0026#34;GetImageUrlsHandler\u0026#34;verb=\u0026#34;GET,POST\u0026#34;path=\u0026#34;document-viewer/GetImageUrlsHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.GetImageUrlsHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addname=\u0026#34;GetCssHandler\u0026#34;verb=\u0026#34;GET\u0026#34;path=\u0026#34;document-viewer/CSS/GetCssHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.CssHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addname=\u0026#34;images\u0026#34;verb=\u0026#34;GET\u0026#34;path=\u0026#34;document-viewer/images/\\*\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.EmbeddedImageHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addname=\u0026#34;GetScriptHandler\u0026#34;verb=\u0026#34;GET,POST\u0026#34;path=\u0026#34;document-viewer/GetScriptHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.ScriptHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addname=\u0026#34;GetFileHandler\u0026#34;verb=\u0026#34;GET\u0026#34;path=\u0026#34;document-viewer/GetFileHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.GetFileHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addname=\u0026#34;GetPdf2JavaScriptHandler\u0026#34;verb=\u0026#34;GET,POST\u0026#34;path=\u0026#34;document-viewer/GetPdf2JavaScriptHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.GetPdf2JavaScriptHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;addname=\u0026#34;GetPdfWithPrintDialogHandler\u0026#34;verb=\u0026#34;POST\u0026#34;path=\u0026#34;document-viewer/GetPdfWithPrintDialogHandler\u0026#34;type=\u0026#34;Groupdocs.Web.UI.Handlers.GetPdfWithPrintDialogHandler, Groupdocs.Viewer, Culture=neutral\u0026#34; /\u0026gt; \u0026lt;/handlers\u0026gt; Deploy the project to IIS. Make sure that this project has a static URL and it has started successfully. You can check the availability of a public web service using this URL: \u0026ldquo;http://your-domain/WebServiceProvidingViewer.asmx\u0026rdquo;. If all works fine, you will see two available operations (webmethods): \u0026ldquo;GetInlineDocumentScript\u0026rdquo; and \u0026ldquo;GetJavaScriptLibraries\u0026rdquo;. You must also be able to call these webmethods by clicking the Invoke button. Part B: Creating the GroupDocs.Viewer Consumer Web Application Follow the steps given below to create an ASP.NET Web Forms project that consumes the GroupDocs.Viewer Web Service: 1. Create a new ASP.NET Web Forms Application: 2. Add a web reference in the project for the web service created in the other application. To add a web reference, right-click the project, and then click Add Web Reference: The Add Web Reference window is displayed. 3. Fill in the URL and Web reference name in the URL and Web Reference name fields: 4. Add the following controls in the Default.aspx file:\n\u0026lt;head id=\u0026#34;HeadControl\u0026#34; runat=\u0026#34;server\u0026#34;\u0026gt; \u0026lt;title\u0026gt;\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body id=\u0026#34;BodyControl\u0026#34; runat=\u0026#34;server\u0026#34;\u0026gt; \u0026lt;div id=\u0026#34;test\u0026#34; style=\u0026#34;width:600px;height:400px;position:relative\u0026#34;\u0026gt;\u0026lt;/div\u0026gt; \u0026lt;/body\u0026gt; Add the following lines in the Page_Load function: // Creating object of Web Service WebServiceProvidingViewer webServiceProvidingViewer = new WebServiceProvidingViewer(); // Calling the operation GetJavaScriptLibraries from the webservice string scriptLibraries = webServiceProvidingViewer.GetJavaScriptLibraries(); // Calling the operation GetInlineDocumentScript from the webservice string inlineDocPreviewScript = webServiceProvidingViewer.GetInlineDocumentScript(); // The contents are added to the HeadControl HeadControl.Controls.Add(new Literal() { Text = scriptLibraries }); // The contents are added to the BodyControl BodyControl.Controls.Add(new Literal() { Text = inlineDocPreviewScript }); Compile and run the project. You can run it from Microsft Visual Studio using ASP.NET Development Server, it is not necessary to deploy it to the IIS, as with the previous one. Please note that while running this \u0026ldquo;consumer\u0026rdquo; application, the previous GroupDocs.Viewer Web Service application must already be running. You can see that the GroupDocs.Viewer is consumed in the running application: Thus, the GroupDocs document viewer service, integrated in a web application, is consumed in another ASP.NET Web Forms Application. You may download the sample code of the project described. Remark The GroupDocs.Viewer Web Service is available for requests only from the local machine by default. So, when a consumer application is located on a different machine, it won\u0026rsquo;t be able to get an access to the web service. In order to fix this, just insert the following configuration code into the web.config of the GroupDocs.Viewer Web Service application:\n\u0026lt;configuration\u0026gt; \u0026lt;system.web\u0026gt; \u0026lt;webServices\u0026gt; \u0026lt;protocols\u0026gt; \u0026lt;add name=\u0026#34;HttpGet\u0026#34;/\u0026gt; \u0026lt;add name=\u0026#34;HttpPost\u0026#34;/\u0026gt; \u0026lt;/protocols\u0026gt; \u0026lt;/webServices\u0026gt; \u0026lt;/system.web\u0026gt; \u0026lt;/configuration\u0026gt; ","permalink":"https://blog.groupdocs.com/viewer/build-asp-net-webforms-html5-document-viewer/","summary":"Customers who integrate our HTML5 document viewer into their website can plug it into other websites too. This article shows how to build an ASP.NET WebForms HTML5 document viewer using the .NET version of the GroupDocs.Viewer.\nRequirements IIS 7 or later. Microsoft Visual Studio 2012 Part A: Creating A GroupDocs.Viewer Web Service Follow the steps given below to create a GroupDocs online document viewer service:\nOpen Visual Studio 2012 and create a new ASP.","title":"How to Build an ASP.NET WebForms HTML5 Document Viewer Using Web Services"},{"content":"Fast changing trends in technology require professionals and organizations to adapt and stay abreast. Organizations with a large number of employees focus on productivity to generate revenues, whereas professionals and consultants look for utility and cost. In the 90s there were limited options for document management, except for Microsoft Word - an editing software. Now, things have changed and there are many alternatives available. However, certain apps have compelling features and fit your requirements but may not provide other features. GroupDocs overcomes these challenges and offers a complete app suite (a combination of six applications) to meet your online document management needs. [caption id=\u0026ldquo;attachment_3474\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Online document management solutions powered by GroupDocs\u0026rdquo;]\r[/caption] GroupDocs\u0026rsquo; app suite lets you address specific requirements without searching for a standalone product to deliver results. Let us see how the combination works. Consider an example of a law firm that needs strong and secure document management systems that can not only reduce paper work but also increase their employee productivity. Let\u0026rsquo;s assume that you\u0026rsquo;re an intern working in a consultancy and being asked to prepare and complete documentation on time so that a client can sign and close a deal. Now that you\u0026rsquo;ve prepared a legal document, it must go through a review process to ensure that it is error-free. You\u0026rsquo;ll need to incorporated suggestions from a number of people.\nWhat Should I Do? By now you must be wondering \u0026ldquo;How can GroupDocs\u0026rsquo; app suite help?\u0026rdquo; GroupDocs Annotation is the answer to your question. GroupDocs Annotation is an online document review and annotation app that lets you comment, annotate and give feedback on any document. Simply upload the document, share the link with peers and ask them to review it. All comments are visible to team members and can be stored in a single file. No new installations are needed as the app works in a browser. Save time, avoid exchanging emails and collaborate real-time from your desk!\nHow Do I Take Online Signatures? After incorporating suggestions, you need to accept the client\u0026rsquo;s signature. Sending documents by courier or email takes time because the signer needs to take sign a printout and then send it back. GroupDocs Signature helps to collect signatures online without hassle. Send documents with form fields (single line or multi-line fields) to your client online. Once the client signs the document (by uploading, scanning, or drawing their signature), both the sender and signer receive instant notifications to confirm the end of the process. If the client does not sign the document on time, messages are sent to remind them. Data is safe and secure with GroupDocs Signature. Great job! You\u0026rsquo;ve not only succeeded in getting and incorporating feedback, but also taken less time to collect digital signature. Now the consultancy has requested that to convert the signed documents to different formats.\nHow Do I Convert Documents Online? It is simple! GroupDocs Conversion lets you convert the signed document (Microsoft Word) to a wide range of file formats. For example, you can convert it to PDF, ODT, PPT, and other files through a browser. It seems that you\u0026rsquo;ve successfully handled the project independently and the management are happy with your work! We\u0026rsquo;ve seen how GroupDocs app suite is tailored to meet the requirements of different customers. Annotate, sign, or convert documents quickly and easily. GroupDocs has other apps too, ones that help you deal with other scenarios. In each case, GroupDocs helps you manage your documents online and collaborate in real-time.\n","permalink":"https://blog.groupdocs.com/total/annotate-sign-convert-documents-online-with-groupdocs/","summary":"Fast changing trends in technology require professionals and organizations to adapt and stay abreast. Organizations with a large number of employees focus on productivity to generate revenues, whereas professionals and consultants look for utility and cost. In the 90s there were limited options for document management, except for Microsoft Word - an editing software. Now, things have changed and there are many alternatives available. However, certain apps have compelling features and fit your requirements but may not provide other features.","title":"Annotate, Sign and Convert Documents Online Using GroupDocs' Document Management Solutions"},{"content":"Here at GroupDocs we take front end and web development in general very seriously. We constantly strive to improve our products and because of that, we try to keep up with the latest trends and best practices, not always an easy thing. But that doesn’t apply only to our front end department of course. Each and every one of us is trying to improve his skills and is eager to try different techniques that could result in better and more optimal outcomes. One of GroupDocs designers recently told me he had been experimenting with web icon fonts and he asked me to help him with web implementation and testing to see if his efforts would bear fruit. I thought it was a good opportunity to share things with others on that matter since we had pretty good results.\nWays to implement web icon fonts in your markup Before I talk about browser support I feel I should explain how the web implementation goes here. Since we\u0026rsquo;re using an actual font file, we implement it in the same way as any other custom web font. The created font is exported into a few different font formats and then we import those files using CSS. This is necessary because browser vendors support different formats, so we need our custom font in the following formats: EOT, TTF, WOFF, SVG. There are plenty of online tools that can do this for us so simply search on the web for that kind of tool. Something like fontsquirrel.com/, for example.\nHow to implement it in our markup I\u0026rsquo;ve researched how other developers are doing this and two ways stood out from the rest. Selecting the icon we want to use on an element either by using its own CSS class, or by inserting its corresponding font character into the data attribute.\n\u0026lt;span aria-hidden=\u0026#34;true\u0026#34;\u0026gt;\u0026lt;/span\u0026gt; .test-icon:before { content: \u0026#34;\\\\61\u0026#34;; } \u0026lt;div class=\u0026#34;icon-large-blue\u0026#34; aria-hidden=\u0026#34;true\u0026#34; data-icon=\u0026#34;a\u0026#34;\u0026gt;\u0026lt;/div\u0026gt; \\\\\\[data-icon\\\\\\]:before { content: attr(data-icon); Which approach is best? Well, each is better then the other depending on the situation. The only thing I can say for sure is that the first approach is slightly faster because it doesn\u0026rsquo;t rely on a data attribute, but only on the content CSS3 property. Let\u0026rsquo;s assume that we don\u0026rsquo;t need additional styling on the icon we want to use. In this case I feel that the first example is the most efficient way to do it. First of all we use only one attribute, second we use the class as a selector which is faster then using the [data] selector. Also, we use a direct value in the content property of the selector content: \u0026ldquo;\\61\u0026rdquo;; which is again faster then the content: attr(data-icon); approach. Now let’s say we want to use the same icon, but we want to change its color and size so it sits better with the current look of our design. Well, from my standpoint, using dedicated classes for styling changes like these is the best approach, but that increases the number the class names used on the element. In cases like these I personally prefer to use the second example. Doing so we still avoid using actual characters inside the DOM element a and we achieve the desired result. There are plenty of other good ways to implement web icon fonts in your markup and CSS, so don\u0026rsquo;t be afraid to experiment until you feel satisfied with the results. Also keep in mind that it really comes down to the project needs and what the design will look like.\nBrowser support This method is supported in almost all browsers you should care about, the only problem is if you\u0026rsquo;re supporting IE7 and below. But a few lines of JavaScript can fix this for us, so you don\u0026rsquo;t need to be bothered by this. In GroupDocs, we plan to use this feature by creating at least two versions of the font: one for smaller icon sizes, like 20x20 pixels, and one for larger version of the icons, something around 50x50. Why? Because we have several places on the site where we use the same icons, but with different sizes, depending on the page design and content structure. For example, you\u0026rsquo;ll see big icons for each of GroupDocs app on the home page: https://groupdocs.com/ And then you\u0026rsquo;ll see the same icons, but in smaller size, on other page of the site. They\u0026rsquo;re located in the right vertical navigation on the right side of the banner here: https://groupdocs.com/developer/dot-net\nExamples of using web icon fonts Rendering results with Google Chrome. Rendering results with Internet Explorer 8 From what I\u0026rsquo;ve seen in my tests on different browsers, vector graphics with average sizes don\u0026rsquo;t render well when they\u0026rsquo;re shrunk down. Modern browsers such as Chrome, Safari and Firefox handles this well, but that\u0026rsquo;s due to the more advanced antialiasing algorithms they use for text rendering. You can really see a notable difference in older browsers such as IE7 and IE8. Things are getting messy in there. So we either go with multiple fonts for dealing with this issue or we just make a font with small icons and keep increasing the size of the font until necessary, or until things start to look odd. Again it really comes down to the needs of the project so you should set your priorities first and try to find the most optimal solution which fits your needs the best. What will we gain by switching to this method of creating icons on the GroupDocs site?\nFirst, we won\u0026rsquo;t stop using sprites completely, but we\u0026rsquo;ll discard some of our sprites and combine the icons used there in one, maybe two, font files. Also, we\u0026rsquo;ll optimize the space in our main sprite and decrease its initial file size. This will give us the freedom to change icons color, size or adding other CSS styling (like text shadow) to them on the fly. That\u0026rsquo;s due the potential that vector graphics offer. We reduce development time since we don\u0026rsquo;t have to update sprites constantly and we won\u0026rsquo;t lose time on graphic optimizations anymore. But keep in mind that like everything else in our life there are good and bad parts. This is a font, so all the graphics in it are monochromatic and your icons will be too. There is info on the web that this could result in worse user experience, even more for screen readers. You can try avoiding such complications by using the :before pseudo class, setting the speak property to none, or setting the aria-hidden=\u0026ldquo;true\u0026rdquo; element. The best way is to use all of these tricks. Place the aria-hidden attribute on the HTML element, put the value of the content property in a selector with a :before pseudo class like in my earlier examples, and then set speak: none; in the main selector CSS styles. Something like this:\n\u0026lt;span aria-hidden=\u0026#34;true\u0026#34;\u0026gt;\u0026lt;/span\u0026gt; .test-icon { speak: none; } .test-icon:before { content: \u0026#34;\\\\61\u0026#34;; } Again there is no guarantee that this won\u0026rsquo;t hurt the experience when using screen reader, but it\u0026rsquo;s something. And of course, like any other font, you cannot expect it to look exactly the same across all browsers like an image would, but this effect can be reduced to a minimum with some extra CSS for font rendering.\nHow to make custom fonts It is best to consult with a professional graphical designer on that matter. I personally played a bit with icomoon.io and I\u0026rsquo;m pleased with the results it gave me. It gives you auto generation of all necessary font file formats, the icons CSS styles and also a good way for IE7 support. But there might be a lot more and different ways out there that may fit your needs better, so you should do your own research.\nConclusion I personally like the idea of using web icon fonts in projects where possible and when the project\u0026rsquo;s designer is hyped for the idea as much as me. It offers great flexibility and performance gains for the project and of course it\u0026rsquo;s more fun to use new techniques. AR\n","permalink":"https://blog.groupdocs.com/total/using-web-icon-fonts-best-practices/","summary":"Here at GroupDocs we take front end and web development in general very seriously. We constantly strive to improve our products and because of that, we try to keep up with the latest trends and best practices, not always an easy thing. But that doesn’t apply only to our front end department of course. Each and every one of us is trying to improve his skills and is eager to try different techniques that could result in better and more optimal outcomes.","title":"Using Web Icon Fonts - Best Practices"},{"content":"We\u0026rsquo;re glad to announce the launch of the GroupDocs Viewer add-on for Mozilla Firefox. This add-on allows you to embed documents using a Firefox browser. Access your GroupDocs account without having to log in each time you want to manage files. GroupDocs\u0026rsquo; online document viewer allows you to view, read, and share documents easily and effectively. Managing cross-version issues and file format compatibility are some of the issues that GroupDocs Viewer overcomes. Now Firefox users can share Microsoft Word, PDF and other files with colleagues using their browser. [caption id=\u0026ldquo;attachment_3240\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Online document viewer for Firefox is now available from GroupDocs\u0026rdquo;]\r[/caption] GroupDocs Viewer is platform independent. If you\u0026rsquo;re sharing a Word or PDF document, GroupDocs Viewer works as an online Word Viewer or online PDF viewer. GroupDocs Viewer - An Online Doc Viewer GroupDocs Viewer is a web-based app for document viewing. Share files from your desk, manage tasks effectively, and promote collaboration. Be it presentations, proposals, operational procedures or text documents, GroupDocs supports all popular file formats. Upload documents to GroupDocs and share them with colleagues online or through a Content Management System. Smart and efficient file-rendering functionality retains the structure and layout of the document and you see an exact copy of the original. A simple workflow and easy-to-use interface helps expedite tasks. Search text, navigate easily, and embed documents into a website with GroupDocs Viewer.\nOnline Document Viewer App - Benefits Internet world created a paradigm shift in working methodology of organizations. Real-time collaboration speeds up the operation cycle. GroupDocs Viewer - an online document sharing and collaboration tool that helps in sharing files quickly regardless of the format. Simply upload and share files with partners from within a Firefox browser and leverage the benefit of document collaboration. No new software installations are needed. GroupDocs\u0026rsquo; online document viewer adapts to different situations and is often called an all-in-one viewer - online Word viewer, online PDF viewer, online Excel viewer and many more. GroupDocs\u0026rsquo; online document viewer offers many benefits to its users. To mention some:\nAll in one viewer: View Word, PDF, Excel, PPT and others. Serve documents: Upload documents from your local machine or Google account. Embed documents: Into CMS or website easily. Simple workflow: Search text, print, copy or download documents. Easy navigation: Scroll pages, use thumbnails, move to specific page. Access other tools: Use GroupDocs Comparison, GroupDocs Signature, and GroupDocs Assembly from within GroupDocs Viewer Save time, increase productivity, and communicate faster with GroupDocs Viewer.\nInstallation and Use Installing and using the GroupDocs\u0026rsquo; online document viewer add-on is super easy. Please refer to the following how-to blog or online help for details. [caption id=\u0026ldquo;attachment_3241\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;View documents online using GroupDocs\u0026rsquo; online document viewer add-on for Firefox\u0026rdquo;]\r[/caption]\nWhy GroupDocs\u0026rsquo; Online Document Viewer? Businesses devise strategies to effectively share customer-centric information From product manuals and brochures to market reports, engaging and collaboration is the need of the hour. To achieve results faster, an effective communication medium is needed. GroupDocs Viewer is an online document viewer through which you can share most common business documents using a browser. This way information is disseminated online and customers can view it easily from their desk. It is a frustrating experience to know that your clients had issues trying to open a document. GroupDocs Viewer takes care of such uncertainty. Working with wide range of formats helps organizations accomplish tasks without hassle. For a Word file, GroupDocs Viewer is an online Word viewer, for a PowerPoint file, it acts as an online PowerPoint viewer. Different business verticals can leverage the benefits of GroupDocs as it offers various solutions for each category. Learning to use this efficient online document viewer app takes minutes and you start enjoying immediately. What are you waiting for? Try it now! We appreciate and value our customers feedback. Your suggestions can help us improve and deliver products and services effectively. Chat online or post feedback or queries on the GroupDocs Forum.\n","permalink":"https://blog.groupdocs.com/viewer/online-document-viewer-add-on-from-groupdocs-is-now-available-for-mozilla-firefox/","summary":"We\u0026rsquo;re glad to announce the launch of the GroupDocs Viewer add-on for Mozilla Firefox. This add-on allows you to embed documents using a Firefox browser. Access your GroupDocs account without having to log in each time you want to manage files. GroupDocs\u0026rsquo; online document viewer allows you to view, read, and share documents easily and effectively. Managing cross-version issues and file format compatibility are some of the issues that GroupDocs Viewer overcomes.","title":"Online Document Viewer Add-on from GroupDocs is Now Available for Mozilla Firefox"},{"content":"GroupDocs\u0026rsquo; online document viewer add-on provides you with a convenient interface for quickly accessing, viewing and managing documents directly in the FireFox browser, without the need of going to the GroupDocs website. GroupDocs Online Document Viewer is a web-based application that allows you to open Microsoft Office files and images directly in a web-browser, regardless of whether you have the software that was used for creating them, or not. This is a universal document viewer that reduces the need for installing the tons of software required to open each individual file format. It allows you to view literally all types of word processing documents (DOC, DOCX, TXT, RTF, ODT), PowerPoint presentations (PPT, PPTX), SpreadSheets (XLS, XLSX), portable files (PDF), and image files (JPG, BMP, GIF, TIFF).GroupDocs Viewer is a mobile-ready application, meaning that you can view documents online from any web-enabled device. With this online document viewer add-on for FireFox, it is now even easier to access, view and manage documents in your GroupDocs account. Simply use the small widget that appears in the bottom-left corner of your FireFox browser after installation. This way, all your documents are always at hand and you won\u0026rsquo;t need to log in through the GroupDocs website each time you want to open a document. GroupDocs Online Document Viewer Website: https://groupdocs.com/apps/viewer Visit our Github project for feedback and issue reports: https://github.com/groupdocs/groupdocs-firefox-viewer-source\nRequirements FireFox GroupDocs account (if you don\u0026rsquo;t have one, register for a trial) Installing the add-onTo install the GroupDocs Viewer add-on for FireFox: Open the FireFox browser, click the Firefox menu and then click Add-ons.\rResult: The Add-ons screen is displayed and the Get Add-ons tab is selected by default. To find the GroupDocs document viewer add-on, type groupdocsin the search field and then press ENTER.\rThe GroupDocs Viewer add-on is listed at the top of the retrieved list; click Install.\rThat\u0026rsquo;s all you need for the installation. Lets take a look on how to use the GroupDocs Viewer add-on. Using the pluginThe GroupDocs VIewer add-on icon appears in the right bottom panel of FireFox. To use it, simply click this icon. Click the GroupDocs Viewer icon; enter your GroupDocs account Client ID and Private Key details and then click Login. Now you can see two options: Upload file and My files. If you select Upload file you can upload a local file to your GroupDocs account. If you select My files, you see all the folders and files in your account. Also, here you can manage files by clicking the eye icon next to a document. For example, click View to view the selected document. That completes the how to - now I will briefly explain all functions available in GroupDocs\u0026rsquo; online document viewer for FireFox.\nFunction\nUse To\nView\nView selected file in iframe.\nDownload\nDownload selected file to your local disk.\nCopy\nCopy selected file to another folder in the GroupDocs account (not in local folder) folder.\nMove\nMove selected file to another folder in the GroupDocs account (not in local folder) folder\nRename\nRename the file.\nDelete\nDelete the file from GroupDocs account (not from local folder).\nRefresh\nRefresh the file list\nEmbed\nGenerate the iframe tag.\n","permalink":"https://blog.groupdocs.com/viewer/how-to-work-with-groupdocs-online-document-viewer-add-on-for-firefox/","summary":"GroupDocs\u0026rsquo; online document viewer add-on provides you with a convenient interface for quickly accessing, viewing and managing documents directly in the FireFox browser, without the need of going to the GroupDocs website. GroupDocs Online Document Viewer is a web-based application that allows you to open Microsoft Office files and images directly in a web-browser, regardless of whether you have the software that was used for creating them, or not. This is a universal document viewer that reduces the need for installing the tons of software required to open each individual file format.","title":"How to Work with GroupDocs' Online Document Viewer Add-on for FireFox"},{"content":"GreenSock Animation Platform (GSAP) for JavaScript I have always had a sort of passion for the special effects presented in today\u0026rsquo;s multi-media. I\u0026rsquo;ve experience with a lot of different types of effects. From the credits at the end of a TV show, subtitles, and karaoke effects. The last type, that I still work with, are the CSS3 animations which are now one of the most used trend to achieve effects and interactivity on the modern web. About half an year ago I was assigned to a project with a lot of complex and long animations. And of course, the client wanted everything to be created with CSS3 animations. This is when I discovered the GreenSock Animation Platform. I was pleasantly surprised by the potential of this framework.\nGSAP JS Introduction In short, this framework is focused on giving an easy, effective and powerful way for creating rich animations, as well as dynamic and creative web interfaces. The framework was developed for Action Script 2 (AS2), but later on it was extended for AS3 and - last but not least - a little over a year ago, Front End developers received the pleasant news that GSAP now has a version for JavaScript as well. The magic wand that Flash developers were wielding with passion and confidence can now be used by Front End developers. It\u0026rsquo;s a great assistant in modern web development where CSS3 animations have become an inseparable part from interactive web applications and even more necessary in marketing websites where a lot of \u0026ldquo;flashiness\u0026rdquo; and rich animations are required. That\u0026rsquo;s enough introduction: lets move to the real part.\nWhy this is the best framework in its field of expertise? What are the good points of it? The syntax is pretty straight forward and really easy to learn and use. It saves you a lot of development time. It offers cross-browser support for all major browsers, even IE8 (at least most of it). Incredibly fast performance and small file size for what you can achieve with it. Framework independent, it\u0026rsquo;s written in clean and classic JavaScript. No jQuery or mootools are necesesary. It\u0026rsquo;s free for non-commercial projects. There is plenty of documentation and tutorials on the official website - https://greensock.com/docs. I can point out other big pluses of the framework, but we\u0026rsquo;ll stick to the major ones which should be enough to show how amazing this piece of software is. Let me break down the points above in a more detailed and augmented way. Before I start with some GroupDocs related code examples, it is very important to explain the main concept behind the framework idea. Described as simply as possible, what the framework does is change an object\u0026rsquo;s property from one value to another.\nGroupDocs Code examples Live example: https://codepen.io/dwigga/pen/EmKro For these examples we\u0026rsquo;re going to use some of the images from the official GroupDocs website:\nTweenLite.to( \u0026#39;logo\u0026#39;, 1.5, {width: 286} ); This line of code animates the width of a image from 0 to 286 pixels. A quick description of the code:\nTweenLite - the tween object. .to()- the object method which receives the 3 required parameters: Param 1 - The object we\u0026rsquo;re going to animate, in our case \u0026ldquo;logo\u0026rdquo;. (String.)\nParam 2: The duration of the tween (in seconds). In our case, the tween will last for second and a half. (Number.)\nParam 3: The properties of the object (the element) we want to animate. We wrap up the properties in object brackets and separate them with commas (Object):\n{property1: value, property2: value} Heads up for this code example Notice exactly how I wrote the object: \u0026rsquo;logo\u0026rsquo; Now in a normal JS context, writing the selector name this way would be invalid, because the object should be either assigned to a variable before that point, or simply using document.getElementById(\u0026rsquo;logo\u0026rsquo;) does the job. Or in case we want to use jQuery, we should wrap it in a jQuery selector block like: $(\u0026rsquo;#logo\u0026rsquo;). Now the reason that I\u0026rsquo;m listing all of those variants is because all of them actually work in the same way, regardless of which one we decide to use. So all of the lines below work exactly the same.\nTweenLite.to( \u0026#39;logo\u0026#39;, 1.5, {width: 236} ); TweenLite.to( \u0026#39;#logo\u0026#39;, 1.5, {width: 236} ); TweenLite.to( document.getElementById(\u0026#39;logo\u0026#39;), 1.5, {width: 236} ); TweenLite.to( $(\u0026#39;#logo\u0026#39;), 1.5, {width: 236} ); Here is a breakdown of what actually happens when the GreenSock Animation Platform executes the very first line of code from the four above:\nIf the object\u0026rsquo;s type isn\u0026rsquo;t defined in the code, GSAP automatically checks if any of the popular JS frameworks are already loaded, such as window.$ or window.jQuery. If neither is found it falls back to the default JS ID selector - document.getElementById(). This means you\u0026rsquo;re free to use any engine selector you want or are already using. The only drawback of not declaring the exact object type is a very small performance cost. But that should be raising concerns only when you\u0026rsquo;re animating a HUGE number of objects at the same time and of the same name.\nThe other thing I want to point out in this example is that we\u0026rsquo;re animating the default width property of the IMG element in HTML, not its CSS property. The main reason I\u0026rsquo;m doing this is because I want to highlight that you can tween any property of any DOM element, custom or default object you have. Even Canvas! That\u0026rsquo;s as awesome as it gets!\nBut lets take a look at more advanced tweens involving CSS changes by extending the last example.Live example: https://codepen.io/dwigga/pen/wcBhl TweenLite.to( logo, 1.5, {width: 236} ); TweenMax.to( logo, 1, {x: 500, rotation: 360, delay: 1.5, ease: Expo.easeIn} ); TweenMax.to( logo, 1, {transformOrigin: \u0026#39;0 50%\u0026#39;, rotation: 335, delay: 3, ease: Back.easeIn} ); TweenMax.to( logo, 1, {rotation: 440, delay: 4, ease: Back.easeInOut} ); TweenMax.to( logo, 1, {rotation: 450, delay: 5, ease: Power3.easeIn, yoyo: true, repeat: -1} ); The first thing you\u0026rsquo;ll probably ask is: \u0026ldquo;Why is TweenMax used here?\u0026rdquo; The GreenSock Animation Platform has 2 versions. TweenLite is the slim one. It has the tools necessary for dealing with simple animations. If our main focus is performance and file size we should use this version. The other, more advanced version of the framework, is TweenMax, TweenLite\u0026rsquo;s big beefy brother. It\u0026rsquo;s the same thing, but it gives us many more options to play with and it loads the most used and popular plugins for GSAP automatically. If we want to tween CSS properties we need the CSSPlugin plugin to be loaded. Using TweenMax will do that for us. In this example I\u0026rsquo;m using five tweens in total. I\u0026rsquo;ll describe what they\u0026rsquo;re doing:\nThe first tween does the same as in the first example, increasing the image\u0026rsquo;s width. The second tween moves the image to the right and rotates it in a full 360 degree motion with some extra easing for better visual effect. The third one its rotating the image\u0026rsquo;s right end only thanks to the transformOrigin: \u0026lsquo;0 50%\u0026rsquo; property. The Fourth one is doing the same thing as the previous but in the opposite direction and it leaves the image in a vertical position. And the last one simply loops the animation, rotating the image by 10 pixels in both directions endlessly. I won\u0026rsquo;t go in further details with this example, but you can see what those properties are about and much, much more on the GreenSock Docs. Why does this save development time? I want to explain why this framework reduces development time so much. We have to keep in mind that CSS3 is still not fully supported across all major browser vendors and most of them still use their own vendor prefixes for most CSS3 properties (for example webkit, moz, o, or ms). If we write CSS3 animations in the standard way, by writing CSS3 directly, we need to copy this code many times as necessary and use the browser vendor prefixes so that the code works on all major browsers. Just a quick example of what I\u0026rsquo;m talking about:\ntransform: translate(700px, 0); Without using prefixes this works only in the latest versions of webkit based browsers and Firefox. But we can make this work on older versions as well, if we use the vendor prefixes. For example, for Webkit based browsers:\ntransform: translate(700px, 0); -webkit-transform: translate(700px, 0); Now if we want to enable support for older Firefox versions, we need to duplicate the code once more:\ntransform: translate(700px, 0); -webkit-transform: translate(700px, 0); -moz-transform: translate(700px, 0); And we need to continue doing this until we have included the prefixes for all popular browsers on the market. That\u0026rsquo;s why the GreenSock Animation Platform saves a lot of development time: you write the tween and GSAP does the rest. It checks what the current browser and version is, and adds all of the necessary prefixes.\nSo it\u0026rsquo;s fast, huh? I\u0026rsquo;ve mentioned that its fast. But how fast is it? Well, super fast. In fact, 20 times faster then jQuery and mootools. You can see the difference yourself here: https://www.greensock.com/js/speed.html Again this is the official website of the framework: GreenSock And the full official documentation for it: https://greensock.com/docs\nConclusion As my final thoughts for GSAP I can honestly say that the guys involved in the creation of GreenSock have done a wonderful job. That\u0026rsquo;s a life time achievement. The framework is fast, effective, small, OOP friendly and gives developers everything they can wish for when doing web animations. The best part is that the JavaScript version of it is updated very frequently and a lot of new cools things will be coming up in the future. AR\n","permalink":"https://blog.groupdocs.com/total/tips-for-using-the-greensock-animation/","summary":"GreenSock Animation Platform (GSAP) for JavaScript I have always had a sort of passion for the special effects presented in today\u0026rsquo;s multi-media. I\u0026rsquo;ve experience with a lot of different types of effects. From the credits at the end of a TV show, subtitles, and karaoke effects. The last type, that I still work with, are the CSS3 animations which are now one of the most used trend to achieve effects and interactivity on the modern web.","title":"Tips for using the GreenSock Animation Platform"},{"content":"Google Chrome users have a reason to get excited. We\u0026rsquo;ve announced the launch of the GroupDocs Signature plugin for Chrome. This online signature plugin lets you share documents from your Gmail account and collect signatures online. Open the document, upload the signature and send it via email. It takes only seconds to sign documents. Compatibility with popular file-formats is an important feature of the application. GroupDocs Signature is an online signature app that supports signing and sending business documents through a web-browser. No new software installations are needed. [caption id=\u0026ldquo;attachment_3173\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;GroupDocs Signature makes your online signature process simpler\u0026rdquo;]\r[/caption] Save time and streamline the signature process using GroupDocs Signature.\nGroupDocs Signature - An Online Signature App GroupDocs Signature makes applying an online signature to documents a simple process. GroupDocs Signature requires only an internet connection and browser to function so you can sign documents instantly from your desk. When you have a document that needs to be signed, add customized fields that the signers complete when signing to capture personal and date information. Track the status of pending documents and automate the follow-up process. Set reminders to inform signers that they have not signed the document. Document signing is secure and meets the industry standards for data storage. A wide range of formats are supported so it works for all kinds of companies. GroupDocs\u0026rsquo; online signature service helps reduce overheads, automate document processing, and create a paperless environment.\nOnline Signature App - Benefits Paperless signing of contracts, NDAs or other business documents has become an integral part of many organizations processes. Conventional signing methods are becoming obsolete as they result in increased expenditure (fax, courier or mail) and create delays in workflow. GroupDocs Signature offers various features that can be integrated with daily tasks to increase productivity. Section-specific signing ensures that different signers can collaborate on a document. Some of the benefits of using GroupDocs Signature are:\nCollect data: create single-line or multi-line fields in documents before sending them out. Protect documents: apply watermarks. Save time: manage contacts and documents. Let the process look after itself: set reminders and receive instant notifications. Use any document type: sign Word, Excel, PDF and other files. Speed up the signature round-trip: send email and collect signatures online. Sign in any role: store signatures and re-use them for different documents. Installation and Usage Installation and usage of GroupDocs Signature plugin is super cool. Please refer to this blog or online help for details. [caption id=\u0026ldquo;attachment_3176\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Sign documents online and attach them automatically to your Gmail\u0026rdquo;]\r[/caption]\nWhy GroupDocs Signature? Technology advancements in recent years has made businesses collaborate faster than ever. Sharing and sending documents for signature the traditional way was a cumbersome task. Documents we couriered, faxed or mailed. With such an unstructured flow, optimum utilization was not met. GroupDocs\u0026rsquo; online signature application overcomes delays and provides solutions to manage tasks effectively. GroupDocs Signature is a software and platform independent tool that runs in a browser. The process is straight-forward: upload a document, add fields to it, and invite partners to sign documents online. Signers can access documents, and sign documents in multiple ways (upload, draw or scan). When documents are signed, instant notifications are sent to both parties. Collect signatures online and make the signature process smooth and effective with GroupDocs Signature. Organizations operating in different verticals can leverage the benefits of an e-signature service that can have measurable impact on business operations. Global teams can collaborate and sign different sections of a document. Data is safe and secured since all documents are encrypted. Want to see how it works? Just try the demo now. Learning is easy and within minutes you understand the flow. We appreciate and value our customers\u0026rsquo; feedback. Your suggestions can help us improve and deliver products and services effectively. Chat online or post feedback or queries on the GroupDocs Forum.\n","permalink":"https://blog.groupdocs.com/signature/online-signature-plugin-from-groupdocs-now-available-for-google-chrome/","summary":"Google Chrome users have a reason to get excited. We\u0026rsquo;ve announced the launch of the GroupDocs Signature plugin for Chrome. This online signature plugin lets you share documents from your Gmail account and collect signatures online. Open the document, upload the signature and send it via email. It takes only seconds to sign documents. Compatibility with popular file-formats is an important feature of the application. GroupDocs Signature is an online signature app that supports signing and sending business documents through a web-browser.","title":"Online Signature Plugin from GroupDocs Now Available for Google Chrome"},{"content":"We have published a GroupDocs\u0026rsquo; Signature plugin for Chrome. This online signature add-on provides GroupDocs users with a slick interface for signing documents from within Gmail. GroupDocs\u0026rsquo; online signature plugin gives you the ability to sign documents online in Gmail emails, without having to install bulky office software. When you need to sign a document, GroupDocs Signature opens it for you. With the plugin, you no longer have to log in to the GroupDocs website to view a document. When the plugin is installed, a small widget appears in Chrome\u0026rsquo;s bottom-left corner. It allows you to access, view and manage your documents with just a couple of clicks. If you need to sign a document on the go, you can use GroupDocs\u0026rsquo; online signature on any web-enabled mobile device. In this article, I\u0026rsquo;ll show how to install and use the plugin. It\u0026rsquo;s really simple.\nRequirements Chrome browser GroupDocs account (if you don\u0026rsquo;t have one, register for a trial) Installing the Online Signature Plugin Open Chrome and go to Settings. The Settings page is displayed. Click Extensions.\rThe Extensions page is displayed. Click Get more extensions. Type groupdocs signature in the Searchfield and then press ENTER.\rNote: The **Search **field is not case sensitive. The GroupDocs Signature plugin appears in the list. To install, click ADD TO CHROME. That completes the installation and now we can use the plugin.\nUsing the Online Signature PluginTo use the plugin, your GroupDocs account credential are required. In the Settings page that is opened after the plugin installation, type your GroupDocs account credentials or Client ID and Private Key details, and then click Save.\rNote: You can also open the config page from the Chrome Extension page. Go to your Gmail account. If an email you open has an attachment in PDF, DOC or DOCX formats, the plugin adds a Sign link to the actions available for the file. Click the **Sign **link.\rThe Select file for signature dialog box pops up. Click Browse, select a signature file, and then click Sign.\rThe plugin now performs its magic: the online signature and the attached file are uploaded to your GroupDocs account. The document is signed and the signed document is downloaded. The plugin next creates an email message and attaches the signed message to it, ready to be sent.\rThat completes the how-to. ","permalink":"https://blog.groupdocs.com/signature/how-to-integrate-and-use-groupdocs-online-signature-plugin-with-google-chrome/","summary":"We have published a GroupDocs\u0026rsquo; Signature plugin for Chrome. This online signature add-on provides GroupDocs users with a slick interface for signing documents from within Gmail. GroupDocs\u0026rsquo; online signature plugin gives you the ability to sign documents online in Gmail emails, without having to install bulky office software. When you need to sign a document, GroupDocs Signature opens it for you. With the plugin, you no longer have to log in to the GroupDocs website to view a document.","title":"How to Integrate and Use GroupDocs' Online Signature Plugin with Google Chrome"},{"content":"We have published a GroupDocs\u0026rsquo; online document viewer plugin for Chrome. This add-on provides GroupDocs users with a slick interface for viewing documents right in the Chrome browser. GroupDocs\u0026rsquo; Online Document Viewer gives you the ability to view documents and images right in your web browser, without having to install bulky office software. Whether you need to view a text document, an image or a PowerPoint presentation, GroupDocs\u0026rsquo; online document viewer opens it for you. The list of supported file formats is long and constantly increasing:\nWord processing documents (DOC, DOCX, TXT, RTF, ODT) PowerPoint presentations (PPT, PPTX) Image files (JPG, BMP, GIF, TIFF) Portable files (PDF) Spreadsheets (XLS, XLSX) Thanks to its smart rendering engine, GroupDocs Viewer retains the formatting of your documents in high fidelity. Whether you open a file in its native program or using this online document viewer, it looks exactly the same. With the plug-in, you no longer have to log in to the GroupDocs website to view a document. After you install the add-on, a small widget appears in the bottom-left corner of your Chrome browser and allows you to access, view and manage your documents with just a couple of clicks. And if you need to view a document on the go, you can use GroupDocs Viewer on any web-enabled mobile device. In this article, we will see how to install and use the GroupDocs\u0026rsquo; online document viewer plugin. It\u0026rsquo;s really simple.\nRequirements Chrome browser GroupDocs account (if you don\u0026rsquo;t have one, register for a trial) Installing the Plugin Open your Chrome browser and go to Settings. Click Extensions. Click Get more extensions. Type groupdocs in the Search field and then press ENTER. To install, click ADD TO CHROME. That completes the installation and now we can use the plugin.\nUsing the PluginTo use the GroupDocs\u0026rsquo; online document viewer plugin, you need the username and password from your GroupDocs account. Click the **GroupDocs Viewer **icon in the top right side of the browser and enter your credentials to log in. After you have logged in, you can manage files from your GroupDocs account or upload a local file. To view or make any other manipulations with files in a GroupDocs account, click (GroupDocs Viewer icon) and select your preferred option, for example, View. The selected document is displayed in the iframe. That completes the how to - now I will briefly explain all functions available in GroupDocs Viewer for Chrome. Following are the functions and their descriptions:\nFunction\nUse To\nView\nView selected file in iframe.\nDownload\nDownload selected file to your local disk.\nCopy\nCopy selected file to another folder in the GroupDocs account (not in local folder) folder.\nMove\nMove selected file to another folder in the GroupDocs account (not in local folder) folder\nRename\nRename the file.\nDelete\nDelete the file from GroupDocs account (not from local folder).\nRefresh\nRefresh the file list\nEmbed\nGenerate the iframe tag.\n","permalink":"https://blog.groupdocs.com/viewer/how-to-use-groupdocs-viewer-plugin-with-google-chrome/","summary":"We have published a GroupDocs\u0026rsquo; online document viewer plugin for Chrome. This add-on provides GroupDocs users with a slick interface for viewing documents right in the Chrome browser. GroupDocs\u0026rsquo; Online Document Viewer gives you the ability to view documents and images right in your web browser, without having to install bulky office software. Whether you need to view a text document, an image or a PowerPoint presentation, GroupDocs\u0026rsquo; online document viewer opens it for you.","title":"How to Use GroupDocs' Online Document Viewer Plugin with Google Chrome"},{"content":"GroupDocs\u0026rsquo; Online Document Viewer Plugin for Google Chrome We are excited to announce the launch of the GroupDocs Viewer plugin for Chrome. Install the plugin to Chrome to view and share documents. It helps you support a wide range of file formats without any having to install new software. GroupDocs Viewer is an online document viewer and allows viewing of Word, PDF, images and other files easily. Now Chrome users can read various documents through their browser. Embed a document and share it with colleagues. The entire process is fast, efficient and facilitates document collaboration. GroupDocs Viewer is both platform and software independent.\nIntroduction to GroupDocs Viewer - An Online Doc Viewer GroupDocs\u0026rsquo; online document viewer is designed for document viewing and sharing using a web- browser. From text documents, presentations or spreadsheets, GroupDocs Viewer supports them all. An easy-to-use UI and simple workflow gets you started in minutes. Increase your task output: share documents online and collaborate faster with this efficient application. Smart document rendering functionality ensures that the quality in the document you view is the same as in the original. Whether you open a document through GroupDocs Viewer or with the software that created it, the style, formatting and layout is the same. If you\u0026rsquo;re working with a Microsoft Word file, GroupDocs Viewer works as an online Word viewer. Most popular file formats are compatible with GroupDocs Viewer and the list is ever-increasing:\nWord processing documents (DOC, DOCX, TXT, RTF, ODT) PowerPoint presentations (PPT, PPTX) Image files (JPG, BMP, GIF, TIFF) Portable files (PDF) Spreadsheets (XLS, XLSX) Benefits of Online Viewer App Using GroupDocs Viewer in the workplace can help individuals and companies with document management. So regardless of the file format, you can upload and share files with peers easily and effectively from within a Chrome browser. There is no dependency on having Microsoft Office or Acrobat Reader installed. GroupDocs Viewer only requires a browser to function and works well on mobile devices, tablets and laptops. GroupDocs Viewer works as an online PDF viewer or online PowerPoint viewer; it saves time and avoids communication breaks. Some of the benefits of using GroupDocs Viewer are:\nPrint, download or copy documents. Search texts easily. Navigate using thumbnails. Scroll pages. Manage document rights. Embed documents to websites or applications. View and share DOCX, PDF, PPT and others through Chrome browser. Installing and Using the GroupDocs Viewer Plugin Open your chrome browser and visit the chrome web store. Search for GroupDocs Viewer plugin Click Add to Chrome.\rAfter successful installation, an icon appears in the top-right corner of the Chrome browser. It allows you to access, view and manage documents without having to visit the GroupDocs website. An online document viewer such as GroupDocs Viewer scores high for its effective use and user-friendly design. For more information, please refer to the online help.\nWhy GroupDocs Viewer? Receiving and sharing different files between teams is never easy. Different user groups have different applications and sometimes, when they share files with other members it turns out that they cannot open the file or does not have the necessary software. As a result, time and productivity is lost. GroupDocs Viewer overcomes cross-platform or version issues and lets you work with wide range of file formats. From Word, through PDF to JPEG, GroupDocs Viewer can function as an online Word viewer or online PDF viewer. GroupDocs Viewer is a an online document viewer for viewing and sharing business documents through a browser. Upload the content to your GroupDocs account and share it online. Optimize task and share documents with teams from your desk, where ever they are. Reviewing documents and disseminating information is important in this digital age. GroupDocs Viewer offers great value to individuals and organizations operating in different verticals. Don\u0026rsquo;t wait any longer, just try out the demo and see how it works. We appreciate and value our customers feedback. Your suggestions can help us improve and deliver products and services effectively. Chat online or post feedback or queries on the GroupDocs Forum.\n","permalink":"https://blog.groupdocs.com/viewer/online-document-viewer-for-google-chrome-is-now-available-from-groupdocs/","summary":"GroupDocs\u0026rsquo; Online Document Viewer Plugin for Google Chrome We are excited to announce the launch of the GroupDocs Viewer plugin for Chrome. Install the plugin to Chrome to view and share documents. It helps you support a wide range of file formats without any having to install new software. GroupDocs Viewer is an online document viewer and allows viewing of Word, PDF, images and other files easily. Now Chrome users can read various documents through their browser.","title":"Online Document Viewer for Google Chrome is Now Available from GroupDocs"},{"content":"We are often asked whether our GroupDocs Viewer for .NET works with Microsoft ASP.NET MVC 4. The answer is YES, it works well. In this article, we will learn how to use the ASP.NET HTML5 DLL version of GroupDocs\u0026rsquo; document viewer with .NET MVC 4.\nRequirements GroupDocs Viewer Microsoft ASP.NET MVC 4 Сonnection and useTo use the DLL version of GroupDocs\u0026rsquo; document viewer for .NET in an ASP.NET MVC Project: Download GroupDocs Viewer for .NET to your local PC. You can buy or download trial version here.\nCopy the GroupDocs Viewer.dll file to the project\u0026rsquo;s reference folder.\nAdd a reference to the Groupdocs.Viewer.dll assembly to your project.\nInsert the following calls into the Application_Start method of your Global.asax.cs:\nGroupdocsViewer.InitRoutes();// registers routes for the Viewer GroupdocsViewer.SetLicensePath(\u0026lt;path to your license file if you have one\u0026gt;); GroupdocsViewer.SetRootStoragePath(\u0026lt;path to the directory where you store your documents and image cache of the Viewer\u0026gt;); Insert the following code to load GroupDocs Viewer for .NET scripts and CSS into the section of your _Layout.vbhtmlfile:\n@imports Groupdocs.Web.UI In the Global.asaxfile, add this code just after AreaRegistration.RegisterAllAreas()\nGroupdocs.Web.UI.GroupdocsViewer.InitRoutes() Groupdocs.Web.UI.GroupDocsViewer.SetLicensePath(\u0026lt;path to your license file if you have one\u0026gt;); Groupdocs.Web.UI.GroupdocsViewer.SetRootStoragePath(\u0026#34;\u0026lt;path to the directory where you store your documents and image cache of the Viewer\u0026gt;\u0026#34;) Insert the following code to load Groupdocs Viewer for .NET scripts and CSS into the ****section of your page:\n@Html.CreateViewerScriptLoadBlock() You can set options to insert code which will load jQuery and jQuery UI scripts:\n@Html.CreateViewerScriptLoadBlock().LoadJquery().LoadJqueryUi() This call will create a number of ** blocks. To show GroupDocs\u0026rsquo; online document viewer on the page, simply add this code:\n\u0026lt;div id=\u0026#34;test\u0026#34; style=\u0026#34;width:800px;height:700px\u0026#34;\u0026gt;\u0026lt;/div\u0026gt; @(Html.ViewerClientCode() .TargetElementSelector(\u0026#34;#test\u0026#34;) .FilePath(\u0026#34;mass\\_media.doc\u0026#34;) .DocViewerId(\u0026#34;doc\\_viewer1\u0026#34;) .EnableRightClickMenu(true) .ShowThumbnails(true) .OpenThumbnails(true) .ZoomToFitWidth() .Width(500) .Height(300)) Where:\n.TargetElementSelector(\u0026quot;#test\u0026quot;) _ – select the div with ID \u0026ldquo;test\u0026rdquo;.\n.FilePath(\u0026ldquo;GroupDocs_Signature_Demo.pdf\u0026rdquo;) _ – the name of the file which you want to embed in the iframe. This file must be in the directory where you store documents and the Viewer\u0026rsquo;s image cache.\n.DocViewerId(\u0026ldquo;doc_viewer1\u0026rdquo;) _ – the iframe\u0026rsquo;s ID.\nNote: If the GroupDocs Viewer icons are not loaded in the added iframe, do the following:\nGo to the project properties -\u0026gt; web and set Use Visual Studio Development server then run project When the code runs, we see an iframe with GroupDocs Viewer on the page. [caption id=\u0026ldquo;attachment_2980\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;GroupDocs\u0026rsquo; online document viewer in action\u0026rdquo;]\r[/caption]\n","permalink":"https://blog.groupdocs.com/viewer/how-to-use-groupdocs-viewer-for-net-mvc4/","summary":"We are often asked whether our GroupDocs Viewer for .NET works with Microsoft ASP.NET MVC 4. The answer is YES, it works well. In this article, we will learn how to use the ASP.NET HTML5 DLL version of GroupDocs\u0026rsquo; document viewer with .NET MVC 4.\nRequirements GroupDocs Viewer Microsoft ASP.NET MVC 4 Сonnection and useTo use the DLL version of GroupDocs\u0026rsquo; document viewer for .NET in an ASP.NET MVC Project: Download GroupDocs Viewer for .","title":"How to Use GroupDocs' Document Viewer for .NET MVC4"},{"content":"We\u0026rsquo;re glad to announce the release of the .NET version of our universal HTML5 document viewer!\nGroupDocs.Viewer does away with cross-platform and cross-version issues and lets users upload and view documents online. It supports a wide range of popular business formats, from word processing files like DOC, DOCX and ODT, to spreadsheet formats like XLS and XLSX, PDF files and several other text and image formats. With GroupDocs\u0026rsquo; online document viewer, documents are read, navigated, downloaded and printed from a web interface.\nOriginally, GroupDocs.Viewer was available as a web app only. But for many of our customers, it is important to control where files are stored. GroupDocs.Viewer for .NET library integrates with your existing .NET applications and lets you store both the documents and the viewer code on your own servers. That means that the files never leave your control but are stored and rendered from within your infrastructure.\nUsing GroupDocs.Viewer is easy: end users understand the controls intuitively and can navigate, search, download or print documents immediately from any HTML5-complient web-browser.\nTo find more information on the .NET version of the GroupDocs.Viewer and download a free evaluation copy, please visit its homepage.\n","permalink":"https://blog.groupdocs.com/viewer/announcing-groupdocs-viewer-for-net-an-asp-dotnet-html5-dll-version-of-groupdocs-online-document-viewer/","summary":"We\u0026rsquo;re glad to announce the release of the .NET version of our universal HTML5 document viewer!\nGroupDocs.Viewer does away with cross-platform and cross-version issues and lets users upload and view documents online. It supports a wide range of popular business formats, from word processing files like DOC, DOCX and ODT, to spreadsheet formats like XLS and XLSX, PDF files and several other text and image formats. With GroupDocs\u0026rsquo; online document viewer, documents are read, navigated, downloaded and printed from a web interface.","title":"Announcing GroupDocs.Viewer for .NET Library - a DLL Version of the GroupDocs HTML5 Document Viewer"},{"content":"We\u0026rsquo;re excited to announce the launch of the GroupDocs Annotation plugin for Drupal. The plugin lets you embed documents into Drupal webpages to review and annotate them through a browser. So, annotate PDF or other files online and enjoy the benefits of collaborative review. GroupDocs Annotation is a web-based application used to share and review documents. Different annotation options allows you to make comments or suggestions in different ways. From strikeouts to \u0026lsquo;point notes\u0026rsquo;, comments and drawings, GroupDocs Annotation lets you add your feedback in a way that suits you. View comments made by other members and resolve conflicts easily. Get feedback faster and save all comments in a single file. GroupDocs Annotation supports a wide range of file formats and helps with online PDF annotation, Word annotation, and lets you annotate other file formats too.\nWhat is GroupDocs Annotation? GroupDocs Annotation is an online document review and collaboration application. Upload a document and invite colleagues to review it. Teams can view and add comments, respond to questions, highlight text and form a consensus. All comments are accessible to all team members. Document review by email chain is often a frustrating experience. Online document sharing and collaboration helps teams engage and prioritize tasks. It helps avoid cumbersome email chains. Work smarter and annotate PDF and other documents through a browser. GroupDocs Annotation promotes collaborative reviewing and keeps every member informed about progress. Sharing feedback and comments online enables writers and editors to manage documents and save comments in a single place for reference. Real-time collaboration is also possible, which results in a faster review and approval process. Manage contacts and document rights easily and avoid unauthorized use. From online PDF annotation to online image annotation, our application helps you work faster.\nHow to Install the Plugin Paste the unzipped PHP SDK to the \\libraries folder in your site\u0026rsquo;s \\all folder. Paste the jquery_file_tree file to the \\all\\libraries folder. Paste the groupdocs_annotation file to the site\u0026rsquo;s \\modules folder. In Drupal, click the Modules tab. Select the Embedded GroupDocs Annotation check box under OTHER. Click Save configuration. [caption id=\u0026ldquo;attachment_2646\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Install the plugin to easily annotate PDF and other files online\u0026rdquo;]\r[/caption] Now, configure the API Keys to embed and share documents from Drupal webpages. GroupDocs Annotation is platform and software independent and doesn’t require any new software installation. Add notes, make comments, area notes and others; annotate and review documents from your desk. [caption id=\u0026ldquo;attachment_2648\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Perform Word and PDF annotation from within Drupal websites\u0026rdquo;]\r[/caption] Refer to the online help for assistance.\nWhy GroupDocs Annotation? The growing popularity of wikis, community forums and other information sharing platforms has changed the definition of collaboration. Business teams design products based on discussion between users. GroupDocs Annotation is a web-based document review and annotation tool. GroupDocs Annotation has an interactive dashboard that makes performing review tasks easily. Upload documents that needs feedback, share links and invite members for collaborative review. Each member gives suggestions and comments and the writers then incorporate the comments and get approval. File compatibility is one of the key features of GroupDocs Annotation that makes file sharing easy. There\u0026rsquo;s no need to have Adobe Acrobat or Microsoft Office installed: you can do PDF annotation or Word annotation in a browser. Try the demo now and enjoy the benefits of online Word annotation, online PDF annotation and support for many other file formats in a single tool! Learning GroupDocs Annotation is easy: you\u0026rsquo;ll be up and running in minutes. GroupDocs\u0026rsquo; annotation app has wide industry usage and benefits organizations that have issues with document management and collaboration. Share your experiences with us. We want to hear them and provide solutions to any issues you have. Chat online or post feedback or queries on the GroupDocs Forum.\n","permalink":"https://blog.groupdocs.com/annotation/annotate-pdf-or-other-files-online-in-drupal-webpages/","summary":"We\u0026rsquo;re excited to announce the launch of the GroupDocs Annotation plugin for Drupal. The plugin lets you embed documents into Drupal webpages to review and annotate them through a browser. So, annotate PDF or other files online and enjoy the benefits of collaborative review. GroupDocs Annotation is a web-based application used to share and review documents. Different annotation options allows you to make comments or suggestions in different ways. From strikeouts to \u0026lsquo;point notes\u0026rsquo;, comments and drawings, GroupDocs Annotation lets you add your feedback in a way that suits you.","title":"Annotate PDF and Other Documents Online in Drupal Webpages"},{"content":"Let me show you how to install and use GroupDocs online document viewer plugin for Alfresco CMS on Linux.\nRequirements Java jdk Java jre Alfresco GroupDocs Viewer plugin Apache Tomcat PostGRE SQL Preparation First of all, you should have Alfresco CMS installed in your machine. Download and install a community version if you don\u0026rsquo;t have one already. Alfresco is a Java CMS, so we need Apache tomcat and PostGRE SQL installed. But don\u0026rsquo;t worry! you don\u0026rsquo;t need to install them manually. They come as a package with Alfresco and they will be installed and configured automatically along with the Alfresco installation if you choose the standard installation. If you choose advanced installation, you will be able to select which software to install and which not. Also, in advanced mode, you can configure your Alfresco, Tomcat and Database settings such as PORT, locations, etc. I\u0026rsquo;m using standard installation for this tutorial; however, if you prefer advanced installation, you can refer to Alfresco docs on how to install it in advanced mode.\nPlugin Installation GroupDocs Viewer plugin is a compiled package for Alfresco CMS. So we should put plugins files to the WAR file of the CMS, which will be unpacked when you start Tomcat service. After you install the plugin, Alfresco folder will be deleted by the apply_amps.sh script from the Webapp folder. But don\u0026rsquo;t worry! all necessary folders and files will be created as soon as you start the Tomcat service. GroupDocs plugin for Alfresco is now available as Version 1.0 and have minimal functionality such as embed iframe with document. The embedding is made available only via inserting a file ID and the size (Height and Width) of the iframe. But, the coming versions will include functionality like uploading files to your GroupDocs account, browsing these GroupDocs files directly from within the plugin interface, and then select a preferred file for embedding. So let\u0026rsquo;s get on with the installation process. To install GroupDocs Viewer plugin for Alfresco, do the following:\nDownload the .jar and .amp files from GitHub repository. Start ALFRESCO_INSTALL_DIR/manager-windows.exe and stop tomcat if it\u0026rsquo;s running. Copy alfresco-groupdocs-viewer-share-1.0.jar file and paste it to ALFRESCO_INSTALL_DIR/tomcat/webapps/share/WEB-INF/lib directory. Copy alfresco-groupdocs-viewer-repo-1.0.amp file and paste it to ALFRESCO_INSTALL_DIR/amps directory. Run script ALFRESCO_INSTALL_DIR/bin/apply_amps.Result: The plugin installation is completed. Plugin Usage Now, let\u0026rsquo;s have a look at how to use the plugin. GroupDocs Viewer supports multiple file formats; importantly, all common and business file formats. For example, this all-in-one viewer can be used as an online:\nPDF viewer Word viewer (DOC, DOCX, TXT, RTF, ODT) PowerPoint viewer (PPT, PPTX) Spreadsheet viewer (XLS, XLSX) Image file viewer (JPG, BMP, GIF, TIFF) With the help of this add-on, you can simply embed documents to your Alfresco pages so that your website visitors can view documents online using GroupDocs\u0026rsquo; high-fidelity online document viewer. The application is so intuitive that even novice users can easily view documents online using it. And now the moment of truth, lets use it. To add GroupDocs iframe to your site, do the following:\nLog in to the Alfresco admin panel using your admin credentials and then click Create content in your home space. Result: The Create Content Wizard page is loaded. Add a name, select content type as HTML, and then click Next. Result: The TinyMCE editor is displayed. Click the GroupDocs icon. Result: A window with File ID, Height and Width fields is popped up. Paste the file ID (or GUID) in the File ID field, enter the height and width in px, and then click Insert. Result: The embedded document is displayed. Note: To find more information, please refer to the online help on how to find the file ID? Note: For security reasons, Alfresco strips off IFRAME tag from HTML in Blogs and Discussions. According to this blog entry, that will become configurable in the next version. Congratulations! you\u0026rsquo;ve successfully embedded the document, complete with GroupDocs Viewer to Alfresco CMS.\n","permalink":"https://blog.groupdocs.com/viewer/how-to-install-and-use-groupdocs-online-document-viewer-plugin-for-alfresco-on-linux/","summary":"Let me show you how to install and use GroupDocs online document viewer plugin for Alfresco CMS on Linux.\nRequirements Java jdk Java jre Alfresco GroupDocs Viewer plugin Apache Tomcat PostGRE SQL Preparation First of all, you should have Alfresco CMS installed in your machine. Download and install a community version if you don\u0026rsquo;t have one already. Alfresco is a Java CMS, so we need Apache tomcat and PostGRE SQL installed.","title":"How to Install and Use GroupDocs' Online Document Viewer Plugin for Alfresco on Linux"},{"content":"In this article I\u0026rsquo;ll walk you thorough the process of creating a simple JavaScript application which shows files and directories from your GroupDocs account. Lets start by creating a package from the GroupDocs JavaScript SDK sources. You can skip this step and get the full SDK package from GitHub and a minimal SDK package.\nCreating a Package You need Node.js installed on you computer. Read more about installation Node.js. When Node.js is on your computer you can start building package.\nLet\u0026rsquo;s grab the SDK from github: https://github.com/groupdocs/groupdocs-javascript.\ngit clone git://github.com/groupdocs/groupdocs-javascript.git Now you need to install all dependencies.\nIn the groupdocs-javascript folder start command:\nnpm install And the final step - building the package:\nWe will build the SDK with all of its parts, but if you want, you can use specific parts and build a package with only the API that you need. Just edit the file /groupdocs-javascript/src/index.js.\nmake dist You may get an error like:\nstream.js:81 throw er; // Unhandled stream error in pipe. ^ Error: ENOENT, open \u0026#39;dist/groupdocs-javascript.js\u0026#39; make: \\*\\*\\* \\[dist\\] Error 1 If so, there\u0026rsquo;s an issue with your dist directory. Please check that there is such a directory - /groupdocs-javascript/dist/ - and that is it writable. If there was no error you can find your groupdocs-javascript.js in the /groupdocs-javascript/dist/ directory. We will use this file in our application.\nBuilding an Application: First Steps - HTML The simplest way to start use GroupDocs Javascript SDK is to create simple HTML file with the following:\n... \u0026lt;script src=\u0026#34;./groupdocs-javascript.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;script\u0026gt; var clientId = \u0026#34;\u0026#34;; var apiKey = \u0026#34;\u0026#34;; var aClient = new groupdocs.ApiClient(new groupdocs.GroupDocsSecurityHandler(apiKey)); var api = new groupdocs.StorageApi(aClient, \u0026#34;https://dev-api.groupdocs.com/v2.0\u0026#34;); api.GetStorageInfo(function(response) { console.log(\u0026#34;success callback\u0026#34;); console.log(response.result); }, clientId); \u0026lt;/script\u0026gt; ..... If you enter the client ID and API key and start the file in your browser, you will see the following in the console: Building an Application: The Application Now let\u0026rsquo;s start creating the application.\nCreate an app.htmlfile:\n\u0026lt;!DOCTYPE html PUBLIC \u0026#34;-//W3C//DTD HTML 4.01//EN\u0026#34; \u0026#34;http://www.w3.org/TR/html4/strict.dtd\u0026#34;\u0026gt; \u0026lt;html xmlns=\u0026#34;http://www.w3.org/1999/xhtml\u0026#34; lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta http-equiv=\u0026#34;Content-Type\u0026#34; content=\u0026#34;text/html; charset=utf-8\u0026#34; /\u0026gt; \u0026lt;title\u0026gt;GroupDocs JavaScript SDK application\u0026lt;/title\u0026gt; \u0026lt;meta name=\u0026#34;author\u0026#34; content=\u0026#34;GroupDocs\u0026#34; /\u0026gt; \u0026lt;script src=\u0026#34;https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;script src=\u0026#34;./groupdocs-javascript.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;script src=\u0026#34;./app.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; We will use jQuery for the application so include it. Also include the GroupDocs SDK groupdocs-javascript.js. app.js is a file we\u0026rsquo;ll create for the app.\nCreate app.jsin the same directory:\n(function() { var clientId = \u0026#34;\u0026#34;; var apiKey = \u0026#34;\u0026#34;; var aClient = new groupdocs.ApiClient(new groupdocs.GroupDocsSecurityHandler(apiKey)); var api = new groupdocs.StorageApi(aClient, \u0026#34;https://dev-api.groupdocs.com/v2.0\u0026#34;); var getStructure = function (path) { path = path || \u0026#34;\u0026#34;; api.ListEntities(function(response, status, jqXHR) { console.log(\u0026#34;success callback \u0026#34; + status); console.log(response.result); }, clientId, path); } var init = function () { getStructure(); } init(); }()); Enter credentials, start in the browser and you will see in console: This is what we\u0026rsquo;ve done here: var getStructure - the method with the API call. api.ListEntities - returns a list of files and folders from a defined path. Requires two parameters: clientId and path. path = path || \u0026ldquo;\u0026rdquo;; - use an empty string to get the root folder. var init - here we can define everything we want to do when the app. starts. init(); - start app. Now lets add a method which will display the list of folders and files received from GroupDocs API as DOM elements.\nvar show\\_list = function (list) { var folderList = \u0026#39;\u0026#39;; var fileList = \u0026#39;\u0026#39;; var length = list.folders.length; var element = null; for (var i = 0; i \u0026lt; length; i++) { element = list.folders\\[i\\]; folderList += \u0026#34;\u0026lt;li class=\u0026#39;directory collapsed\u0026#39;\u0026gt;\u0026lt;a href=\u0026#39;#\u0026#39; rel=\u0026#39;\u0026#34; + element.name + \u0026#34;\u0026#39;\u0026gt;\u0026#34; + element.name + \u0026#34;\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\u0026#34;; } var length = list.files.length; var element = null; for (var i = 0; i \u0026lt; length; i++) { element = list.files\\[i\\]; fileList += \u0026#34;\u0026lt;li class=\u0026#39;file ext\\_\u0026#34; + element.file\\_type.toLowerCase() + \u0026#34;\u0026#39;\u0026gt;\u0026lt;a class=\u0026#39;iframe\u0026#39; href=\u0026#39;\u0026#39; rel=\u0026#39;\u0026#34; + element.guid + \u0026#34;\u0026#39;\u0026gt;\u0026#34; + element.name + \u0026#34;\u0026lt;/a\u0026gt;\u0026lt;/li\u0026gt;\u0026#34;; } }; We will also need somewhere to display this list so add this to the app.htmlfile\u0026rsquo;s body:\n\u0026lt;div id=\u0026#34;filestructure\u0026#34;\u0026gt;\u0026lt;/div\u0026gt; As we need the same for the sub-folders, add this to var show_list:\n$target.append(\u0026#39;\u0026lt;ul class=\u0026#34;jqueryFileTree\u0026#34; style=\u0026#34;\u0026#34;\u0026gt;\u0026#39; + folderList + fileList + \u0026#39;\u0026lt;/ul\u0026gt;\u0026#39;); Also, we need to update parameters:\nvar show\\_list = function (list, $target) Update the initfunction:\nvar init = function () { var $target = $(\u0026#39;#filestructure\u0026#39;); getStructure($target); } Start the app only after the DOM is ready:\n``` $(function() { init(); } ); ``` The last thing we need to do is binding actions on folders - to open them and files - just to log in the console file\u0026rsquo;s GUID. To the end of show_listfunction, add: ``` bindEvents($target); ``` And here is the bind events function: ``` var bindEvents = function($target) { $target.find('li a').bind('click', function(){ if( $(this).parent().hasClass('directory') ) { if( $(this).parent().hasClass('collapsed') ) { // Expand $(this).parent().find('ul').remove(); // cleanup getStructure( $(this).parent(), $(this).attr('rel') ); $(this).parent().removeClass('collapsed').addClass('expanded'); } else { // Collapse $(this).parent().find('ul').slideUp(500); $(this).parent().removeClass('expanded').addClass('collapsed'); } } else { console.log($(this).attr('rel')); } return false; }) } ``` You can add CSS and images to your own taste. The final app may look like this Final app.html Final app.js\n","permalink":"https://blog.groupdocs.com/total/how-to-create-a-simple-application-using-the-groupdocs-javascript-sdk/","summary":"In this article I\u0026rsquo;ll walk you thorough the process of creating a simple JavaScript application which shows files and directories from your GroupDocs account. Lets start by creating a package from the GroupDocs JavaScript SDK sources. You can skip this step and get the full SDK package from GitHub and a minimal SDK package.\nCreating a Package You need Node.js installed on you computer. Read more about installation Node.js. When Node.","title":"How to Create a Simple Application Using the GroupDocs' JavaScript SDK"},{"content":"This article explains how to use the GetChanges method from the ComparisonApi in the GroupDocs SDK.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version.) FatFree framework https://github.com/bcosca/fatfree We already know how to install the Fatfree framework and prepare for creating the sample from a previous article. The sample that we create in this article is not much different from other Fatfree examples. We need a template file with a form and a controller file to process entered data.\nLogic To get a list of changes we need two documents to compare with the GroupDocs Comparison API. We\u0026rsquo;ll look at the output document that a comparison creates. Lets take a look at the logic that this sample implements:\nA user enter User ID, Private Key and File GUID (from GroupDocs account) into the form. The entered data is transfered to the controller for processing. Get entered data. Check entered data. Create GroupDocsRequestSigner, APIClient and ComparisonApi objects. Get all changes from document. Create a table with a list of changes. Return this table to the template. You may think that this logic implies a lot of work, but that\u0026rsquo;s not so: with GroupDocs PHP SDK it\u0026rsquo;s very simple. And now, let me show you how.\nImplementation First of all let\u0026rsquo;s take a look at the complete controller code:\n\u0026lt;?php //\u0026lt;i\u0026gt;This sample will show how to use \u0026lt;b\u0026gt;GetChanges\u0026lt;/b\u0026gt; method from ComparisonApi to return a list of changes of a Document\u0026lt;/i\u0026gt; //###Set variables and get POST data F3::set(\u0026#39;userId\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;privateKey\u0026#39;, \u0026#39;\u0026#39;); f3::set(\u0026#39;result\u0026#39;, \u0026#34;\u0026#34;); $clientId = F3::get(\u0026#39;POST\\[\u0026#34;client\\_id\u0026#34;\\]\u0026#39;); $privateKey = F3::get(\u0026#39;POST\\[\u0026#34;private\\_key\u0026#34;\\]\u0026#39;); $resultFileId = f3::get(\u0026#39;POST\\[\u0026#34;resultFileId\u0026#34;\\]\u0026#39;); function getChanges($clientId, $privateKey, $resultFileId) { //### Check clientId, privateKey and fileGuId if (empty($clientId) || empty($privateKey) || empty($resultFileId)) { throw new Exception(\u0026#39;Please enter all required parameters\u0026#39;); } else { //Set variables for Viewer F3::set(\u0026#39;userId\u0026#39;, $clientId); F3::set(\u0026#39;privateKey\u0026#39;, $privateKey); //###Create Signer, ApiClient and Storage Api objects //Create signer object $signer = new GroupDocsRequestSigner($privateKey); //Create apiClient object $apiClient = new APIClient($signer); //Create ComparisonApi object $CompareApi = new ComparisonApi($apiClient); //###Make request to ComparisonApi using user id //Get changes list for document $info = $CompareApi-\u0026gt;GetChanges($clientId, $resultFileId); //Check request status if($info-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //###Create table with changes for template $table = \u0026#34;\u0026lt;table class=\u0026#39;border\u0026#39;\u0026gt;\u0026#34;; $table .= \u0026#34;\u0026lt;tr\u0026gt;\u0026lt;td\u0026gt;\u0026lt;font color=\u0026#39;green\u0026#39;\u0026gt;Change Name\u0026lt;/font\u0026gt;\u0026lt;/td\u0026gt;\u0026lt;td\u0026gt;\u0026lt;font color=\u0026#39;green\u0026#39;\u0026gt;Change\u0026lt;/font\u0026gt;\u0026lt;/td\u0026gt;\u0026lt;/tr\u0026gt;\u0026#34;; //Count of iterations for($i = 0; $i \u0026lt; count($info-\u0026gt;result-\u0026gt;changes); $i++) { //Cycle for the object of the top level foreach($info-\u0026gt;result-\u0026gt;changes\\[$i\\] as $name =\u0026gt; $content){ $table .= \u0026#34;\u0026lt;tr\u0026gt;\u0026#34;; //Check if the current element is an object if(is\\_object($content)){ //If object make cycle for the current object foreach($content as $subName =\u0026gt; $subContent) { $table .= \u0026#34;\u0026lt;tr\u0026gt;\u0026lt;td\u0026gt;\u0026#34; . $subName . \u0026#34;\u0026lt;/td\u0026gt;\u0026lt;td\u0026gt;\u0026#34; . $subContent . \u0026#34;\u0026lt;/td\u0026gt;\u0026lt;/tr\u0026gt;\u0026#34;; } } elseif(!is\\_object($content)) { //Get current element data $table .= \u0026#34;\u0026lt;td\u0026gt;\u0026#34; . $name . \u0026#34;\u0026lt;/td\u0026gt;\u0026lt;td\u0026gt;\u0026#34; . $content . \u0026#34;\u0026lt;/td\u0026gt;\u0026#34;; $table .= \u0026#34;\u0026lt;/tr\u0026gt;\u0026#34;; } } $table .= \u0026#34;\u0026lt;tr bgcolor=\u0026#39;#808080\u0026#39;\u0026gt;\u0026lt;td\u0026gt;\u0026lt;/td\u0026gt;\u0026lt;td\u0026gt;\u0026lt;/td\u0026gt;\u0026lt;/tr\u0026gt;\u0026#34;; } $table .= \u0026#34;\u0026lt;/table\u0026gt;\u0026#34;; return f3::set(\u0026#39;change\u0026#39;, $table); } else { throw new Exception($info-\u0026gt;error\\_message); } //If request was successful - set url variable for template // return f3::set(\u0026#39;change\u0026#39;, $table); } } try { getChanges($clientId, $privateKey, $resultFileId); } catch(Exception $e) { $error = \u0026#39;ERROR: \u0026#39; . $e-\u0026gt;getMessage() . \u0026#34;\\\\n\u0026#34;; f3::set(\u0026#39;error\u0026#39;, $error); } //Process template f3::set(\u0026#39;resultFileId\u0026#39;, $resultFileId); // f3::set(\u0026#39;result\u0026#39;, $result); echo Template::serve(\u0026#39;sample.htm\u0026#39;); We will not dwell on how to get POST data from the template and check it - you can find out how to do that from this previous article. To get all changes from the compared document, we need only one method: GetChanges (from the ComparisonApi class). This method take two parameters:\nString Client ID String File GUID of the compared file Method call code:\n$info = $CompareApi-\u0026gt;GetChanges($clientId, $resultFileId); In the query result this method returns a ChangesResponse object that contains all the changes.\nCreating a table of changes To create a table with a list of changes we must use several nested loops and checks. These loops go over all the elements and checks whether each element is an object or not. If an element is an object, the next nested loop for this element runs. As a result of the nested loops we get a table with all the changes were each successive iteration of the main loop is in separate rows. Code for the table creation:\n//###Create table with changes for template $table = \u0026#34;\u0026lt;table class=\u0026#39;border\u0026#39;\u0026gt;\u0026#34;; $table .= \u0026#34;\u0026lt;tr\u0026gt;\u0026lt;td\u0026gt;\u0026lt;font color=\u0026#39;green\u0026#39;\u0026gt;Change Name\u0026lt;/font\u0026gt;\u0026lt;/td\u0026gt;\u0026lt;td\u0026gt;\u0026lt;font color=\u0026#39;green\u0026#39;\u0026gt;Change\u0026lt;/font\u0026gt;\u0026lt;/td\u0026gt;\u0026lt;/tr\u0026gt;\u0026#34;; //Count of iterations for($i = 0; $i \u0026lt; count($info-\u0026gt;result-\u0026gt;changes); $i++) { //Cycle for the object of the top level foreach($info-\u0026gt;result-\u0026gt;changes\\[$i\\] as $name =\u0026gt; $content){ $table .= \u0026#34;\u0026lt;tr\u0026gt;\u0026#34;; //Check if the current element is an object if(is\\_object($content)){ //If object make cycle for the current object foreach($content as $subName =\u0026gt; $subContent) { $table .= \u0026#34;\u0026lt;tr\u0026gt;\u0026lt;td\u0026gt;\u0026#34; . $subName . \u0026#34;\u0026lt;/td\u0026gt;\u0026lt;td\u0026gt;\u0026#34; . $subContent . \u0026#34;\u0026lt;/td\u0026gt;\u0026lt;/tr\u0026gt;\u0026#34;; } } elseif(!is\\_object($content)) { //Get current element data $table .= \u0026#34;\u0026lt;td\u0026gt;\u0026#34; . $name . \u0026#34;\u0026lt;/td\u0026gt;\u0026lt;td\u0026gt;\u0026#34; . $content . \u0026#34;\u0026lt;/td\u0026gt;\u0026#34;; $table .= \u0026#34;\u0026lt;/tr\u0026gt;\u0026#34;; } } $table .= \u0026#34;\u0026lt;tr bgcolor=\u0026#39;#808080\u0026#39;\u0026gt;\u0026lt;td\u0026gt;\u0026lt;/td\u0026gt;\u0026lt;td\u0026gt;\u0026lt;/td\u0026gt;\u0026lt;/tr\u0026gt;\u0026#34;; } $table .= \u0026#34;\u0026lt;/table\u0026gt;\u0026#34;; As you can see, we only have two nested loops. This is due to the fact that the ChangesResponse object can\u0026rsquo;t have more than two-tiered nesting. On the first level, we have all the basic changes, and on the second level, we have info about the rectangle element. Now it is time to return this table to the template.\nDisplaying the changes on screen Transferring data to template:\ntry { getChanges($clientId, $privateKey, $resultFileId); } catch(Exception $e) { $error = \u0026#39;ERROR: \u0026#39; . $e-\u0026gt;getMessage() . \u0026#34;\\\\n\u0026#34;; f3::set(\u0026#39;error\u0026#39;, $error); } //Process template f3::set(\u0026#39;resultFileId\u0026#39;, $resultFileId); // f3::set(\u0026#39;result\u0026#39;, $result); echo Template::serve(\u0026#39;sample.htm\u0026#39;); Screenshots Below are screenshots of how it looks in action. [caption id=\u0026ldquo;attachment_2466\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;602\u0026rdquo; caption=\u0026ldquo;Form\u0026rdquo;]\r[/caption] [caption id=\u0026ldquo;attachment_2470\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;602\u0026rdquo; caption=\u0026ldquo;Table displaying the changes\u0026rdquo;]\r[/caption]\n","permalink":"https://blog.groupdocs.com/comparison/how-to-use-the-getchanges-method-from-the-comparisonapi-to-return-a-list-of-changes-in-a-document/","summary":"This article explains how to use the GetChanges method from the ComparisonApi in the GroupDocs SDK.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version.) FatFree framework https://github.com/bcosca/fatfree We already know how to install the Fatfree framework and prepare for creating the sample from a previous article. The sample that we create in this article is not much different from other Fatfree examples.","title":"How to Use the GetChanges Method from the Comparison Api to Return a List of Changes in a Document"},{"content":"Great news for all! We’re glad to announce that GroupDocs has introduced the first video in its series: How to view office documents online using GroupDocs Viewer. It’s an intro video for our efficient online document viewer app. In this video, you’ll find the features of GroupDocs Viewer and the methods to view documents online regardless of their format. This video is available on GroupDocs\u0026rsquo; YouTube channel. null We’ve plans to introduce more videos in the coming weeks. The videos will include intros, how-tos, work-flow diagrams \u0026amp; comparison, and so on, covering all our apps. So, please stay tuned for more videos on how to:\nView documents online Compare documents online Perform document automation and document assembly Prepare documents for e-signature Sign documents online Perform document conversion Annotate PDF, Word, Excel and other documents online. Your feedback is important for us. So get back to us via Live chat or GroupDocs Forum.\n","permalink":"https://blog.groupdocs.com/viewer/groupdocs-released-an-intro-video-to-visually-describe-its-online-document-viewer-the-first-in-a-series/","summary":"Great news for all! We’re glad to announce that GroupDocs has introduced the first video in its series: How to view office documents online using GroupDocs Viewer. It’s an intro video for our efficient online document viewer app. In this video, you’ll find the features of GroupDocs Viewer and the methods to view documents online regardless of their format. This video is available on GroupDocs\u0026rsquo; YouTube channel. null We’ve plans to introduce more videos in the coming weeks.","title":"GroupDocs Released an Intro Video to Visually Describe its Online Document Viewer - the First in A Series!"},{"content":"We are excited to launch the GroupDocs Annotation plugin for Joomla. Our annotation plugin lets you embed documents to Joomla sites and allows PDF annotation, Microsoft Word annotation, and annotation of other files easily. GroupDocs Annotation simplifies document review and collaboration between teams. The powerful tool lets you add comments, draw text, strikeout content to Word, PDF or any image file through a browser. Share documents online with your colleagues for faster review and approval process. GroupDocs Annotation is compatible with different file formats. Annotate PDF, Word, or Excel from your desk and leverage the benefits of collaborative annotation.\nAbout GroupDocs AnnotationGroupDocs Annotation is a web-based application designed for reviewing documents online. The interactive dashboard offers different annotation options for you to review documents. GroupDocs Annotation fosters collaborative reviewing and can benefit global teams working on projects. Simply invite colleagues and partners to review documents and share feedback online. Comments are accessible to all members and helps writers and managers in document management. GroupDocs is software and platform-independent, which means that it requires only a web-browser to function. Be it a PDF, Microsoft Word, or JPEG, GroupDocs Annotation does PDF annotation, Word annotation or image annotation real quick. Our annotation application not only facilitates real-time collaboration; you can also manage contacts and have complete control over document rights. Assign document rights when sharing documents and control what tasks team members can perform - download, proof, view or export. Installing Annotation Plugin Click Install/Uninstall on the Extensions menu. Under Upload Package File, click Browse and select the path for extension. Click Upload \u0026amp; Install. Repeat the above steps to upload and install the Editor extension. [caption id=\u0026ldquo;attachment_2412\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Install this efficient plugin with Joomla to annotate PDF and other documents\u0026rdquo;]\r[/caption] Now, embed and share documents online with your colleagues and let them annotate PDF, Word and other files instantly. GroupDocs Annotation helps task-optimization and results in faster document review cycles. [caption id=\u0026ldquo;attachment_2410\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Perform Word and PDF annotation from within Joomla websites\u0026rdquo;]\r[/caption] To read the complete procedure for installing and using the plugin, refer to the online help\nWhy GroupDocs Annotation?Collaboration is inevitable in this information age. Business units, teams, or groups work together to achieve targets. During the process, sharing documents or files for review and suggestions are of prime importance. GroupDocs Annotation fulfills both objectives. Invite colleagues and share a PDF or marketing brochure for review, GroupDocs Annotation works as PDF annotation, or any other file annotation that you need. GroupDocs Annotation has solutions for businesses catering to different verticals. From IT firms to academic institutions, need for collaborative feedback is growing exponentially. Our super-intuitive application makes document reviewing fast and secure. The ability to work with all business formats makes our application a first-rate product. Because of its flexibility, GroupDocs Annotation is called online PDF annotation and online Word annotation. Try it now! to see the difference. Have interesting experiences to share? Please leave your feedback on GroupDocs products in our forum. ","permalink":"https://blog.groupdocs.com/annotation/pdf-annotation-word-annotation-and-others-in-joomla-with-groupdocs-annotation-plugin/","summary":"We are excited to launch the GroupDocs Annotation plugin for Joomla. Our annotation plugin lets you embed documents to Joomla sites and allows PDF annotation, Microsoft Word annotation, and annotation of other files easily. GroupDocs Annotation simplifies document review and collaboration between teams. The powerful tool lets you add comments, draw text, strikeout content to Word, PDF or any image file through a browser. Share documents online with your colleagues for faster review and approval process.","title":"PDF Annotation, Word Annotation and Others in Joomla with GroupDocs Annotation Plugin"},{"content":"This article explains how to use the new method LoginUser, added to the new GroupDocs SDK.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version.) FatFree framework (https://github.com/bcosca/fatfree) We already know how to install the Fatfree framework and prepare for creating the sample from a previous article. The sample that we create in this article is not much different from other FatFree samples. We need a template file with a form and a controller file to process any entered data.\nLogic For security reasons the GroupDocs plugins and services use the User ID and API key to authorize a GroupDocs account from remote plugins. But this method is not comfortable for users which is why the new SDK release added a new method called LoginUser. With this method a user can be authorized in GroupDocs using email and password like in normal account authorization. As you\u0026rsquo;ve already guessed, this method takes two parameters:\nString email String password So according to this all we need to do is take this data from a form and transfer it to the method. In response, the method returns all user info, including the User ID and API key. To use the method we need to use a little trick. To call the LoginUser method, as for all other methods, we have to create and object of the class that contains the method. So we have to create objects like GroupDocsRequestSigner and ApiClient. But to create these objects, don\u0026rsquo;t we need the User ID and API key? Yes, but we can avoid using them and the trick is in that the User ID and API key is needed to sign a request to the server, but LoginUser is a public method which doesn\u0026rsquo;t need to be signed. So we can create GroupDocsRequestSigner and ApiClient objects with any data instead of the User ID and API key. For example, let\u0026rsquo;s use the string \u0026ldquo;12345\u0026rdquo;.\nImplementation The template file is the same as in the article about two ways of updating files to GroupDocs accounts. Because of this, I will not explain the template file but go straight to the Controller file where all the magic happens. Here is a sample of the code:\n//###Set variables and get POST data F3::set(\u0026#39;email\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;password\u0026#39;, \u0026#39;\u0026#39;); $email = F3::get(\u0026#39;POST\\[\u0026#34;email\u0026#34;\\]\u0026#39;); $pass = F3::get(\u0026#39;POST\\[\u0026#34;password\u0026#34;\\]\u0026#39;); //Create signer object $signer = new GroupDocsRequestSigner(\u0026#34;12345\u0026#34;); //Create apiClient object $apiClient = new APIClient($signer); $sharedapi = new SharedApi($apiClient); //Login and get user info $getUserInfo = $sharedapi-\u0026gt;LoginUser($email, $pass); In this code we get POST data from the form where the user enters the email and password for his GroupDocs account. Them we create the GroupDocsRequestSigner and ApiClient objects using \u0026ldquo;12345\u0026rdquo; instead of the API key and SharedApi object to get access to the LoginUser method. In response we get the UserInfoResponse object. This object has all the data about the user account. We are interested in the User ID and API key because we need them to work with GroupDocs data in the account. That\u0026rsquo;s the entire reason we used the LoginUser method: to get these two parameters. We have all the the account data and from this, we can get the User ID and API key like this:\n$userId = $getUserInfo-\u0026gt;result-\u0026gt;user-\u0026gt;guid; $apiKey = $getUserInfo-\u0026gt;result-\u0026gt;user-\u0026gt;pkey; The UserInfoResponse object has this structure: [caption id=\u0026ldquo;attachment_2418\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;602\u0026rdquo; caption=\u0026ldquo;The structure of the UserInfoResponse object\u0026rdquo;]\r[/caption] That\u0026rsquo;s all. Very simple, don\u0026rsquo;t you think?\n","permalink":"https://blog.groupdocs.com/total/how-to-use-new-login-method-in-plugins-and-services/","summary":"This article explains how to use the new method LoginUser, added to the new GroupDocs SDK.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version.) FatFree framework (https://github.com/bcosca/fatfree) We already know how to install the Fatfree framework and prepare for creating the sample from a previous article. The sample that we create in this article is not much different from other FatFree samples.","title":"How to Use New Login Method in Plugins and Services"},{"content":"TextPattern users have a reason to get excited - we have launched GroupDocs\u0026rsquo; annotation plugin for TextPattern. Embed documents to TextPattern pages and use our tool to annotate PDF, Microsoft Word, or other files easily. GroupDocs Annotation makes document reviewing and collaboration simple and its powerful set of annotation options scores high with our users. Our annotation plugin lets you share documents online with global teams and help them engage in group tasks. This platform-independent tool optimizes task output, as comments and updates are accessible to members online. When considering file compatibility, GroupDocs Annotation does PDF annotation, Excel annotation or Word annotation in an organized way.\nAbout GroupDocs Annotation GroupDocs Annotation is an online document reviewing application that lets you review documents through a web-browser. Add comments, highlight text, draw lines, mark up points and many more features are available in our efficient application. GroupDocs benefits documentation teams by making it easy to invite colleagues to review documents, and then share feedback and comments online. This way you can annotate PDF or any other file from your desk, avoid lengthy email exchanges and save time. Collaboration is faster as comments and updates are seen real-time. GroupDocs Annotation is a powerful tool for reviewing documents that lets reviewers comment and mark up documents in an intuitive, interactive way. Our annotation application helps organizations leverage the true potential of collaborative reviewing. Share any file with colleagues or business partners and GroupDocs Annotation adapts accordingly. For PDFs, it does PDF annotation, for image files, it does image annotation.\nInstallation Workflow Follow the simple steps to install the annotation plugin real quick:\nClick the Admin tab, and then the Plugins tab. Copy the content from the plugin file. Paste the content into the Install plugins field. Click Upload. Click Install. [caption id=\u0026ldquo;attachment_2373\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;599\u0026rdquo; caption=\u0026ldquo;Install this efficient plugin with TextPattern to annotate PDF, Word and other documents\u0026rdquo;]\r[/caption] Result: Share the document online and let your colleagues annotate PDF, Word and other documents instantly. The GroupDocs Annotation plugin caters to the needs of web site owners, managers and marketing teams by providing an intuitive tool. [caption id=\u0026ldquo;attachment_2377\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;599\u0026rdquo; caption=\u0026ldquo;Perform Word and PDF annotation from within your TextPattern website\u0026rdquo;]\r[/caption] For assistance on plugin integration, refer to the online help.\nWhy GroupDocs Annotation? Businesses in this digital age need faster means of disseminating information and exchange ideas. GroupDocs Annotation helps with both. You can annotate PDF online, or work with Excel, Word or other files online through a browser. With no software prerequisites, document sharing and reviewing is fast with GroupDocs Annotation. For example, you don\u0026rsquo;t need Acrobat software installed on your machine to annotate PDF documents; simply perform PDF annotation just using a browser. GroupDocs Annotation offers solutions to businesses, designers, law firms, academics and other institutions involved in document collaboration and reviewing. Annotate your own way and create a signature style. One of the major highlights of our application is its flexibility and adaptability with all business file formats. For this reason, it is called an online PDF annotation, online Word annotation, online image annotation among other names. Do you want to annotate PDF, Word, Excel and other files hassle-free, try this annotation demo now! It is self-explanatory and learning can be fun! We value customer feedback. Post a question on our forum or chat with us. We strive to deliver a top-level user experience.\n","permalink":"https://blog.groupdocs.com/annotation/annotate-pdf-word-and-other-files-in-textpattern-using-the-groupdocs-annotation-plugin/","summary":"TextPattern users have a reason to get excited - we have launched GroupDocs\u0026rsquo; annotation plugin for TextPattern. Embed documents to TextPattern pages and use our tool to annotate PDF, Microsoft Word, or other files easily. GroupDocs Annotation makes document reviewing and collaboration simple and its powerful set of annotation options scores high with our users. Our annotation plugin lets you share documents online with global teams and help them engage in group tasks.","title":"Annotate PDF, Word and Other Files in TextPattern Using the GroupDocs Annotation Plugin"},{"content":"In the previous article, we learned how to create a new PHP project on Heroku. But sometimes our project requires additional extensions that do not exist in the Heroku PHP configuration. So we need to find out how to create and install extensions for PHP on Heroku.\nIn this post, I\u0026rsquo;ll show you these advanced steps, and create a PHP project on Heroku with the GroupDocs PHP SDK Api Samples application.\nPreparation All required preparation are described in previous article. Also, we need two PHP extensions such as Curl and Sockets that are used in our PHP Samples application.\nBuild an extension on Heroku. This can be done by opening a Heroku console, download the PHP source-code and compile the extension, then copying it over.\nTo create the Curl extension:\nOpen console and cd to root folder of your API. \u0026gt;heroku run bash $ mkdir tmp $cd tmp git clonehttps://github.com/php/php-src.git $cd php-src $ cd ext/curl $ /app/php/bin/phpize $ ./configure \u0026ndash;with-php-config=/app/php/bin/php-config $ make $ cd modules To create the Sockets extension, take the same steps.\nDon\u0026rsquo;t close the console. We will use it for the next steps.\nDownload lib from Heroku. Now we have compiled the extension, but this file is on the Heroku server and we need it in our API.\nTo get the file from the server and add it to the API, we can create an empty repo on GitHub and clone it to the temp folder in which we compile the extension. Then copy the extension file and push it to GitHub. After that, you can download it from GitHub to the lib folder and push it to Heroku.\nLets see this logic in practical steps by adding the Curl extension:\nIn the mudel folder, $ ssh-keygen -t rsa $ cat /app/.ssh/id_rsa.pub\nThis command shows your ssh key file content in the console. Copy it. Add your SSH key to GitHub. $ git clone yourreposshurl $ mv curl.so cloned folder name $ cd cloned folder $ git add . $ git commit -m \u0026ldquo;adding extension\u0026rdquo; $ git push origin master $ exit Now we have our extension file in the GitHub repository and we can download it.\nTo add the Sockets extension, take the same steps.\nAdd lib and php.ini file to your app and upload them to Heroku In the root folder of the API, create a lib folder and save the downloaded file there. And there\u0026rsquo;s only one thing left to do: create a php.ini file in the root folder of the API that points to that extension. The changes are committed. To do all this open console and:\ncd to the API root folder \u0026gt;mkdir lib cd to the folder where the downloaded extension folder is. \u0026gt;mv curl.so rootfolderapi/lib cd to the API root folder. $ echo extension = /app/www/lib/curl.so \u0026gt; php.ini $ git add . $ git commit -m \u0026ldquo;adding extension\u0026rdquo; $ git push origin master That\u0026rsquo;s all, your new PHP application is ready to use on Heroku. Enjoy!\nSee Also How to Upload PHP Project to Heroku? ","permalink":"https://blog.groupdocs.com/total/how-to-upload-php-project-to-heroku-advanced-steps/","summary":"In the previous article, we learned how to create a new PHP project on Heroku. But sometimes our project requires additional extensions that do not exist in the Heroku PHP configuration. So we need to find out how to create and install extensions for PHP on Heroku.\nIn this post, I\u0026rsquo;ll show you these advanced steps, and create a PHP project on Heroku with the GroupDocs PHP SDK Api Samples application.","title":"How to Upload PHP Project to Heroku? - Advanced Steps"},{"content":"Heroku is a great opportunity for developers to try and test their code in a production environment. Originally created for Ruby projects, Heroku now supports Ruby, Java, Python and even PHP. Heroku\u0026rsquo;s PHP project support is an undocumented feature so some additional skills are required do deploy such a project.\nIn this post, I\u0026rsquo;ll show you the methods to create a PHP project on Heroku with the GroupDocs PHP SDK Api Samples application.\nPreparation To get the PHP samples, you first need to clone the entire PHP SDK repository:\n$ git clone git://github.com/groupdocs/groupdocs-php.git\nThen go to the examples directory ($ cd groupdocs-php/examples) and copy the api-samples folder to the location where you want to create a Heroku project.\nNote: Before uploading PHP API samples to Heroku, you need to update the PHP SDK in the API Samples project. You can check out our previous posts to find information on how to do this, for example, How to use GroupDocs PHP SDK with Composer or a Built-in Autoloader.\nCreating a Heroku project To create a Heroku project, create a local repository with git (the example below assumes that you have Heroku toolbelt installed).\n$ cd api-samples $ git init $ heroku create yourapplicationname Note that in some guides, you might see the option -stack cedar in the heroku create command. This option is not required anymore. -stack cedar is now the default for new apps on Heroku.\nIf you\u0026rsquo;ve done everything correctly, Heroku creates a new application and adds a new remote (with the same name – heroku) to your local repository. You can check this with the command:\n$ git remote \u0026ndash;v\nYou should see Heroku remote records with remote URLs for pull and push.\nNow you can push your local repository to Heroku:\n$ git push heroku master All your commits from the local repository are pushed to Heroku. Heroku detects the type of your application – PHP project in our case – and starts the appropriate server to host the app.\nIf you use only standard PHP libraries, you can immediately start working with your new application on Heroku:\n$ heroku apps open But if your project/app requires a non-standard library (like the PHP API samples project), then you\u0026rsquo;ll have problems with Heroku if you try to use it immediately. To be able to use such extensions, you need to perform additional steps:\nBuild an extension on Heroku. Download lib from Heroku. Add lib and php.ini file to your app and upload them to Heroku. I\u0026rsquo;ll show you how to perform those advanced steps in the next blog post.\nSee Also How to Upload PHP Project to Heroku? – Advanced Steps ","permalink":"https://blog.groupdocs.com/total/how-to-upload-php-project-to-heroku/","summary":"Heroku is a great opportunity for developers to try and test their code in a production environment. Originally created for Ruby projects, Heroku now supports Ruby, Java, Python and even PHP. Heroku\u0026rsquo;s PHP project support is an undocumented feature so some additional skills are required do deploy such a project.\nIn this post, I\u0026rsquo;ll show you the methods to create a PHP project on Heroku with the GroupDocs PHP SDK Api Samples application.","title":"How to Upload PHP Project to Heroku?"},{"content":"This article explains how to get the fields from a template DOCX file, fill them with data and merge to new PDF file using GroupDocs.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version.) FatFree framework (https://github.com/bcosca/fatfree) We already know how to install the Fatfree framework and prepare for creating the sample from the previous article. The sample that we create in this article is not much different from other sample with Fatfree. We need a template file with a form and a controller file to process entered data.\nSample creation The template file is the same as in the previous article. Because of this, I will not explain the template file but just show the code.\nTemplate file code \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta http-equiv=\u0026#34;Content-Type\u0026#34; content=\u0026#34;text/html; charset=UTF-8\u0026#34;/\u0026gt; \u0026lt;title\u0026gt;Powered by {{ @VERSION }}\u0026lt;/title\u0026gt; \u0026lt;style type=\u0026#34;text/css\u0026#34;\u0026gt; {{ Web::minify(\u0026#39;templates/\u0026#39;,array(\u0026#39;style.css\u0026#39;),FALSE) }} \u0026lt;/style\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;h3 style=\u0026#34;text-align:center;\u0026#34;\u0026gt;\u0026lt;a href=\u0026#34;/index.php\u0026#34;\u0026gt;GroupDocs PHP SDK Samples\u0026lt;/a\u0026gt; - Merge fields\u0026lt;/h3\u0026gt; \u0026lt;div class=\u0026#39;samplecontent\u0026#39; style=\u0026#34;padding:10px;\u0026#34;\u0026gt; \u0026lt;span class=\u0026#34;description\u0026#34;\u0026gt;\u0026lt;i\u0026gt;This sample will show how to merge data fields in docx file with data source and get result file as PDF file using PHP SDK\u0026lt;/i\u0026gt;\u0026lt;/span\u0026gt; \u0026lt;br/\u0026gt; \u0026lt;br /\u0026gt; You entered: ClientID = {{@userId}} PrivateKey = {{@privateKey}} File Id = {{@fileId}} \u0026lt;font color=\u0026#34;red\u0026#34;\u0026gt;{{@error}}\u0026lt;/font\u0026gt; \u0026lt;div id=\u0026#34;requestForm\u0026#34; style=\u0026#34;padding:20px; border:1px solid black;\u0026#34;\u0026gt; Enter data for request and press \u0026#34;Make request\u0026#34; button \u0026lt;form action=\u0026#34;controller\u0026#34; method = \u0026#34;post\u0026#34; enctype = \u0026#39;multipart/form-data\u0026#39;\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;client\\_id\u0026#39;\u0026gt;GroupDocs Client ID\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39; name=\u0026#39;client\\_id\u0026#39; value=\u0026#34;{{@userId}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;private\\_key\u0026#39;\u0026gt;GroupDocs PrivateKey\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39; name=\u0026#39;private\\_key\u0026#39; value=\u0026#34;{{@privateKey}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#34;radio\u0026#34; name=\u0026#34;sourse\u0026#34; value=\u0026#34;guid\u0026#34; id=\u0026#34;id\u0026#34; onClick=\u0026#34;display(\u0026#39;guid\u0026#39;);\u0026#34; checked\u0026gt;File ID (GUID) \u0026lt;/input\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#34;radio\u0026#34; name=\u0026#34;sourse\u0026#34; value=\u0026#34;local\u0026#34; id=\u0026#34;localField\u0026#34; onClick=\u0026#34;display(\u0026#39;local\u0026#39;);\u0026#34; \u0026gt;Upload local file \u0026lt;/input\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#34;radio\u0026#34; name=\u0026#34;sourse\u0026#34; value=\u0026#34;url\u0026#34; id=\u0026#34;urlField\u0026#34; onClick=\u0026#34;display(\u0026#39;url\u0026#39;);\u0026#34; \u0026gt;Upload file from URL \u0026lt;/input\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;private\\_key\u0026#39; id=\u0026#34;guid\u0026#34;\u0026gt;GroupDocs fileID\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39; name=\u0026#39;fileId\u0026#39; id=\u0026#34;guidfield\u0026#34; value=\u0026#34;{{@fileId}}\u0026#34; /\u0026gt; \u0026lt;label for=\u0026#39;file\u0026#39; id=\u0026#34;file\u0026#34; style=\u0026#34;display:none;\u0026#34;\u0026gt;Local file\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;file\u0026#39; name=\u0026#39;file\u0026#39; id=\u0026#34;filefield\u0026#34; style=\u0026#34;display:none;\u0026#34; /\u0026gt; \u0026lt;label for=\u0026#39;private\\_key\u0026#39; style=\u0026#34;display:none;\u0026#34; id=\u0026#34;url\u0026#34;\u0026gt;File URL\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39; name=\u0026#39;url\u0026#39; value=\u0026#34;\u0026#34; id=\u0026#34;urlfield\u0026#34; style=\u0026#34;display:none;\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;submit\u0026#39; value=\u0026#39;Make Request\u0026#39;/\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div style=\u0026#34;padding:20px; border:1px solid black;\u0026#34;\u0026gt; \u0026lt;font color=\u0026#34;green\u0026#34;\u0026gt;{{@message}}\u0026lt;/font\u0026gt; \u0026lt;iframe frameborder=\u0026#34;0\u0026#34; width=\u0026#34;500\u0026#34; height=\u0026#34;650\u0026#34; src=\u0026#34;{{@url}}\u0026#34;\u0026gt;\u0026lt;/iframe\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;br/\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;include href=\u0026#34;links.htm\u0026#34; /\u0026gt; \u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt; function display(\\_element\\_id) { if (\\_element\\_id == \u0026#34;guid\u0026#34;) { var element1 = document.getElementById(\u0026#34;file\u0026#34;); var element2 = document.getElementById(\u0026#34;filefield\u0026#34;); var element3 = document.getElementById(\u0026#34;url\u0026#34;); var element4 = document.getElementById(\u0026#34;urlfield\u0026#34;); var element5 = document.getElementById(\u0026#34;guid\u0026#34;); var element6 = document.getElementById(\u0026#34;guidfield\u0026#34;); element1.style.display = \u0026#34;none\u0026#34;; element2.style.display = \u0026#34;none\u0026#34;; element3.style.display = \u0026#34;none\u0026#34;; element4.style.display = \u0026#34;none\u0026#34;; element5.style.display = \u0026#34;inline\u0026#34;; element6.style.display = \u0026#34;inline\u0026#34;; } if (\\_element\\_id == \u0026#34;local\u0026#34;) { var element1 = document.getElementById(\u0026#34;file\u0026#34;); var element2 = document.getElementById(\u0026#34;filefield\u0026#34;); var element3 = document.getElementById(\u0026#34;url\u0026#34;); var element4 = document.getElementById(\u0026#34;urlfield\u0026#34;); var element5 = document.getElementById(\u0026#34;guid\u0026#34;); var element6 = document.getElementById(\u0026#34;guidfield\u0026#34;); element1.style.display = \u0026#34;inline\u0026#34;; element2.style.display = \u0026#34;inline\u0026#34;; element3.style.display = \u0026#34;none\u0026#34;; element4.style.display = \u0026#34;none\u0026#34;; element5.style.display = \u0026#34;none\u0026#34;; element6.style.display = \u0026#34;none\u0026#34;; } if (\\_element\\_id == \u0026#34;url\u0026#34;) { var element1 = document.getElementById(\u0026#34;url\u0026#34;); var element2 = document.getElementById(\u0026#34;urlfield\u0026#34;); var element3 = document.getElementById(\u0026#34;file\u0026#34;); var element4 = document.getElementById(\u0026#34;filefield\u0026#34;); var element5 = document.getElementById(\u0026#34;guid\u0026#34;); var element6 = document.getElementById(\u0026#34;guidfield\u0026#34;); element1.style.display = \u0026#34;inline\u0026#34;; element2.style.display = \u0026#34;inline\u0026#34;; element3.style.display = \u0026#34;none\u0026#34;; element4.style.display = \u0026#34;none\u0026#34;; element5.style.display = \u0026#34;none\u0026#34;; element6.style.display = \u0026#34;none\u0026#34;; } } \u0026lt;/script\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; OK, what\u0026rsquo;s happening with the template file clear so lets take a look at the controller file.\nController file We already know how to create this file. If you\u0026rsquo;re unsure, look at a previous post that explains how. Below, I\u0026rsquo;ll show you the complete controller code and then explain how it works.\n\u0026lt;?php //\u0026lt;i\u0026gt;This sample will show how to merge data fields in docx file with data source and get result file as PDF file\u0026lt;/i\u0026gt; //###Set variables and get POST data F3::set(\u0026#39;userId\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;privateKey\u0026#39;, \u0026#39;\u0026#39;); $clientId = F3::get(\u0026#39;POST\\[\u0026#34;client\\_id\u0026#34;\\]\u0026#39;); $privateKey = F3::get(\u0026#39;POST\\[\u0026#34;private\\_key\u0026#34;\\]\u0026#39;); function mergeFields($clientId, $privateKey, $basePath) { //###Check if user entered all parameters if (empty($clientId) || empty($privateKey)) { throw new Exception(\u0026#39;Please enter FILE ID\u0026#39;); } else { F3::set(\u0026#39;userId\u0026#39;, $clientId); F3::set(\u0026#39;privateKey\u0026#39;, $privateKey); //###Create Signer, ApiClient and Storage Api objects //Create signer object $signer = new GroupDocsRequestSigner($privateKey); //Create apiClient object $apiClient = new APIClient($signer); //Create Doc Api object $docApi = new DocApi($apiClient); //Create Storage Api object $apiStorage = new StorageApi($apiClient); //Create AsyncApi object $api = new AsyncApi($apiClient); $mergApi = new MergeApi($apiClient); //Get entered by user data $url = F3::get(\u0026#39;POST\\[\u0026#34;url\u0026#34;\\]\u0026#39;); $file = $\\_FILES\\[\u0026#39;file\u0026#39;\\]; $fileId = f3::get(\u0026#39;POST\\[\u0026#34;fileId\u0026#34;\\]\u0026#39;); //Check if user choose upload file from URL if ($url != \u0026#34;\u0026#34;) { //Upload file from URL $uploadResult = $apiStorage-\u0026gt;UploadWeb($clientId, $url); //Check is file uploaded if ($uploadResult-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //Get file GUID $fileGuId = $uploadResult-\u0026gt;result-\u0026gt;guid; $fileId = \u0026#34;\u0026#34;; //If it isn\u0026#39;t uploaded throw exception to template } else { throw new Exception($uploadResult-\u0026gt;error\\_message); } } //Check is user choose upload local file if ($\\_FILES\\[\u0026#39;file\u0026#39;\\]\\[\u0026#34;name\u0026#34;\\] != \u0026#34;\u0026#34;) { //Temp name of the file $tmp\\_name = $file\\[\u0026#39;tmp\\_name\u0026#39;\\]; //Original name of the file $name = $file\\[\u0026#39;name\u0026#39;\\]; //Creat file stream $fs = FileStream::fromFile($tmp\\_name); //###Make a request to Storage API using clientId //Upload file to current user storage $uploadResult = $apiStorage-\u0026gt;Upload($clientId, $name, \u0026#39;uploaded\u0026#39;, \u0026#34;\u0026#34;, $fs); //###Check if file uploaded successfully if ($uploadResult-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //Get file GUID $fileGuId = $uploadResult-\u0026gt;result-\u0026gt;guid; $fileId = \u0026#34;\u0026#34;; //If it isn\u0026#39;t uploaded throw exception to template } else { throw new Exception($uploadResult-\u0026gt;error\\_message); } } //Check is user choose file GUID if ($fileId != \u0026#34;\u0026#34;) { //Get entered by user file GUID $fileGuId = $fileId; } //Get feilds from template $fields = $docApi-\u0026gt;GetTemplateFields($clientId, $fileGuId); //Check status if ($fields-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //Create new Datasource object $dataSource = new Datasource(); //Create empty array $array = array(); //Loop for fields creataion for ($i = 0; $i \u0026lt; count($fields-\u0026gt;result-\u0026gt;fields); $i++) { //Create new DatasourceField object $field = new DatasourceField(); //Set DatasourceFiled data $field-\u0026gt;name = $fields-\u0026gt;result-\u0026gt;fields\\[$i\\]-\u0026gt;name; $field-\u0026gt;type = \u0026#34;text\u0026#34;; $field-\u0026gt;values = array(\u0026#34;value1\u0026#34;, \u0026#34;value2\u0026#34;); //Push DatasourceField to array array\\_push($array, $field); } //Set array feilds array to the Datasourc $dataSource-\u0026gt;fields = $array; //Add Datasource to GroupDocs $addDataSource = $mergApi-\u0026gt;AddDataSource($clientId, $dataSource); //Check status if ($addDataSource-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //If status ok merge Datasource to new pdf file $job = $mergApi-\u0026gt;MergeDatasource($clientId, $fileGuId, $addDataSource-\u0026gt;result-\u0026gt;datasource\\_id, \u0026#34;pdf\u0026#34;, null); //Check status if ($job-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //### Check job status for ($n = 0; $n \u0026lt;= 5; $n++) { //Delay necessary that the inquiry would manage to be processed sleep(5); //Make request to api for get document info by job id $jobInfo = $api-\u0026gt;GetJobDocuments($clientId, $job-\u0026gt;result-\u0026gt;job\\_id); //Check job status, if status is Completed or Archived exit from cycle if ($jobInfo-\u0026gt;result-\u0026gt;job\\_status == \u0026#34;Completed\u0026#34; || $jobInfo-\u0026gt;result-\u0026gt;job\\_status == \u0026#34;Archived\u0026#34;) { break; //If job status Postponed throw exception with error } elseif ($jobInfo-\u0026gt;result-\u0026gt;job\\_status == \u0026#34;Postponed\u0026#34;) { throw new Exception(\u0026#34;Job is failed\u0026#34;); } } //Get file guid $guid = $jobInfo-\u0026gt;result-\u0026gt;inputs\\[0\\]-\u0026gt;outputs\\[0\\]-\u0026gt;guid; //Get file name $name = $jobInfo-\u0026gt;result-\u0026gt;inputs\\[0\\]-\u0026gt;outputs\\[0\\]-\u0026gt;name; //Local path to the downloads folder $downloadFolder = dirname(\\_\\_FILE\\_\\_). \u0026#39;/../downloads\u0026#39;; //Check is folder exist if (!file\\_exists($downloadFolder)) { //If folder don\u0026#39;t exist create it mkdir($downloadFolder); } //Obtaining file stream of downloading file and definition of folder where to download file $outFileStream = FileStream::fromHttp($downloadFolder, $name); //Download file from GroupDocs. $download = $apiStorage-\u0026gt;GetFile($clientId, $guid, $outFileStream); f3::set(\u0026#34;message\u0026#34;, \u0026#34;File was converted and downloaded to the \u0026#34; . $downloadFolder . \u0026#34;/\u0026#34; . $name); //### If request was successfull //Generation of iframe URL using $pageImage-\u0026gt;result-\u0026gt;guid $iframe = \u0026#39;https://apps.groupdocs.com/document-viewer/embed/\u0026#39; . $guid; } else { throw new Exception($job-\u0026gt;error\\_message); } } else { throw new Exception($addDataSource-\u0026gt;error\\_message); } } else { throw new Exception($fields-\u0026gt;error\\_message); } //Set variable with results for template return f3::set(\u0026#39;url\u0026#39;, $iframe); } } try { mergeFields($clientId, $privateKey, $basePath); } catch(Exception $e) { $error = \u0026#39;ERROR: \u0026#39; . $e-\u0026gt;getMessage() . \u0026#34;\\\\n\u0026#34;; f3::set(\u0026#39;error\u0026#39;, $error); } //Process template echo Template::serve(\u0026#39;template.htm\u0026#39;); That\u0026rsquo;s the controller: open your mind and plunge in. First of all, we get all the data transfered from the form by POST to the controller. This block of code does that:\n// ### Set variables and get POST data F3::set(\u0026#39;userId\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;privateKey\u0026#39;, \u0026#39;\u0026#39;); $clientId = F3::get(\u0026#39;POST\\[\u0026#34;client\\_id\u0026#34;\\]\u0026#39;); $privateKey = F3::get(\u0026#39;POST\\[\u0026#34;private\\_key\u0026#34;\\]\u0026#39;); As you can see, we use the Fatfree method F3::set to initially set the template variables and then the F3::get method to get the posted data. We have all necessary data to create API objects; the rest of the data we will get later. Let\u0026rsquo;s create a function that takes this data, checks it and does the rest of the magic. The function is called mergeFields and a definition looks like this: function mergeFields($clientId, $privateKey). The mergeFields function takes two parameters - client ID and private key. This data is most important because without it, we can\u0026rsquo;t send a request to the API. That\u0026rsquo;s why we check that it\u0026rsquo;s been entered with this code:\nif (empty($clientId) || empty($privateKey)) { throw new Exception(\u0026#39;Please enter FILE ID\u0026#39;); } else { F3::set(\u0026#39;userId\u0026#39;, $clientId); F3::set(\u0026#39;privateKey\u0026#39;, $privateKey); Then, if the client ID and private key have been entered we proceed with API objects creation. I expect you already know how to do this. Next, we check whether the user wants to upload a local file, one from the web, or a file already in the GroupDocs account. We can work with documents through the file GUID. We dont have this data, but that\u0026rsquo;s not a problem - lets get it. Simply use the Fatfree method F3::get to get the client ID and private key. Get the rest of the data:\n//Get entered by user data $url = F3::get(\u0026#39;POST\\[\u0026#34;url\u0026#34;\\]\u0026#39;); $file = $\\_FILES\\[\u0026#39;file\u0026#39;\\]; $fileId = f3::get(\u0026#39;POST\\[\u0026#34;fileId\u0026#34;\\]\u0026#39;); Since this data are simple strings - with the exception of $file - check which of them are chosen by elementary verification on an empty string: if ($url != \u0026ldquo;\u0026rdquo;) or if ($fileId != \u0026ldquo;\u0026rdquo;). If you wonder what to do if a user selects to upload a local file, how to check it. It\u0026rsquo;s not a problem. In the global variable which consist of the local file we have an array of file data such as file name, temp name and file content. To check if a user has selected a local file, simply check if the file name is empty. This array field consist of string data and we can check it for empty string: if ($_FILES[\u0026lsquo;file\u0026rsquo;][\u0026ldquo;name\u0026rdquo;] != \u0026ldquo;\u0026rdquo;). According to which check returns \u0026ldquo;true\u0026rdquo;, we know whether to use an entered file GUID or upload a file in three different ways. How to do this you can read in last weeks post: Two ways to upload files. The most interesting part, and culmination of this example, is to get the field from template DOCX file and merge them to a PDF file. To do this, we need this GroupDocs PHP SDK methods:\nFrom DocApi GetTemplateFields From MergeApi AddDataSource and MergeDatasource From AsyncApi GetJobDocuments And from StorageApi GetFile First, let\u0026rsquo;s take a look at the code which will do all this work and use our methods:\n//Get fields from template $fields = $docApi-\u0026gt;GetTemplateFields($clientId, $fileGuId); //Check status if ($fields-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //Create new Datasource object $dataSource = new Datasource(); //Create empty array $array = array(); //Loop for fields creataion for ($i = 0; $i \u0026lt; count($fields-\u0026gt;result-\u0026gt;fields); $i++) { //Create new DatasourceField object $field = new DatasourceField(); //Set DatasourceFiled data $field-\u0026gt;name = $fields-\u0026gt;result-\u0026gt;fields\\[$i\\]-\u0026gt;name; $field-\u0026gt;type = \u0026#34;text\u0026#34;; $field-\u0026gt;values = array(\u0026#34;value1\u0026#34;, \u0026#34;value2\u0026#34;); //Push DatasourceField to array array\\_push($array, $field); } //Set array feilds array to the Datasourc $dataSource-\u0026gt;fields = $array; //Add Datasource to GroupDocs $addDataSource = $mergApi-\u0026gt;AddDataSource($clientId, $dataSource); //Check status if ($addDataSource-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //If status ok merge Datasource to new pdf file $job = $mergApi-\u0026gt;MergeDatasource($clientId, $fileGuId, $addDataSource-\u0026gt;result-\u0026gt;datasource\\_id, \u0026#34;pdf\u0026#34;, null); //Check status if ($job-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //### Check job status for ($n = 0; $n \u0026lt;= 5; $n++) { //Delay necessary that the inquiry would manage to be processed sleep(5); //Make request to api for get document info by job id $jobInfo = $api-\u0026gt;GetJobDocuments($clientId, $job-\u0026gt;result-\u0026gt;job\\_id); //Check job status, if status is Completed or Archived exit from cycle if ($jobInfo-\u0026gt;result-\u0026gt;job\\_status == \u0026#34;Completed\u0026#34; || $jobInfo-\u0026gt;result-\u0026gt;job\\_status == \u0026#34;Archived\u0026#34;) { break; //If job status Postponed throw exception with error } elseif ($jobInfo-\u0026gt;result-\u0026gt;job\\_status == \u0026#34;Postponed\u0026#34;) { throw new Exception(\u0026#34;Job is failed\u0026#34;); } } //Get file guid $guid = $jobInfo-\u0026gt;result-\u0026gt;inputs\\[0\\]-\u0026gt;outputs\\[0\\]-\u0026gt;guid; //Get file name $name = $jobInfo-\u0026gt;result-\u0026gt;inputs\\[0\\]-\u0026gt;outputs\\[0\\]-\u0026gt;name; //Local path to the downloads folder $downloadFolder = dirname(\\_\\_FILE\\_\\_). \u0026#39;/../downloads\u0026#39;; //Check is folder exist if (!file\\_exists($downloadFolder)) { //If folder don\u0026#39;t exist create it mkdir($downloadFolder); } //Obtaining file stream of downloading file and definition of folder where to download file $outFileStream = FileStream::fromHttp($downloadFolder, $name); //Download file from GroupDocs. $download = $apiStorage-\u0026gt;GetFile($clientId, $guid, $outFileStream); The logic is simple.\nFirst, we get all the fields from the template DOCX file with the GetTemplateFields method. It takes the parameters client ID and template DOCX file GUID. The method returns an object with fields. Now, create a DataSource object in which one of the parameters is a DataSourceFields array which we must create. We will put the field we get from template DOCX file into this array. This action occurs in this peace of code: //Create empty array $array = array(); //Loop for fields creataion for ($i = 0; $i \u0026lt; count($fields-\u0026gt;result-\u0026gt;fields); $i++) { //Create new DatasourceField object $field = new DatasourceField(); //Set DatasourceFiled data $field-\u0026gt;name = $fields-\u0026gt;result-\u0026gt;fields\\[$i\\]-\u0026gt;name; $field-\u0026gt;type = \u0026#34;text\u0026#34;; $field-\u0026gt;values = array(\u0026#34;value1\u0026#34;, \u0026#34;value2\u0026#34;); //Push DatasourceField to array array\\_push($array, $field); } //Set array feilds array to the Datasourc $dataSource-\u0026gt;fields = $array; As you can see, the DataSourceFields object has a values parameter. Into this parameter we put an array of strings or only string which will be added to the field as content.\nAfter creating the DataSource object, the next step is to add DataSource to GroupDocs for the convertion to PDF. This trick can be done as follows: //Add Datasource to GroupDocs $addDataSource = $mergApi-\u0026gt;AddDataSource($clientId, $dataSource); In response to this we get the datasource ID by which we can both merge it and convert to PDF, thus killing two birds with one stone.\nTake the client ID, datasource ID, the original DOCX file GUID and put all of this into the MergeDatasource method. This request in code: $job = $mergApi-\u0026gt;MergeDatasource($clientId, $fileGuId, $addDataSource-\u0026gt;result-\u0026gt;datasource\\_id, \u0026#34;pdf\u0026#34;, null); As you see, one of the input parameters is a string with type of the result file. When the API gets this request, it creates a new PDF file with merged fields. Phew, we merged our fields to a new PDF file and now we can download it and see it in an iframe. The MergeDatasource method returns Job id using which in the GetJobDocuments method we get all the info about the new PDF file that we need, such is GUID and name.\nTo download it, create a FileStream which contains a local path for downloading the file: //Obtaining file stream of downloading file and definition of folder where to download file $outFileStream = FileStream::fromHttp($downloadFolder, $name); After that use the GetFile method to download it: $download = $apiStorage-\u0026gt;GetFile($clientId, $guid, $outFileStream); You already know how to generate an iframe. The only thing left is to call our function and return the new PDF file GUID to the template to show in the browser as an iframe. You already know how to do this too, if you\u0026rsquo;ve followed this article series. And we\u0026rsquo;re done!\nScreenshots Here are two screenshots that show the input form and the output file so you can see the process in action.\nThe input form\rThe output PDF\r","permalink":"https://blog.groupdocs.com/merger/how-to-merge-data-fields-from-a-docx-file-with-a-data-source-and-output-to-pdf/","summary":"This article explains how to get the fields from a template DOCX file, fill them with data and merge to new PDF file using GroupDocs.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version.) FatFree framework (https://github.com/bcosca/fatfree) We already know how to install the Fatfree framework and prepare for creating the sample from the previous article.","title":"How to Merge Data Fields from a DOCX File with a Data Source and Output to PDF"},{"content":"Working with GroupDocs SDK we usually need a GUID to work with a document. But it\u0026rsquo;s not very comfortable for users to work with GUIDs. So in your app, you can use two methods to upload a file to a GroupDocs account and get it\u0026rsquo;s GUID programmatically.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version.) FatFree framework (https://github.com/bcosca/fatfree) We already know how to install the Fatfree framework and prepare for creating the sample from the previous article. So lets start with the magic.\nTheory Upload local file To upload a local file we need an actual file. You can view many types to word processing documents (DOC, DOCX, TXT, RTF, ODT), presentations (PPT, PPTX), spreadsheets (XLS, XLSX), portable files (PDF), and image files (JPG, BMP, GIF, TIFF). From GroupDocs PHP SDK we will need the following methods:\nUpload FileStream::fromFile The template is simply an HTML form of the \u0026ldquo;multipart/form-data\u0026rdquo; type. This form sends date entered by the user (the client ID, private key and local file data) to the controller. The controller, in turn, gets the data, prepares it for an API request, makes the API request and receives the upload results from the API with info about the uploaded file.\nUpload file from web If you think this is going to be complicated, I have to disappoint you. With GroupDocs PHP SDK it\u0026rsquo;s really simple than upload a local file. To upload a file from the web, we need a direct link to the file. Everything else is the same as when uploading a local file, with the exception of the upload method. To do this trick we need only one method: uploadWeb. The logic of web uploading is the same as for local file upload. Since the logic is the same we\u0026rsquo;ll use same template and controller.\nPractice As before, create a template file in the template folder and a controller file in the inc_samples folder.\nTemplate file code \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta http-equiv=\u0026#34;Content-Type\u0026#34; content=\u0026#34;text/html; charset=UTF-8\u0026#34;/\u0026gt; \u0026lt;title\u0026gt;Upload\u0026lt;/title\u0026gt; \u0026lt;style type=\u0026#34;text/css\u0026#34;\u0026gt; {{ Web::minify(\u0026#39;templates/\u0026#39;,array(\u0026#39;style.css\u0026#39;),FALSE) }} \u0026lt;/style\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;h3 style=\u0026#34;text-align:center;\u0026#34;\u0026gt;\u0026lt;a href=\u0026#34;/index.php\u0026#34;\u0026gt;GroupDocs PHP SDK Samples\u0026lt;/a\u0026gt; - Upload\u0026lt;/h3\u0026gt; \u0026lt;div class=\u0026#39;samplecontent\u0026#39; style=\u0026#34;padding:10px;\u0026#34;\u0026gt; \u0026lt;span class=\u0026#34;description\u0026#34;\u0026gt;\u0026lt;i\u0026gt;This sample will show how to upload file to GroupDocs using PHP SDK\u0026lt;/i\u0026gt;\u0026lt;/span\u0026gt; \u0026lt;br/\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;br/\u0026gt;You entered: ClientID = {{@userId}} PrivateKey = {{@privateKey}} \u0026lt;font color=\u0026#34;red\u0026#34;\u0026gt;{{@error}}\u0026lt;/font\u0026gt; \u0026lt;div id=\u0026#34;requestForm\u0026#34; style=\u0026#34;padding:20px; border:1px solid black;\u0026#34;\u0026gt; \u0026lt;form action=\u0026#34;controller\u0026#34; method = \u0026#34;post\u0026#34; enctype = \u0026#39;multipart/form-data\u0026#39;\u0026gt; \u0026lt;label for=\u0026#39;client\\_id\u0026#39;\u0026gt;GroupDocs ClientID\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39; name=\u0026#39;client\\_id\u0026#39; value=\u0026#34;{{@userId}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;private\\_key\u0026#39;\u0026gt;GroupDocs PrivateKey\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39; name=\u0026#39;private\\_key\u0026#39; value=\u0026#34;{{@privateKey}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#34;radio\u0026#34; name=\u0026#34;sourse\u0026#34; value=\u0026#34;local\u0026#34; id=\u0026#34;localField\u0026#34; onClick=\u0026#34;display(\u0026#39;local\u0026#39;);\u0026#34; \u0026gt;Upload local file \u0026lt;/input\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#34;radio\u0026#34; name=\u0026#34;sourse\u0026#34; value=\u0026#34;url\u0026#34; id=\u0026#34;urlField\u0026#34; onClick=\u0026#34;display(\u0026#39;url\u0026#39;);\u0026#34; \u0026gt;Upload file from URL \u0026lt;/input\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;private\\_key\u0026#39; style=\u0026#34;display:none;\u0026#34; id=\u0026#34;url\u0026#34;\u0026gt;Upload file from URL\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39; name=\u0026#39;url\u0026#39; value=\u0026#34;\u0026#34; id=\u0026#34;urlfield\u0026#34; style=\u0026#34;display:none;\u0026#34; /\u0026gt; \u0026lt;label for=\u0026#39;file\u0026#39; id=\u0026#34;file\u0026#34; style=\u0026#34;display:none;\u0026#34;\u0026gt;Upload local file\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;file\u0026#39; name=\u0026#39;file\u0026#39; id=\u0026#34;filefield\u0026#34; style=\u0026#34;display:none;\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;private\\_key\u0026#39;\u0026gt;Folder in which you want to copy file\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39; name=\u0026#39;destPath\u0026#39; value=\u0026#34;{{@folder}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;submit\u0026#39; value=\u0026#39;Make Request\u0026#39;/\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;h4\u0026gt;\u0026lt;font color=\u0026#34;green\u0026#34;\u0026gt;{{@message}}\u0026lt;/font\u0026gt;\u0026lt;/h4\u0026gt; \u0026lt;br/\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;include href=\u0026#34;links.htm\u0026#34; /\u0026gt; \u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt; function display(\\_element\\_id) { if (\\_element\\_id == \u0026#34;local\u0026#34;) { var element1 = document.getElementById(\u0026#34;file\u0026#34;); var element2 = document.getElementById(\u0026#34;filefield\u0026#34;); var element3 = document.getElementById(\u0026#34;url\u0026#34;); var element4 = document.getElementById(\u0026#34;urlfield\u0026#34;); element1.style.display = \u0026#34;inline\u0026#34;; element2.style.display = \u0026#34;inline\u0026#34;; element3.style.display = \u0026#34;none\u0026#34;; element4.style.display = \u0026#34;none\u0026#34;; } if (\\_element\\_id == \u0026#34;url\u0026#34;) { var element1 = document.getElementById(\u0026#34;url\u0026#34;); var element2 = document.getElementById(\u0026#34;urlfield\u0026#34;); var element3 = document.getElementById(\u0026#34;file\u0026#34;); var element4 = document.getElementById(\u0026#34;filefield\u0026#34;); element1.style.display = \u0026#34;inline\u0026#34;; element2.style.display = \u0026#34;inline\u0026#34;; element3.style.display = \u0026#34;none\u0026#34;; element4.style.display = \u0026#34;none\u0026#34;; } } \u0026lt;/script\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Let\u0026rsquo;s investigate this code. This is a simple HTML document with JavaScript. To select the file source (local or web) we\u0026rsquo;ve added a switch:\n\u0026lt;input type=\u0026#34;radio\u0026#34; name=\u0026#34;sourse\u0026#34; value=\u0026#34;local\u0026#34; id=\u0026#34;localField\u0026#34; onClick=\u0026#34;display(\u0026#39;local\u0026#39;);\u0026#34; \u0026gt;Upload local file \u0026lt;/input\u0026gt; This switch calls the JavaScript function display. This function receives one parameter which specifies the source of the file: local or web. Where local = upload local file and url = upload file from web. Toggling the switch displays the corresponding input field. OK, it\u0026rsquo;s clear how the template works - it\u0026rsquo;s simple enough. Let\u0026rsquo;s take a look at the controller.\nController code //###Set variables and get POST data F3::set(\u0026#39;userId\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;privateKey\u0026#39;, \u0026#39;\u0026#39;); $clientId = F3::get(\u0026#39;POST\\[\u0026#34;client\\_id\u0026#34;\\]\u0026#39;); $privateKey = F3::get(\u0026#39;POST\\[\u0026#34;private\\_key\u0026#34;\\]\u0026#39;); $width = f3::get(\u0026#39;POST\\[\u0026#34;width\u0026#34;\\]\u0026#39;); $height = f3::get(\u0026#39;POST\\[\u0026#34;height\u0026#34;\\]\u0026#39;); function upload($clientId, $privateKey, $width=\u0026#39;400\u0026#39;, $height=\u0026#39;650\u0026#39;) { //###Check fileGuId if (empty($clientId) || empty($privateKey)) { throw new Exception(\u0026#39;Please enter all required parameters\u0026#39;); } else { F3::set(\u0026#39;userId\u0026#39;, $clientId); F3::set(\u0026#39;privateKey\u0026#39;, $privateKey); //Get base path $basePath = f3::get(\u0026#39;POST\\[\u0026#34;server\\_type\u0026#34;\\]\u0026#39;); //Get entered by user data $fileGuId = \u0026#34;\u0026#34;; $url = F3::get(\u0026#39;POST\\[\u0026#34;url\u0026#34;\\]\u0026#39;); $file = $\\_FILES\\[\u0026#39;file\u0026#39;\\]; //###Create Signer, ApiClient and Storage Api objects //Create signer object $signer = new GroupDocsRequestSigner($privateKey); //Create apiClient object $apiClient = new APIClient($signer); //Create Storage Api object $api = new StorageApi($apiClient); //Check if user choose upload file from URL if ($url != \u0026#34;\u0026#34;) { //Upload file from URL $uploadResult = $api-\u0026gt;UploadWeb($clientId, $url); //Check is file uploaded if ($uploadResult-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //Get file GUID $fileGuId = $uploadResult-\u0026gt;result-\u0026gt;guid; //If it isn\u0026#39;t uploaded throw exception to template } else { throw new Exception($uploadResult-\u0026gt;error\\_message); } } //Check is user choose upload local file if ($\\_FILES\\[\u0026#39;file\u0026#39;\\]\\[\u0026#34;name\u0026#34;\\] != \u0026#34;\u0026#34;) { //Temp name of the file $tmp\\_name = $file\\[\u0026#39;tmp\\_name\u0026#39;\\]; //Original name of the file $name = $file\\[\u0026#39;name\u0026#39;\\]; //Creat file stream $fs = FileStream::fromFile($tmp\\_name); //###Make a request to Storage API using clientId //Upload file to current user storage $uploadResult = $api-\u0026gt;Upload($clientId, $name, \u0026#39;uploaded\u0026#39;, \u0026#34;\u0026#34;, $fs); //###Check if file uploaded successfully if ($uploadResult-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //Get file GUID $fileGuId = $uploadResult-\u0026gt;result-\u0026gt;guid; //If it isn\u0026#39;t uploaded throw exception to template } else { throw new Exception($uploadResult-\u0026gt;error\\_message); } } //Generation of iframe URL using fileGuId $iframe = \u0026#39;http://apps.groupdocs.com/document-viewer/embed/\u0026#39; . $fileGuId . \u0026#39;?frameborder=\u0026#34;0\u0026#34; width=\u0026#39; . $width . \u0026#39;height=\u0026#39; . $height; //If request was successfull - set url variable for template f3::set(\u0026#39;fileId\u0026#39;, $fileGuId); return f3::set(\u0026#39;url\u0026#39;, $iframe); } } try { upload($clientId, $privateKey, $width, $height); } catch(Exception $e) { $error = \u0026#39;ERROR: \u0026#39; . $e-\u0026gt;getMessage() . \u0026#34;\\\\n\u0026#34;; f3::set(\u0026#39;error\u0026#39;, $error); } //Process template F3::set(\u0026#39;userId\u0026#39;, $clientId); F3::set(\u0026#39;privateKey\u0026#39;, $privateKey); F3::set(\u0026#39;width\u0026#39;, $width); F3::set(\u0026#39;height\u0026#39;, $height); echo Template::serve(\u0026#39;template.htm\u0026#39;); Now let\u0026rsquo;s analyze the blocks of code we have here.\nF3::set(\u0026#39;userId\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;privateKey\u0026#39;, \u0026#39;\u0026#39;); $clientId = F3::get(\u0026#39;POST\\[\u0026#34;client\\_id\u0026#34;\\]\u0026#39;); $privateKey = F3::get(\u0026#39;POST\\[\u0026#34;private\\_key\u0026#34;\\]\u0026#39;); $width = f3::get(\u0026#39;POST\\[\u0026#34;width\u0026#34;\\]\u0026#39;); $height = f3::get(\u0026#39;POST\\[\u0026#34;height\u0026#34;\\]\u0026#39;); In this block we get the data from the form transfered by the POST method with the Fatfree method F3::get which gives access to the global arrays such as POST, GET, FILE and SERVER. When we have collected the entered data, we can create a function which will do the job and we will have the ability to check every steps and get errors if there are any. Our function will get four parameters: client ID, private key, width and height (we need width and height for the iframe that will show the uploaded file).\nfunction upload($clientId, $privateKey, $width=\u0026#39;400\u0026#39;, $height=\u0026#39;650\u0026#39;) First of all, we must check whether the client ID and private key are entered. Without this data we can\u0026rsquo;t do anything. Check it with this code:\nif (empty($clientId) || empty($privateKey)) { throw new Exception(\u0026#39;Please enter all required parameters\u0026#39;); If we have this data, we can proceed to the next code block:\nF3::set(\u0026#39;userId\u0026#39;, $clientId); F3::set(\u0026#39;privateKey\u0026#39;, $privateKey) //Get base path $basePath = f3::get(\u0026#39;POST\\[\u0026#34;server\\_type\u0026#34;\\]\u0026#39;); //Get entered by user data $fileGuId = \u0026#34;\u0026#34;; $url = F3::get(\u0026#39;POST\\[\u0026#34;url\u0026#34;\\]\u0026#39;); $file = $\\_FILES\\[\u0026#39;file\u0026#39;\\]; //###Create Signer, ApiClient and Storage Api objects Here we set user data for template and get the rest of the entered data from the form, such as the URL of a web file and the location of the local file. Later, we will check which fields are chosen by this data. Now we must create objects which will set up the relationships with the GroupDocs API and user account. This code does that:\n//Create signer object $signer = new GroupDocsRequestSigner($privateKey); //Create apiClient object $apiClient = new APIClient($signer); //Create Storage Api object $api = new StorageApi($apiClient); So we can check from where we\u0026rsquo;re about to upload the file and then upload it. To check if the user choose to upload a file from the web, and to upload the file, use this code:\n//Check if user choose upload file from URL if ($url != \u0026#34;\u0026#34;) { //Upload file from URL $uploadResult = $api-\u0026gt;UploadWeb($clientId, $url); //Check is file uploaded if ($uploadResult-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //Get file GUID $fileGuId = $uploadResult-\u0026gt;result-\u0026gt;guid; //If it isn\u0026#39;t uploaded throw exception to template } else { throw new Exception($uploadResult-\u0026gt;error\\_message); } } This block does all the magic uploading a file from the web. As you can see we check whether $url is an empty string. If it is not empty, the user has selected to upload a file from the web and we use the URL. To upload the file, we make a request to the UploadWeb method with the client ID and the URL for the file:\n$uploadResult = $api-\u0026gt;UploadWeb($clientId, $url); Thats all for web uploading. Simple, yes? OK in response to this method we have an object with an array of all the info for this file such as the GUID, name, type and so on. To show this file in an iframe, we only need the GUID. We can get GUID easily:\n$fileGuId = $uploadResult-\u0026gt;result-\u0026gt;guid; If uploadWeb fails we get an error message:\n$uploadResult-\u0026gt;error\\_message But what if the user wants to upload a local file? We can check if they do, and if so upload the local file with this code:\n//Check is user choose upload local file if ($\\_FILES\\[\u0026#39;file\u0026#39;\\]\\[\u0026#34;name\u0026#34;\\] != \u0026#34;\u0026#34;) { //Temp name of the file $tmp\\_name = $file\\[\u0026#39;tmp\\_name\u0026#39;\\]; //Original name of the file $name = $file\\[\u0026#39;name\u0026#39;\\]; //Creat file stream $fs = FileStream::fromFile($tmp\\_name); //###Make a request to Storage API using clientId //Upload file to current user storage $uploadResult = $api-\u0026gt;Upload($clientId, $name, \u0026#39;uploaded\u0026#39;, \u0026#34;\u0026#34;, $fs); //###Check if file uploaded successfully if ($uploadResult-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //Get file GUID $fileGuId = $uploadResult-\u0026gt;result-\u0026gt;guid; //If it isn\u0026#39;t uploaded throw exception to template } else { throw new Exception($uploadResult-\u0026gt;error\\_message); } } To upload a local file we must get its name, assign it a temporary name and convert it to a FileStream. The first two we can get as usual for multipart/form-data:\n//Temp name of the file $tmp\\_name = $file\\[\u0026#39;tmp\\_name\u0026#39;\\]; //Original name of the file $name = $file\\[\u0026#39;name\u0026#39;\\]; And to convert the file to FileStream in the GroupDocs PHP SDK we have very cool thing: FileStream::fromFile. This function gets the file\u0026rsquo;s temp name and returns a FileStream. Now we can send request to the GroupDocs API to upload the local file. The Upload file method get such parameters as client ID, local file name, description(string), callback URL (in this sample we\u0026rsquo;ll use an empty string but if you want to, you can specify it) and FileStream. In the response object for the UploadWeb method we get info about the uploaded file. If the request failed, we get an error message.\nDisplaying the file We\u0026rsquo;ve finished the upload and now we have only to generate an iframe and call our function.\n//Generation of iframe URL using fileGuId $iframe = \u0026#39;http://apps.groupdocs.com/document-viewer/embed/\u0026#39; . $fileGuId . \u0026#39;?frameborder=\u0026#34;0\u0026#34; width=\u0026#39; . $width . \u0026#39;height=\u0026#39; . $height; //If request was successfull - set url variable for template f3::set(\u0026#39;fileId\u0026#39;, $fileGuId); return f3::set(\u0026#39;url\u0026#39;, $iframe); } } try { upload($clientId, $privateKey, $width, $height); } catch(Exception $e) { $error = \u0026#39;ERROR: \u0026#39; . $e-\u0026gt;getMessage() . \u0026#34;\\\\n\u0026#34;; f3::set(\u0026#39;error\u0026#39;, $error); } //Process template F3::set(\u0026#39;userId\u0026#39;, $clientId); F3::set(\u0026#39;privateKey\u0026#39;, $privateKey); F3::set(\u0026#39;width\u0026#39;, $width); F3::set(\u0026#39;height\u0026#39;, $height); echo Template::serve(\u0026#39;template.htm\u0026#39;); The code in action Thats all. Below are a couple of screenshots that show how it looks in action.\nThe input form! The input form The iframe showing the uploaded document! The iframe displaying the uploaded file.\n","permalink":"https://blog.groupdocs.com/total/two-ways-of-uploading-files-into-a-groupdocs-account/","summary":"Working with GroupDocs SDK we usually need a GUID to work with a document. But it\u0026rsquo;s not very comfortable for users to work with GUIDs. So in your app, you can use two methods to upload a file to a GroupDocs account and get it\u0026rsquo;s GUID programmatically.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version.","title":"Two Ways of Uploading Files into a GroupDocs Account"},{"content":"This article explains the basics of using PHP SDK callbacks. In this article I\u0026rsquo;ll use the Convert API. Find information about other methods in the Swagger explorer.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version) FatFree framework (https://github.com/bcosca/fatfree) We already know how to install the Fatfree framework and prepare for creating the sample from the previous article. So lets start with the magic.\nTheory First of all let\u0026rsquo;s familiarize ourselves with Callback and the logic we will implement.\nCallback A callback is something like \u0026ldquo;Action\u0026rdquo; in HTML forms, a URL that will be executed by the server when a job is done. In this article we will use the Convert API and Convert method to convert a file from DOC to PDF. One of parameters of this method is a callback URL.\nThe logic User enters data into the form. The data is transfered by POST to the controller. The controller processes the received data (converts the file) and writes the user ID and private key to the text file for the Callback handler. After that, the controller returns the converted file GUID to the template. After conversion, the server calls the callback handler. The callback handler reads the user ID and private key from text file and makes a request to the Storage API to download the converted file. At same time that the server calls the callback URL, the template file shows the conversion results in an iframe and sends an Ajax request to the Ajax handler. The Ajax handler checks the \u0026ldquo;downloads\u0026rdquo; folder for the downloaded file. If file is there, handler gets the file name and returns it to the template. If file was downloaded, Ajax also sends a request to the download file handler to generate the download file dialog. PracticeNow we must create our files: The first file is the template file in the template folder. The second file is the controller which is saved to the inc_samples folder. THe other two files live in the callbacks subfolder in the inc_samples folder. The structure looks like this: As you can see from screenshot we must create five files:\ntemplate.htm controller.php convert_callback.php check_file.php download_file.php So let\u0026rsquo;s start in stages.\ntemplate.html In the template folder, create the template.htm file. This file shows the page with the input form and performs an Ajax request. Now put in this code:\n\u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta http-equiv=\u0026#34;Content-Type\u0026#34; content=\u0026#34;text/html; charset=UTF-8\u0026#34;/\u0026gt; \u0026lt;title\u0026gt;Powered by {{ @VERSION }}\u0026lt;/title\u0026gt; \u0026lt;style type=\u0026#34;text/css\u0026#34;\u0026gt; {{ Web::minify(\u0026#39;templates/\u0026#39;,array(\u0026#39;style.css\u0026#39;),FALSE) }} \u0026lt;/style\u0026gt; \u0026lt;script src=\u0026#34;//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js\u0026#34; \u0026gt;\u0026lt;/script\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;h3 style=\u0026#34;text-align:center;\u0026#34;\u0026gt;\u0026lt;a href=\u0026#34;/index.php\u0026#34;\u0026gt;GroupDocs PHP SDK Samples\u0026lt;/a\u0026gt; - Convert\u0026lt;/h3\u0026gt; \u0026lt;div class=\u0026#39;samplecontent\u0026#39; style=\u0026#34;padding:10px;\u0026#34;\u0026gt; \u0026lt;span class=\u0026#34;description\u0026#34;\u0026gt;\u0026lt;i\u0026gt;This sample will show how to convert Doc to Docx, Docx to Doc, Docx and DOC to PDF and PPT to PDF, HTML to DOC and DOCX using PHP SDK\u0026lt;/i\u0026gt;\u0026lt;/span\u0026gt; \u0026lt;br/\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;span class=\u0026#34;documentation\u0026#34;\u0026gt;\u0026lt;a href=\u0026#34;/docs/sample18.html\u0026#34;\u0026gt;Docs for this sample\u0026lt;/a\u0026gt;\u0026lt;/span\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;font color=\u0026#34;green\u0026#34;\u0026gt;You entered: \u0026lt;/font\u0026gt; ClientID = {{@userId}} Private Key = {{@privateKey}} File Id = {{@fileId}} Convert type = {{@convert\\_type}} \u0026lt;br /\u0026gt; \u0026lt;font color=\u0026#34;red\u0026#34;\u0026gt;{{@error}}\u0026lt;/font\u0026gt; \u0026lt;div id=\u0026#34;requestForm\u0026#34; style=\u0026#34;padding:20px; border:1px solid black;\u0026#34;\u0026gt; Enter data for request and press \u0026#34;Make request\u0026#34; button \u0026lt;form action=\u0026#34;/controller\u0026#34; method = \u0026#34;post\u0026#34; enctype = \u0026#39;multipart/form-data\u0026#39;\u0026gt; \u0026lt;label for=\u0026#39;client\\_id\u0026#39;\u0026gt;GroupDocs Client ID\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;client\\_id\u0026#39; value=\u0026#34;{{@userId}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;private\\_key\u0026#39;\u0026gt;GroupDocs Private Key\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;private\\_key\u0026#39; value=\u0026#34;{{@privateKey}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;private\\_key\u0026#39; id=\u0026#34;guid\u0026#34;\u0026gt;GroupDocs fileID\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;fileId\u0026#39; id=\u0026#34;guidfield\u0026#34; value=\u0026#34;{{@fileId}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;callbackUrl\u0026#39;\u0026gt;callbackUrl\u0026lt;span class=\u0026#34;optional\u0026#34;\u0026gt;(Optional)\u0026lt;/span\u0026gt;\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;callbackUrl\u0026#39; value=\u0026#34;{{@callbackUrl}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;submit\u0026#39; value=\u0026#39;Make Request\u0026#39;/\u0026gt; \u0026lt;select name=\u0026#34;convert\\_type\u0026#34; id=\u0026#34;convert\\_type\u0026#34;\u0026gt; \u0026lt;option value=\u0026#34;doc\u0026#34;\u0026gt;Doc\u0026lt;/option\u0026gt; \u0026lt;option value=\u0026#34;pdf\u0026#34;\u0026gt;PDF\u0026lt;/option\u0026gt; \u0026lt;option value=\u0026#34;docx\u0026#34;\u0026gt;Docx\u0026lt;/option\u0026gt; \u0026lt;option value=\u0026#34;ppt\u0026#34;\u0026gt;PPT\u0026lt;/option\u0026gt; \u0026lt;/select\u0026gt; \u0026lt;span id=\u0026#34;results\\_status\u0026#34; style=\u0026#34;color:red;display:none;\u0026#34;\u0026gt; (Please wait for ajax response) \u0026lt;/span\u0026gt; \u0026lt;div id=\u0026#34;link\u0026#34;\u0026gt;\u0026lt;/div\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;iframe id=\u0026#34;downloadframe\u0026#34; style=\u0026#34;display:none\u0026#34;\u0026gt;\u0026lt;/iframe\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div id=\u0026#34;result\u0026#34; style=\u0026#34;padding:20px; border:1px solid black;\u0026#34;\u0026gt; Results: \u0026lt;font color=\u0026#34;red\u0026#34;\u0026gt;{{@error\\_message}}\u0026lt;/font\u0026gt; \u0026lt;iframe src=\u0026#34;{{ @iframe }}\u0026#34;\u0026gt;\u0026lt;/iframe\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt; $(document).ready(setTimeout(check, 5000)); function check() { if (($(\u0026#34;input\\[name=callbackUrl\\]\u0026#34;).val() != \u0026#34;\u0026#34;) \u0026amp;\u0026amp; (document.getElementById(\u0026#34;result\u0026#34;) != null)) { $(\u0026#39;#results\\_status\u0026#39;).fadeIn(\u0026#34;slow\u0026#34;); form = document.forms.form; $.ajax({ type: \u0026#39;POST\u0026#39;, url: \u0026#39;/callbacks/check\\_file\u0026#39;, success: function (data) { $(\u0026#39;#results\\_status\u0026#39;).fadeOut(\u0026#34;slow\u0026#34;); div = document.getElementById(\u0026#34;link\u0026#34;); p = document.createElement(\u0026#34;p\u0026#34;); p.innerHTML = \u0026#34;\u0026lt;br /\u0026gt; File \u0026#34; + data + \u0026#34; was downloaded.\u0026#34;; div.appendChild(p); $(\u0026#34;#downloadframe\u0026#34;).attr(\u0026#34;src\u0026#34;, \u0026#34;/callbacks/download\\_file?FileName=\u0026#34; + data); }, dataType: \u0026#34;text\u0026#34; }); } } \u0026lt;/script\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; I will not explain the HTML part of this code since it is a usual HTML document. But we have a JavaScript so let\u0026rsquo;s take a look at that. First we must include a Jquery library for Ajax requests. This code in the \u0026ldquo;Head\u0026rdquo; is responsible for this:\n\u0026lt;script src=\u0026#34;//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js\u0026#34; \u0026gt;\u0026lt;/script\u0026gt; After that we can use Ajax. Now the Ajax code:\n\u0026lt;script type=\u0026#34;text/javascript\u0026#34;\u0026gt; $(document).ready(setTimeout(check, 5000)); //Wait 5 sec. after page loaded and run \u0026#34;check\u0026#34; function function check() { if (($(\u0026#34;input\\[name=callbackUrl\\]\u0026#34;).val() != \u0026#34;\u0026#34;) \u0026amp;\u0026amp; (document.getElementById(\u0026#34;result\u0026#34;) != null)) { //Check is this first time page loaded $(\u0026#39;#results\\_status\u0026#39;).fadeIn(\u0026#34;slow\u0026#34;); //Chow message //Ajax request $.ajax({ type: \u0026#39;POST\u0026#39;, //Set ajax request type to POST url: \u0026#39;/callbacks/check\\_file\u0026#39;, //Action to which send request success: function (data) { //If request success exeсute function $(\u0026#39;#results\\_status\u0026#39;).fadeOut(\u0026#34;slow\u0026#34;); //Show result status div = document.getElementById(\u0026#34;link\u0026#34;); //Get element with id \u0026#34;link\u0026#34; p = document.createElement(\u0026#34;p\u0026#34;); //Create new HTML element p.innerHTML = \u0026#34;\u0026lt;br /\u0026gt; File \u0026#34; + data + \u0026#34; was downloaded.\u0026#34;; //Set content for new HTML element div.appendChild(p); //Add new element to the element with id \u0026#34;link\u0026#34; $(\u0026#34;#downloadframe\u0026#34;).attr(\u0026#34;src\u0026#34;, \u0026#34;/callbacks/download\\_file?FileName=\u0026#34; + data); //Make request to download file\\_file controller }, dataType: \u0026#34;text\u0026#34; //Set data type which will get ajax request from controller }); } } \u0026lt;/script\u0026gt; As Jquery is a JavaScript library we must use the tag\u0026rsquo;s. This code starts work 5 sec. after the page is loaded. The delay is necessary in order that the iframe with results is loaded. First of all we must check if this is first time the page is loaded. For this reason we use this check:\nif (($(\u0026#34;input\\\\\\[name=callbackUrl\\\\\\]\u0026#34;).val() \\\\!= \u0026#34;\u0026#34;) \u0026amp;\u0026amp; (document.getElementById(\u0026#34;result\u0026#34;) \\\\!= null)) { After this check, the script shows message and receives all elements from the document. Then the script builds and sends an Ajax request to the check_file controller. When the controller returns the downloaded file name, Ajax sends it to the download_file controller.\ncontroller.php Now lets do the next step and see what our base controller looks like. In the inc_samples folder, create a file _controller.php file. This file gets form data from the template and makes requests to the Async API to convert the file. Also this controller creates a text file with the user ID and private key for the callback controllers because we can\u0026rsquo;t send this data any other way and the callback controller will be requested only by the server by the callback URL. Now I\u0026rsquo;ll show you the controller.php code. Put it in:\n\u0026lt;?php //### This sample will show how to insert Assembly questionnaire into webpage using PHP SDK //### Set variables and get POST data F3::set(\u0026#39;userId\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;privateKey\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;fileId\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;convert\\_type\u0026#39;, \u0026#39;\u0026#39;); $clientId = F3::get(\u0026#39;POST\\[\u0026#34;client\\_id\u0026#34;\\]\u0026#39;); $privateKey = F3::get(\u0026#39;POST\\[\u0026#34;private\\_key\u0026#34;\\]\u0026#39;); $convert\\_type = F3::get(\u0026#39;POST\\[\u0026#34;convert\\_type\u0026#34;\\]\u0026#39;); $fileGuId = f3::get(\u0026#39;POST\\[\u0026#34;fileId\u0026#34;\\]\u0026#39;); function Convert($clientId, $privateKey, $convert\\_type, $fileGuId) { if (empty($clientId)|| empty($privateKey) || empty($convert\\_type) || empty($fileGuId)) { throw new Exception(\u0026#39;Please enter all required parameters\u0026#39;); } else { //path to settings file - temporary save userId and apiKey like to property file $infoFile = fopen(\\_\\_DIR\\_\\_ . \u0026#39;/../user\\_info.txt\u0026#39;, \u0026#39;w\u0026#39;); fwrite($infoFile, $clientId . \u0026#34;\\\\r\\\\n\u0026#34; . $privateKey); fclose($infoFile); //check if Downloads folder exists and remove it to clean all old files if (file\\_exists(\\_\\_DIR\\_\\_ . \u0026#39;/../downloads\u0026#39;)) { delFolder(\\_\\_DIR\\_\\_ . \u0026#39;/../downloads/\u0026#39;); } //Set variables for Viewer F3::set(\u0026#39;userId\u0026#39;, $clientId); F3::set(\u0026#39;privateKey\u0026#39;, $privateKey); //###Create Signer, ApiClient and Storage Api objects //Create signer object $signer = new GroupDocsRequestSigner($privateKey); //Create apiClient object $apiClient = new APIClient($signer); //Create AsyncApi object $api = new AsyncApi($apiClient); //Create Storage Api object $apiStorage = new StorageApi($apiClient); //Get entered callback url $callbackUrl = f3::get(\u0026#39;POST\\[\u0026#34;callbackUrl\u0026#34;\\]\u0026#39;); F3::set(\u0026#34;callbackUrl\u0026#34;, $callbackUrl); //Make request to api for convert file $convert = $api-\u0026gt;Convert($clientId, $fileGuId, null, null, null, $callbackUrl, $convert\\_type); //Check request status if($convert-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //Delay necessary that the inquiry would manage to be processed sleep(5); //Make request to api for get document info by job id $jobInfo = $api-\u0026gt;GetJobDocuments($clientId, $convert-\u0026gt;result-\u0026gt;job\\_id, \u0026#34;\u0026#34;); if ($jobInfo-\u0026gt;result-\u0026gt;inputs\\[0\\]-\u0026gt;outputs\\[0\\]-\u0026gt;guid != \u0026#34;\u0026#34;) { //Get file guid $guid = $jobInfo-\u0026gt;result-\u0026gt;inputs\\[0\\]-\u0026gt;outputs\\[0\\]-\u0026gt;guid; } else { throw new Exception(\u0026#39;File GuId is empty\u0026#39;); } //Generation of iframe URL using fileGuId $iframe = \u0026#39;http://apps.groupdocs.com/document-viewer/embed/\u0026#39; . $guid . \u0026#39;\u0026#34; frameborder=\u0026#34;0\u0026#34; width=\u0026#34;100%\u0026#34; height=\u0026#34;600\u0026#34;\u0026#39;; } else { $error\\_message = $convert-\u0026gt;error\\_message; return f3::set(\u0026#39;error\\_message\u0026#39;, $error\\_message); } //If request was successfull - set url variable for template F3::set(\u0026#39;fileId\u0026#39;, $fileId); return F3::set(\u0026#39;iframe\u0026#39;, $iframe); } } //### Delete downloads folder and all files in this folder function delFolder($path) { $item = array(); //Get all items fron folder $item = scandir($path); //Remove from array \u0026#34;.\u0026#34; and \u0026#34;..\u0026#34; $item = array\\_slice($item, 2); //Check is there was files if (count($item) \u0026gt; 0) { //Delete files from folder for ($i = 0; $i \u0026lt; count($item); $i++) { $next = $path . \u0026#34;\\\\\\\\\u0026#34; . $item\\[$i\\]; if (file\\_exists($next)) { unlink($next); } } } //Delete folder rmdir($path); } try { Convert($clientId, $privateKey, $convert\\_type, $fileGuId); } catch (Exception $e) { $error = \u0026#39;ERROR: \u0026#39; . $e-\u0026gt;getMessage() . \u0026#34;\\\\n\u0026#34;; f3::set(\u0026#39;error\u0026#39;, $error); } F3::set(\u0026#39;userId\u0026#39;, $clientId); F3::set(\u0026#39;privateKey\u0026#39;, $privateKey); F3::set(\u0026#39;convert\\_type\u0026#39;, $convert\\_type); // Process template echo Template::serve(\u0026#39;template.htm\u0026#39;); I won\u0026rsquo;t go through the code in detail: each line is explained in the comments. But I\u0026rsquo;ll explain briefly what the code doing. We have two functions, Convert and delFolder, which do all the work. First of all, we receive POST data from the template and check if all the required fields are filled in. If they are, the controller creates a text file and writes the user ID and private key to it. After that follows the creation of the GroupDocsRequestSigner, APIClient and Async API objects so that we can send request to the API. So we have created all the objects and now we can convert the file. To do this we only need to call the convert method and transfer to it the:\nuser ID, GUID of the file in the GroupDocs account which will be converted callback URL format to convert the file to. Now we have converted the file but we need the GUID of the converted file and only the job ID is returned from the converted method. No problem, lets take 5 sec. to rest. The 5 sec. delay is necessary so that the inquiry can be be processed. After the delay, we take the returned job ID and make new request to the Async API but now with GetJobDocuments which returns all the info we need by job ID. Now we have the GUID for the converted file and can give this GUID to the iframe URL and return the URL to the template which will use it in the iframe source. The second function checks the downloads folder for old files and deletes them.\nconvert_callback.php Next, let\u0026rsquo;s take a look at the callback controller, convert_callback.php. This file gets the callback from server, takes the data the server sends and downloads the converted file.\n\u0026lt;?php //Local path to the text file with user data $userInfo = file(\\_\\_DIR\\_\\_ . \u0026#39;/../../user\\_info.txt\u0026#39;); //Get user data from text file $clientId = $userInfo\\[0\\]; $privateKey = $userInfo\\[1\\]; //Get raw data $json = file\\_get\\_contents(\u0026#34;php://input\u0026#34;); //Decode json with raw data to array $callBack\\_data = json\\_decode($json, true); //Get job id from array $jobId = $callBack\\_data\\[\u0026#34;SourceId\u0026#34;\\]; //Create signer object $signer = new GroupDocsRequestSigner(trim($privateKey)); //Create apiClient object $apiClient = new APIClient($signer); //Create AsyncApi object $api = new AsyncApi($apiClient); //Create Storage Api object $apiStorage = new StorageApi($apiClient); sleep(5); //Make request to Async API to get job info $jobInfo = $api-\u0026gt;GetJobDocuments(trim($clientId), $jobId, \u0026#34;\u0026#34;); if ($jobInfo-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //Get file guid $guid = $jobInfo-\u0026gt;result-\u0026gt;inputs\\[0\\]-\u0026gt;outputs\\[0\\]-\u0026gt;guid; //Get file name $name = $jobInfo-\u0026gt;result-\u0026gt;inputs\\[0\\]-\u0026gt;outputs\\[0\\]-\u0026gt;name; } //Local path to the downloads folder $downloadFolder = dirname(\\_\\_FILE\\_\\_). \u0026#39;/../../downloads\u0026#39;; //Check is folder exist if (!file\\_exists($downloadFolder)) { //If folder don\u0026#39;t exist create it mkdir($downloadFolder); } //Obtaining file stream of downloading file and definition of folder where to download file $outFileStream = FileStream::fromHttp($downloadFolder, $name); //Download file from GroupDocs. $download = $apiStorage-\u0026gt;GetFile(trim($clientId), $guid, $outFileStream); ?\u0026gt; This controller reads the user ID and private key from the text file. Then it gets the raw data from the server inquiry. In this raw data we have the job ID. Use this like in the previous controller to get the converted file. To do this we must create all the objects again: GroupDocsRequestSigner, APIClient and Async API. After that we can make a request using the GetJobDocuments method to get the file GUID and name. Use this data for the GetFile method to download the converted file to the downloads folder.\ncheck_file.php At the same time that the convert_callback controller is working, we see that the page is reloaded and shows the iframe with the converted file. When the iframe is loaded, Ajax sends its request to the check_file controller. The check_file controller looks like this:\n\u0026lt;?php $result = \u0026#34;\u0026#34;; //counter to not wait forever $counter = 0; //Local path to the downloads folder $downloadFolder = \\_\\_DIR\\_\\_ . \u0026#39;/../../downloads\u0026#39;; //Check folder for downloaded file do { //Set max. iterations if ($counter \u0026gt;= 10) { $result = \u0026#34;Error\u0026#34;; break; } sleep(5); //Check is downloads folder exist if (!file\\_exists($downloadFolder)) { //If folder don\u0026#39;t exist create it $di = mkdir($downloadFolder); } //Open downloads folder $filePaths = opendir($downloadFolder); //Get all elements from folder while (($file = readdir($filePaths)) !== false) { //Get downloaded file name if ($file != \u0026#34;.\u0026#34; \u0026amp;\u0026amp; $file != \u0026#34;..\u0026#34;) { $name = $file; } } //Close folder closedir($filePaths); //Check is file downloaded if ($name == \u0026#34;\u0026#34;) { //If file don\u0026#39;t downloaded yet do one mor itaretion $counter++; continue; //If file downloaded get file name and break. } else { $result = $name; //get the name of the fist file in the directory break; } } while (true); //Check result if ($result == \u0026#34;Error\u0026#34;) { return \u0026#34;File was not found. Looks like something went wrong.\u0026#34;; } //Return file name to the template for ajax echo $result; ?\u0026gt; This controller opens the downloads folder and gets all files from it. If there are no files, the controller waits for 5 sec. and checks again. When the file is downloaded and appear in the folder, the controller get the name and returns it to Ajax which sends the file name to the download_file controller.\ndownload_file.php The download_file generates the download dialog.\n\u0026lt;?php //Get downloaded file $file = (dirname(\\_\\_FILE\\_\\_) . \u0026#39;/../../downloads/\u0026#39; . $\\_GET\\[\u0026#34;FileName\u0026#34;\\]); //Set data for download dialog header (\u0026#34;Content-Type: application/octet-stream\u0026#34;); header (\u0026#34;Accept-Ranges: bytes\u0026#34;); header (\u0026#34;Content-Length: \u0026#34;.filesize($file)); header (\u0026#34;Content-Disposition: attachment; filename=\u0026#34;.$\\_GET\\[\u0026#34;FileName\u0026#34;\\]); //Download file readfile($file); ?\u0026gt; Here we take full local path to the downloaded file and transfers it to the download dialog.\nProgram in action On that we are finished! Let me show you what it looks like in action: [caption id=\u0026ldquo;attachment_2068\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;602\u0026rdquo; caption=\u0026ldquo;The input form\u0026rdquo;]\r[/caption] [caption id=\u0026ldquo;attachment_2069\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;602\u0026rdquo; caption=\u0026ldquo;Ajax message\u0026rdquo;]\r[/caption] [caption id=\u0026ldquo;attachment_2070\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;602\u0026rdquo; caption=\u0026ldquo;Iframe with converted file\u0026rdquo;]\r[/caption] [caption id=\u0026ldquo;attachment_2089\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;602\u0026rdquo; caption=\u0026ldquo;Download dialog (FireFox)\u0026rdquo;]\r[/caption]\n","permalink":"https://blog.groupdocs.com/total/how-to-perform-callbacks-with-groupdocs-php-sdk/","summary":"This article explains the basics of using PHP SDK callbacks. In this article I\u0026rsquo;ll use the Convert API. Find information about other methods in the Swagger explorer.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version) FatFree framework (https://github.com/bcosca/fatfree) We already know how to install the Fatfree framework and prepare for creating the sample from the previous article.","title":"How to perform Callbacks with GroupDocs PHP SDK"},{"content":"A steady document signing process is the back bone of any contract-oriented organization. Conventional signing process leaves you with piles of signed documents, difficult to handle and archive. Also, the documents are passed around different departments, either getting lost or eating up too much time delaying the signing process. Online signature is the answer to all these concerns.\nSave your time and effort with GroupDocs’ online signatureSay good bye to lost signed documents and tons of paper piling up in your office! Embrace GroupDocs Signature, an efficient online signature service, to streamline your entire signing process. GroupDocs’ online signature service lets you easily prepare \u0026amp; send documents to signers, and collect signatures online. Get peace of mind by tracking the signing processTrack the document signing process from a centralized location. As soon as the documents are signed, they are automatically archived and available for retrieval when required. This completely avoids the chance of documents getting lost in mountains of signed contracts. In addition, there is no need to follow up your signers regularly through phone calls or emails. You can simply set a reminder while creating a new envelope (while preparing the document for signature) so that the signers get notifications automatically till the reminder expires. Efficient work flow walks you through the entire processThe work flow for preparing the documents for signing and sending it is so simple that even novice people can do it without the help of any documentation. GroupDocs Signature walks you through the entire process step by step. The workflow is designed in such a way that you go to the next step only after finishing the present one. This will make sure that you perform the process correctly. Procedure for preparing and sending a document for online signatureNow, lets see the simple steps for preparing a document for e-signature and sending them out to collect signatures: Go to Signature dashboard and start creating a new envelope. Step 1 - Choose a File:Here you have three options to choose a file. Use one of them to select your preferred document: Drag and drop the file in the DROP FILES HERE area. Use the Upload button and select a file from your computer. Use the Add from Library button to select a file from your GroupDocs repository. Step 2 - Add Recipients: Add your signers or recipients here. Step 3 - Add Info (optional): Add more details to the envelope. You can also add a watermark to your documents. This step is optional. Step 4 - Add Reminders (optional): Add reminder, deadline and document expiry in this step. This too is optional. Step 5 - Add Fields: Drag and drop fields to the required location on the uploaded document. Step 6 - Summary (optional): Review the envelope one final time and send the document to the signer(s). The signers can then easily sign documents online just using a browser. Type, draw, or upload the signature. All related partied are notified as soon as the documents are signed. Stay tuned for a step-by-step video tutorial on how to prepare and send a document for online signature, it\u0026rsquo;s in the pipeline. So why wait! go green with this efficient e-signature service.\n","permalink":"https://blog.groupdocs.com/signature/how-to-streamline-your-document-signing-using-online-signature/","summary":"A steady document signing process is the back bone of any contract-oriented organization. Conventional signing process leaves you with piles of signed documents, difficult to handle and archive. Also, the documents are passed around different departments, either getting lost or eating up too much time delaying the signing process. Online signature is the answer to all these concerns.\nSave your time and effort with GroupDocs’ online signatureSay good bye to lost signed documents and tons of paper piling up in your office!","title":"How to Streamline Your Document Signing Using Online Signature?"},{"content":"This article explains the basics of using PHP SDK classes and methods. In this article I\u0026rsquo;ll use the Comparison API and show how to compare two documents from a GroupDocs account. Find information about other methods in the Swagger explorer.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version) FatFree framework (https://github.com/bcosca/fatfree) We already know how to install the Fatfree framework and prepare for creating the sample from the previous article. So lets start with the magic.\nSample Creation: Creating the Template Create a template file in the template folder and name it Comparison.htm. This generates a web page with a form for entering the necessary data such as user ID, private key and the file GUIDs for the two files that will be compared. The user can also enter a callback URL. How to get this data you can find out in the documentation.\n\u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta http-equiv=\u0026#34;Content-Type\u0026#34; content=\u0026#34;text/html; charset=UTF-8\u0026#34;/\u0026gt; \u0026lt;title\u0026gt;Powered by {{ @VERSION }}\u0026lt;/title\u0026gt; \u0026lt;style type=\u0026#34;text/css\u0026#34;\u0026gt; {{ Web::minify(\u0026#39;templates/\u0026#39;,array(\u0026#39;style.css\u0026#39;),FALSE) }} \u0026lt;/style\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;h3 style=\u0026#34;text-align:center;\u0026#34;\u0026gt;\u0026lt;a href=\u0026#34;/index.php\u0026#34;\u0026gt;GroupDocs PHP SDK Samples\u0026lt;/a\u0026gt; - Comparison\u0026lt;/h3\u0026gt; \u0026lt;div class=\u0026#39;samplecontent\u0026#39; style=\u0026#34;padding:10px;\u0026#34;\u0026gt; \u0026lt;i\u0026gt;This sample will show how to Compare documents using PHP SDK\u0026lt;/i\u0026gt; \u0026lt;br/\u0026gt; \u0026lt;br/\u0026gt;You entered: ClientID = {{@userId}} PrivateKey = {{@privateKey}} Source file Id = {{@sourceFileId}} Target file Id = {{@targetFileId}} Call back url = {{@callbackURL}} \u0026lt;div id=\u0026#34;requestForm\u0026#34; style=\u0026#34;padding:20px; border:1px solid black;\u0026#34;\u0026gt; Enter data for request and press \u0026#34;Make request\u0026#34; button \u0026lt;form action=\u0026#34;/comparison\u0026#34; method = \u0026#34;post\u0026#34; enctype = \u0026#39;multipart/form-data\u0026#39;\u0026gt; \u0026lt;label for=\u0026#39;client\\_id\u0026#39;\u0026gt;GroupDocs ClientID\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;client\\_id\u0026#39; value=\u0026#34;{{@userId}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;private\\_key\u0026#39;\u0026gt;GroupDocs PrivateKey\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;private\\_key\u0026#39; value=\u0026#34;{{@privateKey}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;sourceFileId\u0026#39;\u0026gt;sourceFileId\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;sourceFileId\u0026#39; value=\u0026#34;{{@sourceFileId}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;targetFileId\u0026#39;\u0026gt;targetFileId\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;targetFileId\u0026#39; value=\u0026#34;{{@targetFileId}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;callbackUrl\u0026#39;\u0026gt;callbackUrl\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;callbackUrl\u0026#39; value=\u0026#34;{{@callbackURL}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;submit\u0026#39; value=\u0026#39;Make Request\u0026#39;/\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div style=\u0026#34;padding:20px; border:1px solid black;\u0026#34;\u0026gt; Results: \u0026lt;iframe src={{@iframe}}\u0026gt;\u0026lt;/iframe\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;br/\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; The Template Code Explained This code block shows the data the user entered. Here you can see code like this: \\{\\{@userId\\}\\}. In the Fatfree framework you must call a variable declared in the controller for the template.\n\u0026lt;br/\u0026gt;You entered: ClientID = {{@userId}} PrivateKey = {{@privateKey}} Source file Id = {{@sourceFileId}} Target file Id = {{@targetFileId}} Call back url = {{@callbackURL}} The next step in the template file creates a div block with the form for entering data:\n\u0026lt;div id=\u0026#34;requestForm\u0026#34; style=\u0026#34;padding:20px; border:1px solid black;\u0026#34;\u0026gt; Enter data for request and press \u0026#34;Make request\u0026#34; button \u0026lt;form action=\u0026#34;/sample19\u0026#34; method = \u0026#34;post\u0026#34; enctype = \u0026#39;multipart/form-data\u0026#39;\u0026gt; \u0026lt;label for=\u0026#39;client\\_id\u0026#39;\u0026gt;GroupDocs ClientID\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;client\\_id\u0026#39; value=\u0026#34;{{@userId}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;private\\_key\u0026#39;\u0026gt;GroupDocs PrivateKey\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;private\\_key\u0026#39; value=\u0026#34;{{@privateKey}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;sourceFileId\u0026#39;\u0026gt;sourceFileId\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;sourceFileId\u0026#39; value=\u0026#34;{{@sourceFileId}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;targetFileId\u0026#39;\u0026gt;targetFileId\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;targetFileId\u0026#39; value=\u0026#34;{{@targetFileId}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;callbackUrl\u0026#39;\u0026gt;callbackUrl\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;callbackUrl\u0026#39; value=\u0026#34;{{@callbackURL}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;submit\u0026#39; value=\u0026#39;Make Request\u0026#39;/\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/div\u0026gt; Callbacks Let\u0026rsquo;s explain some key moments for this code. In the Fatfree framework, the form is creation using a simple HTML code which does not need explaining: everything is as usual. But in the value of the input\u0026rsquo;s we transfer the value of variables from the controller - \\{\\{@userId\\}\\} - in order that the user data stays in the values when the user clicks Make request. Also you can see here the input named CallbackURL. In this field, the user can enter a URL which will be executed by the server after the comparison is done. A callback is something like an action for a form. It can be a PHP file which is triggered by the server. All of these fields are required except for the callbackURL field.\nDisplaying the Comparison Results The next code block in the template file is:\n\u0026lt;div style=\u0026#34;padding:20px; border:1px solid black;\u0026#34;\u0026gt; Results: \u0026lt;font color=\u0026#34;red\u0026#34;\u0026gt;{{@error}}\u0026lt;/font\u0026gt; \u0026lt;iframe src={{@iframe}}\u0026gt;\u0026lt;/iframe\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;br/\u0026gt; \u0026lt;/div\u0026gt; This div block shows the results of a comparison. As you can see, it\u0026rsquo;s simple HTML too but the iframe source and parameters we get from the controller. As part of the controller operation, we check that all the parameters have been entered. If a parameter doesn\u0026rsquo;t have a value, an error is returned. So, depending on what we receive from the server, we return either the iframe or an error message. The form looks like this: Sample Creation: Creating the Controller Go to the inc_samples folder and create controller file called Comparison.php. This file will contain this code:\n\u0026lt;?php //\u0026lt;i\u0026gt;This sample will show how to use \u0026lt;b\u0026gt;Compare\u0026lt;/b\u0026gt; method from ComparisonApi to return a URL representing a single page of a Document\u0026lt;/i\u0026gt; //###Set variables and get POST data F3::set(\u0026#39;userId\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;privateKey\u0026#39;, \u0026#39;\u0026#39;); f3::set(\u0026#39;result\u0026#39;, \u0026#34;\u0026#34;); $clientId = F3::get(\u0026#39;POST\\[\u0026#34;client\\_id\u0026#34;\\]\u0026#39;); $privateKey = F3::get(\u0026#39;POST\\[\u0026#34;private\\_key\u0026#34;\\]\u0026#39;); $sourceFileId = f3::get(\u0026#39;POST\\[\u0026#34;sourceFileId\u0026#34;\\]\u0026#39;); $targetFileId = f3::get(\u0026#39;POST\\[\u0026#34;targetFileId\u0026#34;\\]\u0026#39;); $callbackUrl = f3::get(\u0026#39;POST\\[\u0026#34;callbackUrl\u0026#34;\\]\u0026#39;); $basePath = f3::get(\u0026#39;POST\\[\u0026#34;server\\_type\u0026#34;\\]\u0026#39;); function Compare($clientId, $privateKey, $sourceFileId, $targetFileId, $callbackUrl, $basePath) { //### Check clientId, privateKey and fileGuId if (empty($clientId) || empty($privateKey) || empty($sourceFileId) || empty($targetFileId)) { throw new Exception(\u0026#39;Please enter all required parameters\u0026#39;); } else { //Set variables for Viewer F3::set(\u0026#39;userId\u0026#39;, $clientId); F3::set(\u0026#39;privateKey\u0026#39;, $privateKey); //###Create Signer, ApiClient and Storage Api objects //Create signer object $signer = new GroupDocsRequestSigner($privateKey); //Create apiClient object $apiClient = new APIClient($signer); //Create ComparisonApi object $CompareApi = new ComparisonApi($apiClient); $CompareApi-\u0026gt;setBasePath($basePath); //###Make request to ComparisonApi using user id //Comparison of documents where: $clientId - user GuId, $sourceFileId - source file Guid in which will be provided compare, //$targetFileId - file GuId with wich will compare sourceFile, $callbackUrl - Url which will be executed after compare, $info = $CompareApi-\u0026gt;Compare($clientId, $sourceFileId, $targetFileId, $callbackUrl); //###Example of handling callback request: // You can handle callback request in separate php file or in the same one. Our service will post JSON data via post request. //In PHP you should get raw data like this: // $json = file\\_get\\_contents(\u0026#34;php://input\u0026#34;); - get callback data // $fp = fopen(\\_\\_DIR\\_\\_ . \u0026#39;/../../temp/signature\\_request\\_log.txt\u0026#39;, \u0026#39;a\u0026#39;); - open file for data write // fwrite($fp, $json . \u0026#34;\\\\r\\\\n\u0026#34;); - write data to the file // fclose($fp); - close file //Check request status if($info-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //Create AsyncApi object $asyncApi = new AsyncApi($apiClient); $asyncApi-\u0026gt;setBasePath($basePath); //### Check job status for ($i = 0; $i \u0026lt;= 5; $i++) { //Delay necessary that the inquiry would manage to be processed sleep(5); //Make request to api for get document info by job id $jobInfo = $asyncApi-\u0026gt;GetJobDocuments($clientId, $info-\u0026gt;result-\u0026gt;job\\_id); //Check job status, if status is Completed or Archived exit from cycle if ($jobInfo-\u0026gt;result-\u0026gt;job\\_status == \u0026#34;Completed\u0026#34; || $jobInfo-\u0026gt;result-\u0026gt;job\\_status == \u0026#34;Archived\u0026#34;) { break; //If job status Postponed throw exception with error } elseif ($jobInfo-\u0026gt;result-\u0026gt;job\\_status == \u0026#34;Postponed\u0026#34;) { throw new Exception(\u0026#39;Job is failure\u0026#39;); } } //Get file guid $guid = $jobInfo-\u0026gt;result-\u0026gt;outputs\\[0\\]-\u0026gt;guid; // Construct iframe using fileId if($basePath == \u0026#34;https://api.groupdocs.com/v2.0\u0026#34;) { $iframe = \u0026#39;https://apps.groupdocs.com/document-viewer/embed/\u0026#39; . $guid . \u0026#39; frameborder=\u0026#34;0\u0026#34; width=\u0026#34;800\u0026#34; height=\u0026#34;650\u0026#34;\u0026#39;; //iframe to dev server } elseif($basePath == \u0026#34;https://dev-api.groupdocs.com/v2.0\u0026#34;) { $iframe = \u0026#39;https://dev-apps.groupdocs.com/document-viewer/embed/\u0026#39; . $guid . \u0026#39; frameborder=\u0026#34;0\u0026#34; width=\u0026#34;500\u0026#34; height=\u0026#34;650\u0026#34;\u0026#39;; //iframe to test server } elseif($basePath == \u0026#34;https://stage-api.groupdocs.com/v2.0\u0026#34;) { $iframe = \u0026#39;https://stage-apps.groupdocs.com/document-viewer/embed/\u0026#39; . $guid . \u0026#39; frameborder=\u0026#34;0\u0026#34; width=\u0026#34;500\u0026#34; height=\u0026#34;650\u0026#34;\u0026#39;; } } //If request was successfull - set url variable for template return F3::set(\u0026#39;iframe\u0026#39;, $iframe); } } try { Compare($clientId, $privateKey, $sourceFileId, $targetFileId, $callbackUrl, $basePath); } catch(Exception $e) { $error = \u0026#39;ERROR: \u0026#39; . $e-\u0026gt;getMessage() . \u0026#34;\\\\n\u0026#34;; f3::set(\u0026#39;error\u0026#39;, $error); } //Process template f3::set(\u0026#39;sourceFileId\u0026#39;, $sourceFileId); f3::set(\u0026#39;targetFileId\u0026#39;, $targetFileId); f3::set(\u0026#39;callbackURL\u0026#39;, $callbackUrl); // f3::set(\u0026#39;result\u0026#39;, $result); echo Template::serve(\u0026#39;comparison.htm\u0026#39;); The Controller Code Explained Now the code explanation: First of all we must get a posted data from form. In Fatfree framework we can do it with this code:\n$clientId = F3::get(\u0026#39;POST\\[\u0026#34;client\\_id\u0026#34;\\]\u0026#39;); $privateKey = F3::get(\u0026#39;POST\\[\u0026#34;private\\_key\u0026#34;\\]\u0026#39;); $sourceFileId = f3::get(\u0026#39;POST\\[\u0026#34;sourceFileId\u0026#34;\\]\u0026#39;); $targetFileId = f3::get(\u0026#39;POST\\[\u0026#34;targetFileId\u0026#34;\\]\u0026#39;); $callbackUrl = f3::get(\u0026#39;POST\\[\u0026#34;callbackUrl\u0026#34;\\]\u0026#39;); $basePath = f3::get(\u0026#39;POST\\[\u0026#34;server\\_type\u0026#34;\\]\u0026#39;); F3::get is a framework method to call to the global associative array of variables passed to the current script via the HTTP POST method. Now we can declare empty variables for template.\nF3::set(\u0026#39;userId\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;privateKey\u0026#39;, \u0026#39;\u0026#39;); f3::set(\u0026#39;result\u0026#39;, \u0026#34;\u0026#34;); f3::set is one more framework method similar to f3::get but it transfers data to the template. The first parameter is a name of a variable in the template. The second parameter is the data that associated with this variable. Right now, it\u0026rsquo;s a empty string.\nCreating the Compare Function Let\u0026rsquo;s create a function named Compare which takes the entered data and runs a comparison. First, what this function does is to check that all data has been entered by the user:\nfunction Compare($clientId, $privateKey, $sourceFileId, $targetFileId, $callbackUrl, $basePath) { if (empty($clientId) || empty($privateKey) || empty($sourceFileId) || empty($targetFileId)) { throw new Exception(\u0026#39;Please enter all required parameters\u0026#39;); The checks are standard checks for empty values. If the user entered all the required data, the controller continues its operation:\n} else { //Set variables for Viewer F3::set(\u0026#39;userId\u0026#39;, $clientId); F3::set(\u0026#39;privateKey\u0026#39;, $privateKey); //###Create Signer, ApiClient and Storage Api objects //Create signer object $signer = new GroupDocsRequestSigner($privateKey); //Create apiClient object $apiClient = new APIClient($signer); //Create ComparisonApi object $CompareApi = new ComparisonApi($apiClient); This block sets data to the template variables userId and privateKey, which was empty. After that they contain user entered data. Next create the Signer, ApiClient and Comparison API objects for making request to the server.\nThe ComparisonAnd now the comparison magic: //Comparison of documents where: $clientId - user GuId, $sourceFileId - source file Guid in which will be provided compare, //$targetFileId - file GuId with wich will compare sourceFile, $callbackUrl - Url which will be executed after compare, $info = $CompareApi-\u0026gt;Compare($clientId, $sourceFileId, $targetFileId, $callbackUrl); Expected the comparison segment to be bigger? Sorry if you\u0026rsquo;re disappointed. The document comparison is only one line of code: all you need to do is call the Compare method from the PHP SDK and transfer the proper data to it. Data such as the client ID (user id), the GUIDs for the two files that will be compared (the source and target file IDs) and, finally, the callback URL which can be an empty string. The next step is a check of the comparison results:\nif($info-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //Create AsyncApi object $asyncApi = new AsyncApi($apiClient); //### Check job status for ($i = 0; $i \u0026lt;= 5; $i++) { //Delay necessary that the inquiry would manage to be processed sleep(5); //Make request to api for get document info by job id $jobInfo = $asyncApi-\u0026gt;GetJobDocuments($clientId, $info-\u0026gt;result-\u0026gt;job\\_id); //Check job status, if status is Completed or Archived exit from cycle if ($jobInfo-\u0026gt;result-\u0026gt;job\\_status == \u0026#34;Completed\u0026#34; || $jobInfo-\u0026gt;result-\u0026gt;job\\_status == \u0026#34;Archived\u0026#34;) { break; //If job status Postponed throw exception with error } elseif ($jobInfo-\u0026gt;result-\u0026gt;job\\_status == \u0026#34;Postponed\u0026#34;) { throw new Exception(\u0026#39;Job is failure\u0026#39;); } } //Get file guid $guid = $jobInfo-\u0026gt;result-\u0026gt;outputs\\[0\\]-\u0026gt;guid; // Construct iframe using fileId $iframe = \u0026#39;https://apps.groupdocs.com/document-viewer/embed/\u0026#39; . $guid . \u0026#39; frameborder=\u0026#34;0\u0026#34; width=\u0026#34;800\u0026#34; height=\u0026#34;650\u0026#34;\u0026#39;; } Here we check what status of request was returned. If it\u0026rsquo;s \u0026ldquo;Ok\u0026rdquo;, we can continue and get all the necessary data for an iframe, such as result file GUID, from the returned job ID. In the server response of the Compare method, we have only the request status and job ID which is why we must create an AsyncApi object ($asyncApi = new AsyncApi($apiClient); and call the GetJobDocuments method from this object. This method uses the job ID to get all the info of this job. Now we must check the job status from $jobInfo-\u0026gt;result. If it is \u0026ldquo;Completed\u0026rdquo; or \u0026ldquo;Archived\u0026rdquo;, all is well and we continue. But before we do this check we must allow the server to fulfill the inquiry having established a delay in 5 sec: sleep(5);. After job status check, we can get the result file GUID. It will be in the outputs array: $guid = $jobInfo-\u0026gt;result-\u0026gt;outputs[0]-\u0026gt;guid;. So now we have real file GUID and we can generate an iframe: $iframe = \u0026lsquo;https:**//apps.groupdocs.com/document-viewer/embed/\u0026rsquo; . $guid . \u0026rsquo; frameborder=\u0026ldquo;0\u0026rdquo; width=\u0026ldquo;800\u0026rdquo; height=\u0026ldquo;650\u0026rdquo;\u0026rsquo;;\nCalling the FunctionAnd one last code block: try { Compare($clientId, $privateKey, $sourceFileId, $targetFileId, $callbackUrl, $basePath); } catch(Exception $e) { $error = \u0026#39;ERROR: \u0026#39; . $e-\u0026gt;getMessage() . \u0026#34;\\\\n\u0026#34;; f3::set(\u0026#39;error\u0026#39;, $error); } //Process template f3::set(\u0026#39;sourceFileId\u0026#39;, $sourceFileId); f3::set(\u0026#39;targetFileId\u0026#39;, $targetFileId); f3::set(\u0026#39;callbackURL\u0026#39;, $callbackUrl); // f3::set(\u0026#39;result\u0026#39;, $result); echo Template::serve(\u0026#39;comparison.htm\u0026#39;); In this block we call our function with user data and a catch exception (in case there is an exception). The exception contains all possible errors. And we can set variables for the template and send them to it: f3::set(\u0026lsquo;sourceFileId\u0026rsquo;, $sourceFileId);. As I\u0026rsquo;ve already mentioned, this sets variables for the template and this line of code, echo Template::serve(\u0026lsquo;comparison.htm\u0026rsquo;); calls template and send data to it. The iframe, complete with results, looks like this: ","permalink":"https://blog.groupdocs.com/comparison/how-to-compare-files-with-groupdocs-php-sdk/","summary":"This article explains the basics of using PHP SDK classes and methods. In this article I\u0026rsquo;ll use the Comparison API and show how to compare two documents from a GroupDocs account. Find information about other methods in the Swagger explorer.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version) FatFree framework (https://github.com/bcosca/fatfree) We already know how to install the Fatfree framework and prepare for creating the sample from the previous article.","title":"How to Compare Files with GroupDocs PHP SDK"},{"content":"This article explains the basics of creating a plugin for the Contao CMS using the Contao Viewer plugin as an example. You can download the completed plugin from Contao.\nRequirements Contao CMS PHP 5.3 JavaScript PreparationTo create a GroupDocs Viewer plugin for Contao CMS: Install Contao CMS. The installation of this CMS is a simple. Allow GroupDocs to appear go to Admin \u0026gt; Setting \u0026gt; Security settings \u0026gt; Allowed HTML tags and just add at the end. Create a folder to hold future plugin files in the root/system/modules directory of the Contao CMS installation and name it groupdocs_viewer. Creating the Plugin This plugin adds a button to the Admin side of the CMS above the editing block of any article. When users click the button a dialog appears. Here, users enter the file GUID from their GroupDocs account to embed and iframe with this file. OK. Let\u0026rsquo;s start creating a Viewer plugin. All operations are in the groupdocs_viewer folder. First of all, create a ModuleGroupdocsViewer.php file. This file will contain the plugin\u0026rsquo;s installation and uninstallation logic. Enter this code into the file:\n\u0026lt;?php if (!defined(\u0026#39;TL\\_ROOT\u0026#39;)) die(\u0026#39;You can not access this file directly!\u0026#39;); /\\*\\* \\* GroupDocs \\* \\* This program is free software: you can redistribute it and/or \\* modify it under the terms of the GNU Lesser General Public \\* License as published by the Free Software Foundation, either \\* version 2.1 of the License, or (at your option) any later version. \\* \\* This program is distributed in the hope that it will be useful, \\* but WITHOUT ANY WARRANTY; without even the implied warranty of \\* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU \\* Lesser General Public License for more details. \\* \\* You should have received a copy of the GNU Lesser General Public \\* License along with this program. If not, please visit the Free \\* Software Foundation website at http://www.gnu.org/licenses/. \\* \\* PHP version 5 \\* @copyright 2012 \\* @author sales@groupdocs.com \\* @license GPL \\*/ /\\*\\* \\* @package Controller \\*/ class ModuleGroupdocsViewer extends Module { /\\*\\* \\* Template \\* @var string \\*/ protected $strTemplate = \u0026#39;mod\\_groupdocsviewer\u0026#39;; /\\*\\* \\* Display a wildcard in the back end \\* @return string \\*/ public function generate() { if (TL\\_MODE == \u0026#39;BE\u0026#39;) { $objTemplate = new BackendTemplate(\u0026#39;be\\_wildcard\u0026#39;); $objTemplate-\u0026gt;wildcard = \u0026#39;### GROUPDOCS VIEWER LIST ###\u0026#39;; $objTemplate-\u0026gt;title = $this-\u0026gt;headline; $objTemplate-\u0026gt;id = $this-\u0026gt;id; $objTemplate-\u0026gt;link = $this-\u0026gt;name; $objTemplate-\u0026gt;href = \u0026#39;contao/main.php?do=themes\u0026amp;amp;table=tl\\_module\u0026amp;amp;act=edit\u0026amp;amp;id=\u0026#39; . $this-\u0026gt;id; return $objTemplate-\u0026gt;parse(); } return parent::generate(); } /\\*\\* \\* Generate module \\*/ protected function compile() { /\\* $this-\u0026gt;Template-\u0026gt;gdv = $arrGdv; $this-\u0026gt;Template-\u0026gt;width = $objCategory-\u0026gt;width; $this-\u0026gt;Template-\u0026gt;height = $objCategory-\u0026gt;height; $this-\u0026gt;Template-\u0026gt;categories = $arrCategories; \\*/ } } ?\u0026gt; The Code Line by LineLet\u0026rsquo;s take a look at the code we inserted. The first line if (!defined(\u0026#39;TL\\_ROOT\u0026#39;)) die(\u0026#39;You can not access this file directly!\u0026#39;); says that if TL_ROOT has not been defined, the user can\u0026rsquo;t access the file. This line must be in all plugin files as first line. The next, commented, block contains information about the plugin. Now create a basic class of our plugin which will extend the Contao CMS\u0026rsquo;s Module class. This is necessary for Contao to understand that this is a module and give us access to the CMS\u0026rsquo;s functions.\nclass ModuleGroupdocsViewer extends Module That creates the class. Then we have the magic that installs and uninstalls the plugin. For this purpose we create some functions. All code explanations are on the same lines of the code in the section below.\nprotected $strTemplate = \u0026#39;mod\\_groupdocsviewer\u0026#39;; // Creation of the protected variable which declare a template with module name /\\*\\* \\* Display a wildcard in the back end \\* @return string \\*/ public function generate() //This function is describe an insertion of plugin info to the CMS. //For this purpose we use a variables of the basic Module class which we expanded by our class { if (TL\\_MODE == \u0026#39;BE\u0026#39;) { $objTemplate = new BackendTemplate(\u0026#39;be\\_wildcard\u0026#39;); $objTemplate-\u0026gt;wildcard = \u0026#39;### GROUPDOCS VIEWER LIST ###\u0026#39;; $objTemplate-\u0026gt;title = $this-\u0026gt;headline; $objTemplate-\u0026gt;id = $this-\u0026gt;id; $objTemplate-\u0026gt;link = $this-\u0026gt;name; $objTemplate-\u0026gt;href = \u0026#39;contao/main.php?do=themes\u0026amp;amp;table=tl\\_module\u0026amp;amp;act=edit\u0026amp;amp;id=\u0026#39; . $this-\u0026gt;id; return $objTemplate-\u0026gt;parse(); } return parent::generate(); } /\\*\\* \\* Generate module \\*/ protected function compile() //In this function we transfer our plugin data to the template such as button position and in which area to insert our button. { /\\* $this-\u0026gt;Template-\u0026gt;gdv = $arrGdv; $this-\u0026gt;Template-\u0026gt;width = $objCategory-\u0026gt;width; $this-\u0026gt;Template-\u0026gt;height = $objCategory-\u0026gt;height; $this-\u0026gt;Template-\u0026gt;categories = $arrCategories; \\*/ } So far, we\u0026rsquo;ve created the basic plugin file but the plugin doesn\u0026rsquo;t do anything yet. So let\u0026rsquo;s add some functionality.\nCompleting the Plugin DeclarationBefore adding functionality to the plugin, we need to set up some files and file structures. First, create a Template folder and add an empty template file to it. The Contao CMS will write data that we declare for the template to this file. The file name for is mod_groupdocsviewer - the same that we called our protected variable. Create a languages folder in the plugin\u0026rsquo;s root folder and, in this folder, create one an en folder. In the enfolder, create two files which will contain a string declaration of all titles and messages for our plugin.\rmodules.phpThe first file is named modules.php and contain basic data such as the plugin name: \u0026lt;?php if (!defined(\u0026#39;TL\\_ROOT\u0026#39;)) die(\u0026#39;You can not access this file directly!\u0026#39;); /\\*\\* \\* GroupDocs \\* \\* This program is free software: you can redistribute it and/or \\* modify it under the terms of the GNU Lesser General Public \\* License as published by the Free Software Foundation, either \\* version 2.1 of the License, or (at your option) any later version. \\* \\* This program is distributed in the hope that it will be useful, \\* but WITHOUT ANY WARRANTY; without even the implied warranty of \\* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU \\* Lesser General Public License for more details. \\* \\* You should have received a copy of the GNU Lesser General Public \\* License along with this program. If not, please visit the Free \\* Software Foundation website at http://www.gnu.org/licenses/. \\* \\* PHP version 5 \\* @copyright 2012 \\* @author sales@groupdocs.com \\* @license GPL \\*/ /\\*\\* \\* Back end modules \\*/ $GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;MOD\u0026#39;\\]\\[\u0026#39;groupdocs\\_viewer\u0026#39;\\] = array(\u0026#39;GroupDocs Viewer\u0026#39;, \u0026#39;Module name\u0026#39;); /\\*\\* \\* Front end modules \\*/ //$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;FMD\u0026#39;\\]\\[\u0026#39;groupdocs\\_viewer\u0026#39;\\] = array(\u0026#39;GDV List\u0026#39;, \u0026#39;Module list\u0026#39;); ?\u0026gt; As you can see, even in language files there has to be a plugin info block and a line of code that limits access. So in this file we have only one line of code which declares an array with the plugin name and transfers it to the CMS\u0026rsquo;s global data.\ntl_gdv.phpThe second language file is named tl_gdv.php and contains all local names, titles and messages for our plugin: \u0026lt;?php if (!defined(\u0026#39;TL\\_ROOT\u0026#39;)) die(\u0026#39;You can not access this file directly!\u0026#39;); /\\*\\* \\* GroupDocs \\* \\* This program is free software: you can redistribute it and/or \\* modify it under the terms of the GNU Lesser General Public \\* License as published by the Free Software Foundation, either \\* version 2.1 of the License, or (at your option) any later version. \\* \\* This program is distributed in the hope that it will be useful, \\* but WITHOUT ANY WARRANTY; without even the implied warranty of \\* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU \\* Lesser General Public License for more details. \\* \\* You should have received a copy of the GNU Lesser General Public \\* License along with this program. If not, please visit the Free \\* Software Foundation website at http://www.gnu.org/licenses/. \\* \\* PHP version 5 \\* @copyright 2012 \\* @author sales@groupdocs.com \\* @license GPL \\*/ /\\*\\* \\* Table tl\\_gdv \\*/ $GLOBALS\\[\u0026#39;TL\\_DCA\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\] = array ( // Config \u0026#39;config\u0026#39; =\u0026gt; array ( \u0026#39;dataContainer\u0026#39; =\u0026gt; \u0026#39;Table\u0026#39;, //\u0026#39;ptable\u0026#39; =\u0026gt; \u0026#39;tl\\_gdv\u0026#39;, ), // List \u0026#39;list\u0026#39; =\u0026gt; array ( \u0026#39;global\\_operations\u0026#39; =\u0026gt; array ( \u0026#39;all\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;MSC\u0026#39;\\]\\[\u0026#39;all\u0026#39;\\], \u0026#39;href\u0026#39; =\u0026gt; \u0026#39;act=select\u0026#39;, \u0026#39;class\u0026#39; =\u0026gt; \u0026#39;header\\_edit\\_all\u0026#39;, \u0026#39;attributes\u0026#39; =\u0026gt; \u0026#39;onclick=\u0026#34;Backend.getScrollOffset();\u0026#34;\u0026#39;, \u0026#39;button\\_callback\u0026#39;\t=\u0026gt; array(\u0026#39;GrouDocs\\_Details\u0026#39;, \u0026#39;groupdocs\\_owner\u0026#39;), ) ), \u0026#39;operations\u0026#39; =\u0026gt; array ( \u0026#39;edit\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;edit\u0026#39;\\], \u0026#39;href\u0026#39; =\u0026gt; \u0026#39;act=edit\u0026#39;, \u0026#39;icon\u0026#39; =\u0026gt; \u0026#39;edit.gif\u0026#39; ), \u0026#39;copy\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;copy\u0026#39;\\], \u0026#39;href\u0026#39; =\u0026gt; \u0026#39;act=copy\u0026#39;, \u0026#39;icon\u0026#39; =\u0026gt; \u0026#39;copy.gif\u0026#39; ), \u0026#39;delete\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;delete\u0026#39;\\], \u0026#39;href\u0026#39; =\u0026gt; \u0026#39;act=delete\u0026#39;, \u0026#39;icon\u0026#39; =\u0026gt; \u0026#39;delete.gif\u0026#39;, \u0026#39;attributes\u0026#39; =\u0026gt; \u0026#39;onclick=\u0026#34;if (!confirm(\\\\\u0026#39;\u0026#39; . $GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;MSC\u0026#39;\\]\\[\u0026#39;deleteConfirm\u0026#39;\\] . \u0026#39;\\\\\u0026#39;)) return false; Backend.getScrollOffset();\u0026#34;\u0026#39; ), \u0026#39;show\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;show\u0026#39;\\], \u0026#39;href\u0026#39; =\u0026gt; \u0026#39;act=show\u0026#39;, \u0026#39;icon\u0026#39; =\u0026gt; \u0026#39;show.gif\u0026#39; ) ) ), // Palettes \u0026#39;palettes\u0026#39; =\u0026gt; array ( \u0026#39;default\u0026#39; =\u0026gt; \u0026#39;{title\\_legend},apiKey,clientId,width,height;\u0026#39; ), // Fields \u0026#39;fields\u0026#39; =\u0026gt; array ( \u0026#39;id\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;id\u0026#39;\\], \u0026#39;inputType\u0026#39; =\u0026gt; \u0026#39;text\u0026#39;, \u0026#39;search\u0026#39; =\u0026gt; false, \u0026#39;eval\u0026#39; =\u0026gt; array(\u0026#39;mandatory\u0026#39;=\u0026gt;true) ), \u0026#39;apiKey\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;apiKey\u0026#39;\\], \u0026#39;inputType\u0026#39; =\u0026gt; \u0026#39;text\u0026#39;, \u0026#39;search\u0026#39; =\u0026gt; false, \u0026#39;eval\u0026#39; =\u0026gt; array(\u0026#39;mandatory\u0026#39;=\u0026gt;true, \u0026#39;maxlength\u0026#39;=\u0026gt;128, \u0026#39;tl\\_class\u0026#39;=\u0026gt;\u0026#39;w50\u0026#39;) ), \u0026#39;clientId\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;clientId\u0026#39;\\], \u0026#39;inputType\u0026#39; =\u0026gt; \u0026#39;text\u0026#39;, \u0026#39;search\u0026#39; =\u0026gt; false, \u0026#39;eval\u0026#39; =\u0026gt; array(\u0026#39;mandatory\u0026#39;=\u0026gt;true, \u0026#39;maxlength\u0026#39;=\u0026gt;128, \u0026#39;tl\\_class\u0026#39;=\u0026gt;\u0026#39;w50\u0026#39;) ), \u0026#39;width\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;width\u0026#39;\\], \u0026#39;inputType\u0026#39; =\u0026gt; \u0026#39;text\u0026#39;, \u0026#39;search\u0026#39; =\u0026gt; false, \u0026#39;eval\u0026#39; =\u0026gt; array(\u0026#39;mandatory\u0026#39;=\u0026gt;true, \u0026#39;maxlength\u0026#39;=\u0026gt;4, \u0026#39;tl\\_class\u0026#39;=\u0026gt;\u0026#39;w50\u0026#39;) ), \u0026#39;height\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;height\u0026#39;\\], \u0026#39;inputType\u0026#39; =\u0026gt; \u0026#39;text\u0026#39;, \u0026#39;search\u0026#39; =\u0026gt; false, \u0026#39;eval\u0026#39; =\u0026gt; array(\u0026#39;mandatory\u0026#39;=\u0026gt;true, \u0026#39;maxlength\u0026#39;=\u0026gt;4, \u0026#39;tl\\_class\u0026#39;=\u0026gt;\u0026#39;w50\u0026#39;) ), /\\* \u0026#39;image\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;image\u0026#39;\\], \u0026#39;inputType\u0026#39; =\u0026gt; \u0026#39;fileTree\u0026#39;, \u0026#39;eval\u0026#39; =\u0026gt; array(\u0026#39;files\u0026#39;=\u0026gt;true, \u0026#39;filesOnly\u0026#39;=\u0026gt;true, \u0026#39;fieldType\u0026#39;=\u0026gt;\u0026#39;radio\u0026#39;) ),\\*/ ) ); /\\*\\* @calss GrouDocs\\_Details groupdocs\\_owner() - method manipulate \\*/ class GrouDocs\\_Details{ function groupdocs\\_owner(){ print \u0026#34;\u0026lt;script\u0026gt;\u0026#34;; // admin interface echo \u0026#34; setTimeout(function(){ var GroupDocsAcc = document.getElementsByClassName(\u0026#39;tl\\_file\\_list\u0026#39;); GroupDocsAcc\\[0\\].innerHTML = \u0026#39;GroupDocs Details\u0026#39;; },500); \u0026#34;; print \u0026#34;\u0026lt;/script\u0026gt;\u0026#34;; }} ?\u0026gt; Remember that all data is declared as arrays and transferred to the CMS\u0026rsquo;s Global arrays. Also in this file we have JavaScript code which gets a list of sidebar elements and adds links to our plugin details:\nclass GrouDocs\\_Details{ function groupdocs\\_owner(){ print \u0026#34;\u0026lt;script\u0026gt;\u0026#34;; // admin interface echo \u0026#34; setTimeout(function(){ var GroupDocsAcc = document.getElementsByClassName(\u0026#39;tl\\_file\\_list\u0026#39;); GroupDocsAcc\\[0\\].innerHTML = \u0026#39;GroupDocs Details\u0026#39;; },500); \u0026#34;; print \u0026#34;\u0026lt;/script\u0026gt;\u0026#34;; }} You must write the JavaScript code as a simple text by using the \u0026rsquo;echo\u0026rsquo; command. Also in this language file we declare all dependences and includes such as icons etc. That\u0026rsquo;s the last step of the plugin declaration. Now we will add some useful functionality.\nAdding Functionality Create three folders: html, config and dca.\nPlace an icon .gif file, 16x16 pixels, in the html folder. That\u0026rsquo;s all we need to do with the html folder.\nIn the dcafolder, create two files:\n.htaccess tl_gdv.php htaccess order deny,allow deny from all That\u0026rsquo;s all. This code gave access to this folder from ather web pages of Admin side where user can bee.\ntl_gdv.phpThe code for the second file: \u0026lt;?php if (!defined(\u0026#39;TL\\_ROOT\u0026#39;)) die(\u0026#39;You can not access this file directly!\u0026#39;); /\\*\\* \\* GroupDocs \\* \\* This program is free software: you can redistribute it and/or \\* modify it under the terms of the GNU Lesser General Public \\* License as published by the Free Software Foundation, either \\* version 2.1 of the License, or (at your option) any later version. \\* \\* This program is distributed in the hope that it will be useful, \\* but WITHOUT ANY WARRANTY; without even the implied warranty of \\* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU \\* Lesser General Public License for more details. \\* \\* You should have received a copy of the GNU Lesser General Public \\* License along with this program. If not, please visit the Free \\* Software Foundation website at http://www.gnu.org/licenses/. \\* \\* PHP version 5 \\* @copyright 2012 \\* @author sales@groupdocs.com \\* @license GPL \\*/ /\\*\\* \\* Table tl\\_gdv \\*/ $GLOBALS\\[\u0026#39;TL\\_DCA\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\] = array ( // Config \u0026#39;config\u0026#39; =\u0026gt; array ( \u0026#39;dataContainer\u0026#39; =\u0026gt; \u0026#39;Table\u0026#39;, //\u0026#39;ptable\u0026#39; =\u0026gt; \u0026#39;tl\\_gdv\u0026#39;, ), // List \u0026#39;list\u0026#39; =\u0026gt; array ( \u0026#39;global\\_operations\u0026#39; =\u0026gt; array ( \u0026#39;all\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;MSC\u0026#39;\\]\\[\u0026#39;all\u0026#39;\\], \u0026#39;href\u0026#39; =\u0026gt; \u0026#39;act=select\u0026#39;, \u0026#39;class\u0026#39; =\u0026gt; \u0026#39;header\\_edit\\_all\u0026#39;, \u0026#39;attributes\u0026#39; =\u0026gt; \u0026#39;onclick=\u0026#34;Backend.getScrollOffset();\u0026#34;\u0026#39;, \u0026#39;button\\_callback\u0026#39;\t=\u0026gt; array(\u0026#39;GrouDocs\\_Details\u0026#39;, \u0026#39;groupdocs\\_owner\u0026#39;), ) ), \u0026#39;operations\u0026#39; =\u0026gt; array ( \u0026#39;edit\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;edit\u0026#39;\\], \u0026#39;href\u0026#39; =\u0026gt; \u0026#39;act=edit\u0026#39;, \u0026#39;icon\u0026#39; =\u0026gt; \u0026#39;edit.gif\u0026#39; ), \u0026#39;copy\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;copy\u0026#39;\\], \u0026#39;href\u0026#39; =\u0026gt; \u0026#39;act=copy\u0026#39;, \u0026#39;icon\u0026#39; =\u0026gt; \u0026#39;copy.gif\u0026#39; ), \u0026#39;delete\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;delete\u0026#39;\\], \u0026#39;href\u0026#39; =\u0026gt; \u0026#39;act=delete\u0026#39;, \u0026#39;icon\u0026#39; =\u0026gt; \u0026#39;delete.gif\u0026#39;, \u0026#39;attributes\u0026#39; =\u0026gt; \u0026#39;onclick=\u0026#34;if (!confirm(\\\\\u0026#39;\u0026#39; . $GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;MSC\u0026#39;\\]\\[\u0026#39;deleteConfirm\u0026#39;\\] . \u0026#39;\\\\\u0026#39;)) return false; Backend.getScrollOffset();\u0026#34;\u0026#39; ), \u0026#39;show\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;show\u0026#39;\\], \u0026#39;href\u0026#39; =\u0026gt; \u0026#39;act=show\u0026#39;, \u0026#39;icon\u0026#39; =\u0026gt; \u0026#39;show.gif\u0026#39; ) ) ), // Palettes \u0026#39;palettes\u0026#39; =\u0026gt; array ( \u0026#39;default\u0026#39; =\u0026gt; \u0026#39;{title\\_legend},apiKey,clientId,width,height;\u0026#39; ), // Fields \u0026#39;fields\u0026#39; =\u0026gt; array ( \u0026#39;id\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;id\u0026#39;\\], \u0026#39;inputType\u0026#39; =\u0026gt; \u0026#39;text\u0026#39;, \u0026#39;search\u0026#39; =\u0026gt; false, \u0026#39;eval\u0026#39; =\u0026gt; array(\u0026#39;mandatory\u0026#39;=\u0026gt;true) ), \u0026#39;apiKey\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;apiKey\u0026#39;\\], \u0026#39;inputType\u0026#39; =\u0026gt; \u0026#39;text\u0026#39;, \u0026#39;search\u0026#39; =\u0026gt; false, \u0026#39;eval\u0026#39; =\u0026gt; array(\u0026#39;mandatory\u0026#39;=\u0026gt;true, \u0026#39;maxlength\u0026#39;=\u0026gt;128, \u0026#39;tl\\_class\u0026#39;=\u0026gt;\u0026#39;w50\u0026#39;) ), \u0026#39;clientId\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;clientId\u0026#39;\\], \u0026#39;inputType\u0026#39; =\u0026gt; \u0026#39;text\u0026#39;, \u0026#39;search\u0026#39; =\u0026gt; false, \u0026#39;eval\u0026#39; =\u0026gt; array(\u0026#39;mandatory\u0026#39;=\u0026gt;true, \u0026#39;maxlength\u0026#39;=\u0026gt;128, \u0026#39;tl\\_class\u0026#39;=\u0026gt;\u0026#39;w50\u0026#39;) ), \u0026#39;width\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;width\u0026#39;\\], \u0026#39;inputType\u0026#39; =\u0026gt; \u0026#39;text\u0026#39;, \u0026#39;search\u0026#39; =\u0026gt; false, \u0026#39;eval\u0026#39; =\u0026gt; array(\u0026#39;mandatory\u0026#39;=\u0026gt;true, \u0026#39;maxlength\u0026#39;=\u0026gt;4, \u0026#39;tl\\_class\u0026#39;=\u0026gt;\u0026#39;w50\u0026#39;) ), \u0026#39;height\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;height\u0026#39;\\], \u0026#39;inputType\u0026#39; =\u0026gt; \u0026#39;text\u0026#39;, \u0026#39;search\u0026#39; =\u0026gt; false, \u0026#39;eval\u0026#39; =\u0026gt; array(\u0026#39;mandatory\u0026#39;=\u0026gt;true, \u0026#39;maxlength\u0026#39;=\u0026gt;4, \u0026#39;tl\\_class\u0026#39;=\u0026gt;\u0026#39;w50\u0026#39;) ), /\\* \u0026#39;image\u0026#39; =\u0026gt; array ( \u0026#39;label\u0026#39; =\u0026gt; \u0026amp;$GLOBALS\\[\u0026#39;TL\\_LANG\u0026#39;\\]\\[\u0026#39;tl\\_gdv\u0026#39;\\]\\[\u0026#39;image\u0026#39;\\], \u0026#39;inputType\u0026#39; =\u0026gt; \u0026#39;fileTree\u0026#39;, \u0026#39;eval\u0026#39; =\u0026gt; array(\u0026#39;files\u0026#39;=\u0026gt;true, \u0026#39;filesOnly\u0026#39;=\u0026gt;true, \u0026#39;fieldType\u0026#39;=\u0026gt;\u0026#39;radio\u0026#39;) ),\\*/ ) ); /\\*\\* @calss GrouDocs\\_Details groupdocs\\_owner() - method manipulate \\*/ class GrouDocs\\_Details{ function groupdocs\\_owner(){ print \u0026#34;\u0026lt;script\u0026gt;\u0026#34;; // admin interface echo \u0026#34; setTimeout(function(){ var GroupDocsAcc = document.getElementsByClassName(\u0026#39;tl\\_file\\_list\u0026#39;); GroupDocsAcc\\[0\\].innerHTML = \u0026#39;GroupDocs Details\u0026#39;; },500); \u0026#34;; print \u0026#34;\u0026lt;/script\u0026gt;\u0026#34;; }} ?\u0026gt; This second file is a copy of the language file with the same name - tl_gdv.php. We do this in order that Contao CMS will have access to this file from any Admin side page where user edit the content of this page.\nThe Config Folder The most important and interesting files are placed in the Config folder:\n.htaccess config.php database.sql Create these three files in the config folder. The .htaccess file is a copy of .htaccess file created in the dca folder. We need this file here for the same purposes. The config.php file contains all the plugin\u0026rsquo;s usefull logic. You\u0026rsquo;ll find the code below. \u0026lt;?php if (!defined(\u0026#39;TL\\_ROOT\u0026#39;)) die(\u0026#39;You can not access this file directly!\u0026#39;); /\\*\\* \\* GroupDocs \\* \\* This program is free software: you can redistribute it and/or \\* modify it under the terms of the GNU Lesser General Public \\* License as published by the Free Software Foundation, either \\* version 2.1 of the License, or (at your option) any later version. \\* \\* This program is distributed in the hope that it will be useful, \\* but WITHOUT ANY WARRANTY; without even the implied warranty of \\* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU \\* Lesser General Public License for more details. \\* \\* You should have received a copy of the GNU Lesser General Public \\* License along with this program. If not, please visit the Free \\* Software Foundation website at http://www.gnu.org/licenses/. \\* \\* PHP version 5 \\* @copyright 2012 \\* @author sales@groupdocs.com \\* @license GPL \\*/ array\\_insert($GLOBALS\\[\u0026#39;BE\\_MOD\u0026#39;\\]\\[\u0026#39;content\u0026#39;\\], 3, array ( \u0026#39;groupdocs\\_viewer\u0026#39; =\u0026gt; array ( \u0026#39;tables\u0026#39; =\u0026gt; array(\u0026#39;tl\\_gdv\u0026#39;), \u0026#39;icon\u0026#39; =\u0026gt; \u0026#39;system/modules/groupdocs\\_viewer/html/groupdocs.gif\u0026#39; ) )); // Just add JS to Back End where using TinyMCE $GLOBALS\\[\u0026#39;TL\\_HOOKS\u0026#39;\\]\\[\u0026#39;outputBackendTemplate\u0026#39;\\]\\[\\] = array(\u0026#39;ArticleAddGroupDocs\u0026#39;, \u0026#39;javaScriptFileID\u0026#39;); class ArticleAddGroupDocs{ public function javaScriptFileID($strContent, $strTemplate) { if ($strTemplate == \u0026#39;be\\_main\u0026#39;) { if($\\_GET\\[\u0026#39;do\u0026#39;\\]==\u0026#39;article\u0026#39; \u0026amp;\u0026amp; $\\_GET\\[\u0026#39;act\u0026#39;\\]==\u0026#39;edit\u0026#39;) print \u0026#34;\u0026lt;script\u0026gt; //build GroupDocs Button just above Text Editor setTimeout(function(){ var place\\_for\\_but = document.getElementById(\u0026#39;pal\\_text\\_legend\u0026#39;); var leg = place\\_for\\_but.getElementsByTagName(\u0026#39;legend\u0026#39;)\\[0\\]; var btn=document.createElement(\u0026#39;input\u0026#39;); btn.type = \u0026#39;button\u0026#39;; btn.id = \u0026#39;groupdocsv\u0026#39; btn.value = \u0026#39;Embed GroupDocs Viewer\u0026#39;; btn.onclick = function() { insertGroupDocsIframe(); }; insertAfter(leg, btn); },500); function insertGroupDocsIframe(){ // Enter GroupDocs File ID var ans=prompt(\u0026#39;Enter GroupDocs File ID:\u0026#39;,\u0026#39;\u0026#39;); if(ans.length\u0026lt;50) { alert(\u0026#39;Sorry, but this File ID is too short\u0026#39;); return false; } if(ans.length\u0026gt;70) { alert(\u0026#39;Sorry, but this File ID is too big\u0026#39;); return false; } // all good continue var CMSNAME = \u0026#39;Contao\u0026#39; var CMSVERSION = \u0026#39;2.11.6\u0026#39; var iframe = \u0026#39;\u0026lt;iframe src=\\\\\u0026#34;https://apps.groupdocs.com/document-viewer/embed/\u0026#39;+ans+\u0026#39;?\u0026amp;referer=\u0026#39;+CMSNAME+\u0026#39;/\u0026#39;+CMSVERSION+\u0026#39;\\\\\u0026#34; frameborder=\\\\\u0026#34;0\\\\\u0026#34; width=\\\\\u0026#34;600\\\\\u0026#34; height=\\\\\u0026#34;400\\\\\u0026#34;\u0026gt;\u0026lt;/iframe\u0026gt;\u0026#39;; var tinyMceContent = tinyMCE.activeEditor.getContent(); // set content tinyMCE.activeEditor.setContent(tinyMceContent+iframe); } // as in jquery .after() function insertAfter(referenceNode, newNode) { referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); } \u0026lt;/script\u0026gt;\u0026#34;; } } } ?\u0026gt; As you already know, we have the basic plugin info block. Then let\u0026rsquo;s take a look at the code. This block inserts the icon file:\narray\\_insert($GLOBALS\\[\u0026#39;BE\\_MOD\u0026#39;\\]\\[\u0026#39;content\u0026#39;\\], 3, array ( \u0026#39;groupdocs\\_viewer\u0026#39; =\u0026gt; array ( \u0026#39;tables\u0026#39; =\u0026gt; array(\u0026#39;tl\\_gdv\u0026#39;), \u0026#39;icon\u0026#39; =\u0026gt; \u0026#39;system/modules/groupdocs\\_viewer/html/groupdocs.gif\u0026#39; ) )); Contao uses the TinyMCE editor so we can use this as the starting point to get the position for where to place our button, and recognize if a user turns on page editing or not. Here is the code:\n// Just add JS to Back End where using TinyMCE $GLOBALS\\[\u0026#39;TL\\_HOOKS\u0026#39;\\]\\[\u0026#39;outputBackendTemplate\u0026#39;\\]\\[\\] = array(\u0026#39;ArticleAddGroupDocs\u0026#39;, \u0026#39;javaScriptFileID\u0026#39;); class ArticleAddGroupDocs{ public function javaScriptFileID($strContent, $strTemplate) { if ($strTemplate == \u0026#39;be\\_main\u0026#39;) { if($\\_GET\\[\u0026#39;do\u0026#39;\\]==\u0026#39;article\u0026#39; \u0026amp;\u0026amp; $\\_GET\\[\u0026#39;act\u0026#39;\\]==\u0026#39;edit\u0026#39;) print \u0026#34;\u0026lt;script\u0026gt; //build GroupDocs Button just above Text Editor setTimeout(function(){ var place\\_for\\_but = document.getElementById(\u0026#39;pal\\_text\\_legend\u0026#39;); var leg = place\\_for\\_but.getElementsByTagName(\u0026#39;legend\u0026#39;)\\[0\\]; var btn=document.createElement(\u0026#39;input\u0026#39;); btn.type = \u0026#39;button\u0026#39;; btn.id = \u0026#39;groupdocsv\u0026#39; btn.value = \u0026#39;Embed GroupDocs Viewer\u0026#39;; btn.onclick = function() { insertGroupDocsIframe(); }; insertAfter(leg, btn); },500); function insertGroupDocsIframe(){ // Enter GroupDocs File ID var ans=prompt(\u0026#39;Enter GroupDocs File ID:\u0026#39;,\u0026#39;\u0026#39;); if(ans.length\u0026lt;50) { alert(\u0026#39;Sorry, but this File ID is too short\u0026#39;); return false; } if(ans.length\u0026gt;70) { alert(\u0026#39;Sorry, but this File ID is too big\u0026#39;); return false; } // all good continue var CMSNAME = \u0026#39;Contao\u0026#39; var CMSVERSION = \u0026#39;2.11.6\u0026#39; var iframe = \u0026#39;\u0026lt;iframe src=\\\\\u0026#34;https://apps.groupdocs.com/document-viewer/embed/\u0026#39;+ans+\u0026#39;?\u0026amp;referer=\u0026#39;+CMSNAME+\u0026#39;/\u0026#39;+CMSVERSION+\u0026#39;\\\\\u0026#34; frameborder=\\\\\u0026#34;0\\\\\u0026#34; width=\\\\\u0026#34;600\\\\\u0026#34; height=\\\\\u0026#34;400\\\\\u0026#34;\u0026gt;\u0026lt;/iframe\u0026gt;\u0026#39;; var tinyMceContent = tinyMCE.activeEditor.getContent(); // set content tinyMCE.activeEditor.setContent(tinyMceContent+iframe); } // as in jquery .after() function insertAfter(referenceNode, newNode) { referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); } \u0026lt;/script\u0026gt;\u0026#34;; } } As I mentioned, we must use JavaScript as simple text and include it to the page by using echo or print commands. This JavaScript receives the button position and creates the button:\n//build GroupDocs Button just above Text Editor setTimeout(function(){ //Set timeout that the page would be loaded completely var place\\_for\\_but = document.getElementById(\u0026#39;pal\\_text\\_legend\u0026#39;); //Get element to place our button to him var leg = place\\_for\\_but.getElementsByTagName(\u0026#39;legend\u0026#39;)\\[0\\]; //Get legend element var btn=document.createElement(\u0026#39;input\u0026#39;); //Creation of button btn.type = \u0026#39;button\u0026#39;; //Declare button type as \u0026#39;button\u0026#39; btn.id = \u0026#39;groupdocsv\u0026#39; //Declare button id as \u0026#39;groupdocsv\u0026#39; btn.value = \u0026#39;Embed GroupDocs Viewer\u0026#39;; //Declare button value btn.onclick = function() { insertGroupDocsIframe(); }; //Declare function which will be executed on click insertAfter(leg, btn); //Inserting button above legend },500); We\u0026rsquo;ve created a button and added its function. Then we have a function that generates a dialog window and places an iframe in the editor.\nfunction insertGroupDocsIframe(){ // Enter GroupDocs File ID var ans=prompt(\u0026#39;Enter GroupDocs File ID:\u0026#39;,\u0026#39;\u0026#39;); //Genaretion of dialog window if(ans.length\u0026lt;50) { alert(\u0026#39;Sorry, but this File ID is too short\u0026#39;); return false; } //Check entered by user data lenght if(ans.length\u0026gt;70) { alert(\u0026#39;Sorry, but this File ID is too big\u0026#39;); return false; } // all good continue var CMSNAME = \u0026#39;Contao\u0026#39; var CMSVERSION = \u0026#39;2.11.6\u0026#39; //Next long line of code it\u0026#39;s our iframe to which we transfer entered by user File GUID var iframe = \u0026#39;\u0026lt;iframe src=\\\\\u0026#34;https://apps.groupdocs.com/document-viewer/embed/\u0026#39;+ans+\u0026#39;?\u0026amp;referer=\u0026#39;+CMSNAME+\u0026#39;/\u0026#39;+CMSVERSION+\u0026#39;\\\\\u0026#34; frameborder=\\\\\u0026#34;0\\\\\u0026#34; width=\\\\\u0026#34;600\\\\\u0026#34; height=\\\\\u0026#34;400\\\\\u0026#34;\u0026gt;\u0026lt;/iframe\u0026gt;\u0026#39;; var tinyMceContent = tinyMCE.activeEditor.getContent(); //This line get editor content tinyMCE.activeEditor.setContent(tinyMceContent+iframe); //Here we add our iframe to editor } // as in jquery .after() function insertAfter(referenceNode, newNode) { referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); } That\u0026rsquo;s it. We created a GroupDocs Viewer plugin for Contao CMS.\nThe Final Plugin This is the plugin in action: [caption id=\u0026ldquo;attachment_1841\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Plugin structure\u0026rdquo;]\r[/caption] [caption id=\u0026ldquo;attachment_1842\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Button\u0026rdquo;]\r[/caption] [caption id=\u0026ldquo;attachment_1843\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;602\u0026rdquo; caption=\u0026ldquo;Dialog\u0026rdquo;]\r[/caption] [caption id=\u0026ldquo;attachment_1844\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;598\u0026rdquo; caption=\u0026ldquo;Iframe\u0026rdquo;]\r[/caption] That\u0026rsquo;s all for today. See you in the next article.\n","permalink":"https://blog.groupdocs.com/viewer/how-to-create-groupdocs-plugin-for-cms/","summary":"This article explains the basics of creating a plugin for the Contao CMS using the Contao Viewer plugin as an example. You can download the completed plugin from Contao.\nRequirements Contao CMS PHP 5.3 JavaScript PreparationTo create a GroupDocs Viewer plugin for Contao CMS: Install Contao CMS. The installation of this CMS is a simple. Allow GroupDocs to appear go to Admin \u0026gt; Setting \u0026gt; Security settings \u0026gt; Allowed HTML tags and just add at the end.","title":"How to Create GroupDocs Viewer Plugin for Contao CMS"},{"content":"This article describes how Google Chrome extensions are structured. Also I\u0026rsquo;ll show you how to create one using the GroupDocs Viewer extension as an example.\nGoogle Chrome extensionsIn contrast to developing extensions for FireFox, writing extensions for Google Chrome is a rather simple task. Chrome extensions are archives that contain the manifest file, called manifest.json and other resource files. The manifest file describes a extension\u0026rsquo;s general information: any pages and scripts it uses, and permissions. Together with the manifest, any files that the extension needs are packed into a *.crx file and a key file is saved in the *.pem format. { \u0026#34;name\u0026#34;: \u0026#34;GroupDocs Viewer\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;1.3\u0026#34;, \u0026#34;manifest\\_version\u0026#34;: 2, \u0026#34;description\u0026#34;: \u0026#34;GroupDocs Viewer plugin for Google Chrome\u0026#34;, \u0026#34;icons\u0026#34;: { \u0026#34;16\u0026#34;: \u0026#34;./img/icon16.png\u0026#34;, \u0026#34;48\u0026#34;: \u0026#34;./img/icon48.png\u0026#34;, \u0026#34;128\u0026#34;: \u0026#34;./img/icon128.png\u0026#34; }, \u0026#34;browser\\_action\u0026#34;: { \u0026#34;default\\_title\u0026#34;: \u0026#34;GroupDocs Viewer\u0026#34;, \u0026#34;default\\_icon\u0026#34;: \u0026#34;./img/icon16.png\u0026#34;, \u0026#34;default\\_popup\u0026#34;: \u0026#34;popup.html\u0026#34; }, \u0026#34;permissions\u0026#34;: \\[ \u0026#34;https://api.groupdocs.com/\\*\u0026#34;, \u0026#34;https://dev-api.groupdocs.com/\\*\u0026#34; \\] } Manifest ComponentsThe main components of the GroupDocs extension manifest are: name - The extension name. version - The extension version. manifest_version - The manifest version. description - A extension description. icons - Any icons the extension uses. browser_action - A description of an icon on the toolbar and a pop-up window. default_title - The name displayed when hovering a cursor over a extension icon. default_icon - The extension\u0026rsquo;s main icon. default_popup - The HTML file loaded into a extension\u0026rsquo;s pop-up window. permissions - The extension\u0026rsquo;s permissions. These are sites to which the extension can run Ajax inquiries. GroupDocs Viewer ObjectsThe GroupDocs Viewer extension consists of the following objects: DirectoryChoicer - File browser dialog. Used to chose a folder when moving or copying files. StatusManager - An object of notices. Used to of the progress screen and various other messages. EmbedDialog - A dialog of control parameters for generating a embeddable frame. Used for parameters controlling a frame and its generation. GroupDocsManager - An object for working with the GroupDocs account. Superstructure to the GroupDocs JavaScript API. Used for all server operations with GroupDocs. GroupDocsPlugin - The extension object in which all the extension logic is realized. How it WorksBelow, I\u0026rsquo;ve described how the extension works in some detail. Initializing the extension The extension begins the work by calling the GroupDocsPlugin object\u0026rsquo;s initialize method. In this method, at first the _initializeEvents method is called and initializes event handlers for all elements for which it is necessary. After the handler initialization, the authSuccess method is called. This method keeps appCID and appKey as global variables for further use. After that the contentShowed method is called. First, this clears an area in which files will be displayed, and then it calls the showEntities method. The showEntities method first calls the StatusManager.showProgress method. This displays a progress bar. The GroupDocsManager.listEntities method is called with a parameter indicating a way to the folder which files need to be returned. When files are loaded from the server, it cycles through files and folders and creates an appropriately formatted element for each. For folders the GroupDocsPlugin.showEntities method which recursively receives the hierarchy of files and folders is called again. If there\u0026rsquo;s a mistake, the StatusManager.err method is called and displays an error message. When all files are displayed in the block of files, the StatusManager.hideProgress method is called and the progress bar hidden. Event HandlersWhen the extension is up and running, it reacts to user actions at which event handlers are called: Logging In and Out When a user fills in a login form and clicks the button to enter, the GroupDocsPlugin.onAuthevent runs. In an event at first the progress bar is displayed, using the StatusManager.showProgress method. The entered appCID and appKey are checked using the GroupDocsManager.isCorrectCredentials method. If the entered data is correct, the GroupDocsPlugin.authSuccess method is called and retains the login credentials. The data input form is hidden and the main extension window displayed. If the entered data not true, an error message is shown. At the end of the login process, whether successful or not, the StatusManager.hideProgress method hides the progress bar. If a user clicks Logout, the GroupDocsPlugin.onLogout event handler removes the global appCID and appKey variables and displays a form for input of new values (a new login form). If a user clicks the user tabs in a extension window, the GroupDocsPlugin.onTabSwitch event runs to open the corresponding tab. Working with FilesTo work with files, a user selects a file and can then take a variety of actions. The following event handlers controls those actions: If the user clicks Show, the GroupDocsPlugin.onShowDocument event creates a preview frame for the chosen file. The frame is displayed in the corresponding tab.\nWhen a user clicks Download, the GroupDocsPlugin.onDownloadDocument event comes into play. This downloads the selected file using the GroupDocs API.\nWhen a user clicks Rename, the GroupDocsPlugin.onRenameDocument event runs. This event asks the user to enter a new name directly into an element with an old name. When the user enters a name, the GroupDocsManager.getDocumentMetadata method gets the renamed file\u0026rsquo;s ID and then uses the GroupDocsManager.renameFile method to rename the file on the server.\nIf a user clicks Find, the GroupDocsPlugin.findDocument event runs and finds the selected file in the list of files based on the entered GUID. If the files is found, it is automatically allocated in the list.\nIf a user clicks Copy, the GroupDocsPlugin.copyDocumentevent kicks in.\nFirst, a folder browser window is launched using the DirectoryChoicer.show method. To the okButtonClick property of the DirectoryChoicer component, the file selection method handler is applied. This handler is called when users selects a folder appointment and clicks OK. In this case the folder browser is hidden by means of the DirectoryChoicer.hide method and the progress bar - the StatusManager.showProgress method - is displayed. By means of the GroupDocsManager.getDocumentMetadata method, it received the file from the server. The file is then moved to the chosen folder using the GroupDocsManager.copyFile method. The progress bar is hidden. If there\u0026rsquo;s a problem, an error message is displayed. If the file is copied successfully, the GroupDocsPlugin.contentShowed method loads the changed hierarchy of files from the server and displays it. Clicking Move initializes similar code: the GroupDocsManager.moveFile method moves the file instead of copying it.\nClicking Delete initializes the GroupDocsPlugin.deleteDocumentevent.\nThe user is asked to confirm the deletion. If they do, the file is removed using the GroupDocsManager.deleteFile method. The progress bar is hidden and the process of loading and displaying a hierarchy of classes from the server starts. The GroupDocsPlugin.contentShowed method is used for this purpose. When a user clicks Embed, the GroupDocsPlugin.embedDocument event runs. This calls the EmbedDialog.show method, which displays a dialog for controlling and generating a frame for the chosen file.\nWhen a user clicks Upload, the GroupDocsPlugin.uploadDocumentevent runs to load a file onto the server.\nThe progress bar is displayed. The selected file is sent to the server by the GroupDocsManager.uploadFile method. When the file is sent, the progress bar disappears and the GroupDocsPlugin.contentShowed method updates the list of files. If the user clicks the Update button to refresh the list, the GroupDocsPlugin.refreshDocumentList method is called, resetting the list of files by means of the GroupDocsPlugin.contentShowed method.\nI won\u0026rsquo;t describe the other objects, as they very simple. Generally, they generate various HTML elements, using a JQuery library, then adds the generated element is into the general DOM model and displays it on screen.\nSummaryTo develop a Google Chrome extension: Develop the logic and code using HTML, CSS and JavaScript. Create the manifest file, complete with descriptions and resources. Test in Chrome. Package and publish. ","permalink":"https://blog.groupdocs.com/viewer/developing-extensions-for-google-chrome-groupdocs-viewer/","summary":"This article describes how Google Chrome extensions are structured. Also I\u0026rsquo;ll show you how to create one using the GroupDocs Viewer extension as an example.\nGoogle Chrome extensionsIn contrast to developing extensions for FireFox, writing extensions for Google Chrome is a rather simple task. Chrome extensions are archives that contain the manifest file, called manifest.json and other resource files. The manifest file describes a extension\u0026rsquo;s general information: any pages and scripts it uses, and permissions.","title":"Developing Extensions for Google Chrome - GroupDocs Viewer"},{"content":"Attention to all who still follow the traditional signing process! Now it’s high time to change to online signature process as it saves your time and effort. In addition, it’s a tribute to your ecosystem by going completely green via a paperless office. To speed up this process, GroupDocs has introduced its powerful online signature add-on for multiple platforms. By installing this online signature service add-on, you can embed documents as digital forms and then collect signatures online from within your webpages.\nGroupDocs introduced Signature add-ons for multiple CMSs\nOnline Signature Add-ons After embedding a digital form using the add-on, you can let the signers apply signature online simply using a browser. GroupDocs presently has online signature service add-ons for the following CMSs, with more add-ons in the pipeline:\nContao Magento Drupal WordPress GetSimple Concrete5 Textpattern Pligg Enano Knowledgetree ezPublish SugarCRM Moodle TinyMCE HTMLArea PimCore Plone Radiant Integrate GroupDocs\u0026rsquo; efficient online signature add-on with multiple CMSs\nOnline Signature Benefits GroupDocs Signature add-on lets you change the way you do business with your customers. Now just forget about contracts piling up in your office; simply use this efficient add-on to automate and streamline the whole signing process.\nSome of the benefits are listed below:\nCompletely automates the signing process. Never miss a signed contract: all signed documents are automatically archived and are accessible for future reference. Substitute paper chase with real-time notification and tracking. Get instant alerts as soon as the document is executed. Prepare your documents for online signature by adding fields to it\nGroupDocs’ online signature add-on lets you collect signatures online easily:\nFirst, upload a document in apps.groupdocs.com. Add fields to it, such as Signature field, Text field, Initials field, etc. Embed the document as digital form to your preferred website using GroupDocs Signature plugin. Share it with your customers to collect signatures online. All related parties are notified as soon as the signer executes the document. The signed documents are archived. Collect signatures online by embedding documents as digital forms\nSo why wait? Install this powerful online signature add-on to modify your office into a green, paperless one.\nYour support and feedback are important to us. Talk to us through our official feedback forum. Stay tuned for our blog and newsletter, which brings you all enhancements happening in GroupDocs.\n","permalink":"https://blog.groupdocs.com/signature/integration-of-groupdocs-efficient-online-signature-app-with-multiple-platforms/","summary":"Attention to all who still follow the traditional signing process! Now it’s high time to change to online signature process as it saves your time and effort. In addition, it’s a tribute to your ecosystem by going completely green via a paperless office. To speed up this process, GroupDocs has introduced its powerful online signature add-on for multiple platforms. By installing this online signature service add-on, you can embed documents as digital forms and then collect signatures online from within your webpages.","title":"Integration of Efficient Online Signature App with Multiple Platforms"},{"content":"This article explains the basics of using AppHarbor. In this article, I\u0026rsquo;ll use the .NET SDK Samples project to show how to deploy a .NET project on AppHarbor.\nRequirements .NET project App account GitHub Preparing First of all, we need a AppHarbor account. If you don\u0026rsquo;t have one yet, please create one. Registration on AppHarbor is similar to any other site: sign up from the AppHarbor home page by clicking the Sign up button. Ok now we have AppHarbor account and we are ready to deploy.\nClone the GroupDocs GitHub repository containing the .NET SDK. Create an empty folder anywhere on your local machine. Name it groupdocs-dotnet-samples. Go to the folder with the cloned repository and then to the examples folder. Here you can see some folders, one of them will be api-samples. Copy the content of the api-samplesfolder. [caption id=\u0026ldquo;attachment_1746\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;640\u0026rdquo; caption=\u0026ldquo;Copying content from the api-samples folder\u0026rdquo;]\r[/caption] Post the copied content to the empty folder created in step 2. Preparation is complete. If you can\u0026rsquo;t wait and want to see the example working, you can go straight to GroupDocs .NET API Samples and see our samples at work.\nDeploy to AppHarbor Login to AppHarbor. and go to Your Applications. [caption id=\u0026ldquo;attachment_1750\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;640\u0026rdquo; caption=\u0026ldquo;The Your Applications link\u0026rdquo;]\r[/caption]\nCreate a new application:\nEnter an application name. Choose United States or Europe. Click Create new. [caption id=\u0026ldquo;attachment_1753\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;640\u0026rdquo; caption=\u0026ldquo;Creating a new application\u0026rdquo;]\r[/caption] Open a console and cd to the folder that the project was copied to. It\u0026rsquo;s a groupdocs-dotnet-samples folder.\nEnter the command git init\nThen enter the command git add . (This adds all files.)\nEnter the command git commit -m \u0026ldquo;Initial commit\u0026rdquo; [caption id=\u0026ldquo;attachment_1757\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;640\u0026rdquo; caption=\u0026ldquo;The result of steps 3, 4, 5 and 6 in the console\u0026rdquo;]\r[/caption]\nGo to Your Applicationsin AppHarbor and click on you application. [caption id=\u0026ldquo;attachment_1766\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;640\u0026rdquo; caption=\u0026ldquo;Application panel\u0026rdquo;]\r[/caption]\nCopy the URL of your application. [caption id=\u0026ldquo;attachment_1770\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;544\u0026rdquo; caption=\u0026ldquo;Button for copying URL\u0026rdquo;]\r[/caption]\nReturn to the console and, as a final step, enter the command git push [URL of the api you copied] master**.** [caption id=\u0026ldquo;attachment_1773\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;640\u0026rdquo; caption=\u0026ldquo;Deploying to AppHarbor\u0026rdquo;]\r[/caption]\nRunning a Project on AppHarbour After these steps, our local project is deployed on AppHarbor. Lets go to AppHarbor and run the project. In Applications, we see the build status of the current commit. If it is Active, there is a link to run it. [caption id=\u0026ldquo;attachment_1778\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;640\u0026rdquo; caption=\u0026ldquo;Status of the current build and link to run API\u0026rdquo;]\r[/caption] That\u0026rsquo;s all, as easy as a piece of cake.\n","permalink":"https://blog.groupdocs.com/total/how-to-deploy-net-project-on-the-appharbor/","summary":"This article explains the basics of using AppHarbor. In this article, I\u0026rsquo;ll use the .NET SDK Samples project to show how to deploy a .NET project on AppHarbor.\nRequirements .NET project App account GitHub Preparing First of all, we need a AppHarbor account. If you don\u0026rsquo;t have one yet, please create one. Registration on AppHarbor is similar to any other site: sign up from the AppHarbor home page by clicking the Sign up button.","title":"How to Deploy .NET Project on the AppHarbor"},{"content":"Great news to contract management world! After the successful integration of GroupDocs Annotation and GroupDocs Viewer apps with multiple platforms, GroupDocs have now introduced its efficient contract management software plugin to multiple platforms. Now, no matter what CMS you use, you can integrate our contract management software plugin to your websites. [caption id=\u0026ldquo;attachment_1721\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;GroupDocs introduced its contract management software plugin for various CMSs\u0026rdquo;]\r[/caption] Once the plugin is installed, you can embed questionnaires and then collect data to automatically create new documents online. GroupDocs Assembly plugin lets you and your customers perform document assembly from within your webpages. GroupDocspresently introduced its document assembly plugin for the following CMSs, with more plugins are in the pipe line: Textpattern DotNetNuke SugarCRM eZPublish Pligg Plone GetSimple KnowledgeTree Radiant Umbraco Magento OpenCMS Magnolia Contao Pimcore Moodle [caption id=\u0026quot;\u0026quot; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Integrate GroupDocs\u0026rsquo; efficient contract management software plugin with multiple platforms\u0026rdquo;]\r[/caption] Document assembly is the method used to collect information and then create new, unique documents. It is usually used for contract management, for example, in legal letters, legal agreements, quotes, etc. The most common scenario would be for assembling documents where most of the information remains the same, but some details like name, address, date, start date or income, etc. differs from one person to another. GroupDocs Assembly plugin makes document assembly too simple:\nFirst, prepare a document template by adding merge field. Then create a questionnaire in apps.groupdocs.com. This questionnaire lets recipients enter data. Then embed the questionnaire to your preferred CMS using the questionnaire form ID. Finally, share it with your customers to collect responses. [caption id=\u0026quot;\u0026quot; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Use GroupDocs\u0026rsquo; contract management software plugin to embed questionnaires to your sites\u0026rdquo;]\r[/caption] As soon as the customer clicks the **Assembly **button after filling the questionnaire, the document gets assembled and a new, unique document is generated. Effortlessly perform document automation and document assembly to save your valuable time and effort. [caption id=\u0026ldquo;attachment_1725\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Perform document assembly from within your websites using GroupDocs\u0026rsquo; contract management software plugin\u0026rdquo;]\r[/caption] Download and install this efficient contract management software plugin to perform document automation and document assembly with ease. Stay tuned to get more information about Assembly plugin for each individual CMS. Your support and feedback are important for us. Talk to us through our official feedback forum or Live Chat support. Stay tuned for our blog and newsletter, which brings you all enhancements happening in GroupDocs.\n","permalink":"https://blog.groupdocs.com/assembly/integration-of-groupdocs-powerful-contract-management-software-with-multiple-platforms/","summary":"Great news to contract management world! After the successful integration of GroupDocs Annotation and GroupDocs Viewer apps with multiple platforms, GroupDocs have now introduced its efficient contract management software plugin to multiple platforms. Now, no matter what CMS you use, you can integrate our contract management software plugin to your websites. [caption id=\u0026ldquo;attachment_1721\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;GroupDocs introduced its contract management software plugin for various CMSs\u0026rdquo;]\r[/caption] Once the plugin is installed, you can embed questionnaires and then collect data to automatically create new documents online.","title":"Integration of GroupDocs’ Powerful Contract Management Software with Multiple Platforms"},{"content":"In the first article, How to use rspec to test GroupDocs API. Part 1, we created first test for GroupDocs API. This article describes in details how tests works, what expectation and matchers are, and how to test an API with the PULL method.\nExpectation and Matchers So what are expectation and matchers? Lets look at a small example:\nstring =\u0026#34;GroupDocs\u0026#34; string.should have(9).characters string.should\\_not have(5).characters Expectations are defined by should and the negative form should_not. Matchers are defined by have(9).characters and have(5).characters. I should also mention that spec (specification) is a description of how some part of your application should work (in our case, one of the GroupDocs API methods). Lets take the get_user_profile_spec.rb file that we created in the last article and describe what that code is doing.\nrequire \u0026#39;spec\\_helper\u0026#39; describe \u0026#39;User\u0026#39; do describe \u0026#39;GetUserProfile\u0026#39; do include\\_context :api\\_tests let(:request) do GroupDocs::Api::Request.new method: \u0026#39;GET\u0026#39;, path: \u0026#39;/mgmt/{{client\\_id}}/profile\u0026#39; end it \u0026#39;returns not empty user hash\u0026#39; do response\\[:user\\].should\\_not be\\_empty end it \u0026#39;returns user identifier\u0026#39; do response\\[:user\\]\\[:id\\].should be\\_a(Fixnum) end it \u0026#39;returns user primary email\u0026#39; do response\\[:user\\]\\[:primary\\_email\\].should == \u0026#34;\u0026#34; # your primary email here end it \u0026#39;returns user private key\u0026#39; do response\\[:user\\]\\[:pkey\\].should == \u0026#34;\u0026#34; # your private key here end end end We use require \u0026lsquo;spec_helper\u0026rsquo; to include some configuration and helper functions. The describe method creates a group. This method could be nested with others like in the code: we\u0026rsquo;re testing the GetUserProfile method, a part of User API. Sometimes you\u0026rsquo;ll see the context method. This is just an alias for describe. The two methods have no functional difference, instead the difference is contextual to make tests more understandable.\nExample of simple Group Create a file called sample_spec.rb with the following code:\ndescribe \u0026#34;something\u0026#34; do it \u0026#34;does something\u0026#34; do end end Run the following command in a console: rspec sample_spec.rb -fn You\u0026rsquo;ll get something like this: Different Types of Matchers Now lets find what kinds of matchers there are. In the get_user_profile_spec.rb, when we test a response from the server we use a separate it block for each parameter we want to check. We use only 3 of all possible matchers: be_empty, be_a(), == . For your tests you can use: Test validity and existance:\nbe\\_true - check is true (not nil or false) be\\_false - check is false (nil or false) be\\_nil - check is nil Test error raising:\nexpect { ... }.to raise\\_error expect { ... }.to raise\\_error(ErrorClass) expect { ... }.to raise\\_error(\u0026#34;message\u0026#34;) expect { ... }.to raise\\_error(ErrorClass, \u0026#34;message\u0026#34;) There are a lot of other built-in matchers in rspec. You can find a full list online. If you need some special functionality you can create you own matchers.\nAdding a Test Now lets add one more test for the UpdateUserProfile API method. We will use the PUT method and json file for parameters. In the user folder, create a file called update_user_profile_spec.rb with the following content:\nrequire \u0026#39;spec\\_helper\u0026#39; describe \u0026#39;User\u0026#39; do describe \u0026#39;UpdateUserProfile\u0026#39; do include\\_context :api\\_tests let(:payload) { payload\\_file(:update\\_user\\_profile) } let(:request) do GroupDocs::Api::Request.new method: \u0026#39;PUT\u0026#39;, path: \u0026#34;/mgmt/#{payload\\[:guid\\]}/profile\u0026#34;, request\\_body: payload end it \u0026#39;returns response array\u0026#39; do response.should\\_not be\\_empty end end end payload_file Here we use one new function, payload_file. We need to add it to our spec_helper.rb file where it will look like this:\nrequire \u0026#39;groupdocs\u0026#39; require \u0026#39;json\u0026#39; # # Parses payload JSON file. # # @param \\[String\\] filename # @return \\[Hash\\] # def payload\\_file(filename) file = File.read(\u0026#34;#{File.dirname(\\_\\_FILE\\_\\_)}/../payload/#{filename}.json\u0026#34;) JSON.parse(file, symbolize\\_names: true) end RSpec.configure do |spec| # configure API access GroupDocs.configure do |groupdocs| groupdocs.api\\_server = \u0026#34;https://api.groupdocs.com\u0026#34; groupdocs.api\\_version = \u0026#34;2.0\u0026#34; groupdocs.client\\_id = \u0026#39;\u0026#39; groupdocs.private\\_key = \u0026#39;\u0026#39; end # share API tests methods spec.shared\\_context :api\\_tests do let(:response) do |spec| response = request.execute! end end end update_user_profile.json Now all we need to do, is create a update_user_profile.json file in the paylod directory (/groupdocs_tests/paylod/update_user_profile.json):\n{ \u0026#34;nickname\u0026#34;: \u0026#34;someemail@groupdocs.com\u0026#34;, \u0026#34;firstname\u0026#34;: \u0026#34;firstname\u0026#34;, \u0026#34;lastname\u0026#34;: \u0026#34;lastname\u0026#34;, \u0026#34;pswd\\_salt\u0026#34;: \u0026#34;XWeSDIKH4vDc0StcdNhGCg==\u0026#34;, \u0026#34;signedupOn\u0026#34;: 1358920966590, \u0026#34;signedinOn\u0026#34;: 1358920786590, \u0026#34;signin\\_count\u0026#34;: 1, \u0026#34;roles\u0026#34;: \\[ { \u0026#34;id\u0026#34;: 2, \u0026#34;name\u0026#34;: \u0026#34;Admin\u0026#34; } \\], \u0026#34;id\u0026#34;: 452, \u0026#34;guid\u0026#34;: \u0026#34;6dac05617fbfwer\u0026#34;, \u0026#34;primary\\_email\u0026#34;: \u0026#34;someemail@groupdocs.com\u0026#34; } You need to provide your own parameters in the update_user_profile.json file. Now just enter this command in a terminal:\nbundle exec rspec spec/user/update\\_user\\_profile\\_spec.rb ","permalink":"https://blog.groupdocs.com/total/how-to-use-rspec-to-test-groupdocs-api-part-2/","summary":"In the first article, How to use rspec to test GroupDocs API. Part 1, we created first test for GroupDocs API. This article describes in details how tests works, what expectation and matchers are, and how to test an API with the PULL method.\nExpectation and Matchers So what are expectation and matchers? Lets look at a small example:\nstring =\u0026#34;GroupDocs\u0026#34; string.should have(9).characters string.should\\_not have(5).characters Expectations are defined by should and the negative form should_not.","title":"How to use rspec to test GroupDocs API - Part 2"},{"content":"In this article, we will review how to use Ruby RSpec for testing REST APIs like GroupDocs. RSpec is a BDD (behavior driven development) framework. You can find more info about RSpec on its official site. There are a lot of different GroupDocs APIs that you can use. In this article we will test one of the User APIs: \u0026ldquo;Get user profile\u0026rdquo;.\nWhat You Need You need Ruby, Gem, Bundler, and RSpec (gem install rspec) installed on you computer. You also need a GroupDocs account and private and client keys. Find out how to get GroupDocs API keys.\nGetting Started First of all, create a folder for future tests (for example groupdocs_tests) and create file with the name Gemfile with the following content:\nsource \u0026#39;https://rubygems.org\u0026#39; gem \u0026#39;rake\u0026#39; gem \u0026#39;rspec\u0026#39; gem \u0026#39;ci\\_reporter\u0026#39; gem \u0026#39;groupdocs\u0026#39; Here we define all gems that we will need for API testing. The first line defines the source for gems. Then, we list the gems we\u0026rsquo;re using:\ngem \u0026lsquo;rake\u0026rsquo; - a build tool for Ruby. gem \u0026lsquo;rspec\u0026rsquo; - a BDD testing framework. gem \u0026lsquo;ci_reporter\u0026rsquo; - an add-on to Test::Unit and RSpec that allows you to generate XML reports of your test and/or spec runs. gem \u0026lsquo;groupdocs\u0026rsquo; - the GroupDocs Ruby SDK. After adding the Gemfile file, you need to use the bundle and install all required gems. We will install gems locally by commands in a terminal. Make sure that you are in the groupdocs_tests directory:\nbundle install --path vendor/bundle Creating Test Folders Now we will create additional folders for our test:\nIn the test\u0026rsquo;s root directory (groupdocs_tests), create a spec folder. All Ruby project tests should be in the spec folder. In the spec folder, create a user folder. As we will test the User API we will put all our User test in this folder Writing the Code Now let\u0026rsquo;s write some Ruby code.\nCreate a spec_helper.rb file in the spec/ folder. We will use this file to configure the GroupDocs SDK and for some helpers. Create a get_user_profile_spec.rb file in the user/ folder. Specs files name should ends with the \u0026ldquo;_spec\u0026rdquo; suffix. \u0026ldquo;get_user_profile\u0026rdquo; is the name of the API that we will test. /groupdocs_tests/spec/spec_helper.rb content require \u0026#39;groupdocs\u0026#39; RSpec.configure do |spec| # configure API access GroupDocs.configure do |groupdocs| groupdocs.api\\_server = \u0026#34;https://api.groupdocs.com\u0026#34; groupdocs.api\\_version = \u0026#34;2.0\u0026#34; groupdocs.client\\_id = \u0026#39;\u0026#39; #your Client ID here groupdocs.private\\_key = \u0026#39;\u0026#39; #your Private Key here end # share API tests methods spec.shared\\_context :api\\_tests do let(:response) do |spec| response = request.execute! end end end /groupdocs_tests/spec/user/get_user_profile_spec.rb content require \u0026#39;spec\\_helper\u0026#39; describe \u0026#39;User\u0026#39; do describe \u0026#39;GetUserProfile\u0026#39; do include\\_context :api\\_tests let(:request) do GroupDocs::Api::Request.new method: \u0026#39;GET\u0026#39;, path: \u0026#39;/mgmt/{{client\\_id}}/profile\u0026#39; end it \u0026#39;returns not empty user hash\u0026#39; do response\\[:user\\].should\\_not be\\_empty end it \u0026#39;returns user identifier\u0026#39; do response\\[:user\\]\\[:id\\].should be\\_a(Fixnum) end it \u0026#39;returns user primary email\u0026#39; do response\\[:user\\]\\[:primary\\_email\\].should == \u0026#34;\u0026#34; # your primary email here end it \u0026#39;returns user private key\u0026#39; do response\\[:user\\]\\[:pkey\\].should == \u0026#34;\u0026#34; # your private key here end end end Enter your keys and email where it needed. That\u0026rsquo;s all you need to do.\nRunning the Test Make sure that your test work fine, in terminal:\nrspec spec/user/get\\_user\\_profile\\_spec.rb If everything is fine, you will see something like this: Coming Up In the next part, we will see how to test an API with the \u0026ldquo;POST\u0026rdquo; and \u0026ldquo;PUT\u0026rdquo; methods:\nWhat is expectation (should and should_not) and how do we use them? What is matchers and how do we use them? ","permalink":"https://blog.groupdocs.com/total/how-to-use-rspec-to-test-groupdocs-api-part-1/","summary":"In this article, we will review how to use Ruby RSpec for testing REST APIs like GroupDocs. RSpec is a BDD (behavior driven development) framework. You can find more info about RSpec on its official site. There are a lot of different GroupDocs APIs that you can use. In this article we will test one of the User APIs: \u0026ldquo;Get user profile\u0026rdquo;.\nWhat You Need You need Ruby, Gem, Bundler, and RSpec (gem install rspec) installed on you computer.","title":"How to Use RSpec to Test GroupDocs API? - Part 1"},{"content":"This article explains the basics of using PHP SDK classes and methods. In this article I\u0026rsquo;ll use the Comparison API and show how to compare two documents from a GroupDocs account. Find information about others methods in the Swagger explorer.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version) FatFree framework (https://github.com/bcosca/fatfree) Initial Installations Learn how to install the Fatfree framework from their Readme: https://github.com/bcosca/fatfree\nCopy all src folders to the web root folder.\nConfigure composer.jsonto use the required PHP SDK version.\nTo download the required version of PHP SDK with the composer, set this setting to composer.json:\n{ \u0026#34;require\u0026#34;: { \u0026#34;groupdocs/groupdocs-php\u0026#34;: \u0026#34;v1.2.4\u0026#34; } } Open a console, cd to the web root folder and run this command:\nphp composer.phar install (This downloads the GroupDocs PHP SDK into vendor folder and creates autoload.php).\nRestart Apache.\nCreating the Sample Earlier I wrote about how to configure a sample development environment in the article Implementation of Comparison API sample with GroupDocs PHP SDK. Today let\u0026rsquo;s discuss a very useful function: file convertion. That way, I won\u0026rsquo;t hold up an explanation of structure of the project and other general moments. You probably think that file conversion is very difficult and that you must write a tonne of code, and study a lot of documentation about file formats and how to convert them. Luckily, you are wrong: everything is already done by the GroupDocs team. Everything you need to do is just create a form for entering a couple parameters and a few lines of code to take the parameters from the form and transfer them to the Convert method. Let\u0026rsquo;s look at the part of the sample that will be seen by the user, the form. The screenshot shows how many fields and what data we need. The Client ID and Private Key comes from the GroupDocs account, the file GUID from user storage in GroupDocs. Then chose which type to convert the document to from the list. To make this form, create a .htm file in the \u0026ldquo;templates\u0026rdquo; folder in the root folder of the project. Last time we called it Sample1 so lets call the new sample Sample2 Here is code of that file:\n\u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta http-equiv=\u0026#34;Content-Type\u0026#34; content=\u0026#34;text/html; charset=UTF-8\u0026#34;/\u0026gt; \u0026lt;title\u0026gt;Powered by {{ @VERSION }}\u0026lt;/title\u0026gt; \u0026lt;style type=\u0026#34;text/css\u0026#34;\u0026gt; {{ Web::minify(\u0026#39;templates/\u0026#39;,array(\u0026#39;style.css\u0026#39;),FALSE) }} \u0026lt;/style\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;h3 style=\u0026#34;text-align:center;\u0026#34;\u0026gt;\u0026lt;a href=\u0026#34;/index.php\u0026#34;\u0026gt;GroupDocs PHP SDK Samples\u0026lt;/a\u0026gt; - Sample2\u0026lt;/h3\u0026gt; \u0026lt;div class=\u0026#39;samplecontent\u0026#39; style=\u0026#34;padding:10px;\u0026#34;\u0026gt; \u0026lt;i\u0026gt;This sample will show how to convert Doc to Docx, Docx to Doc, Docx to PDF and PPT to PDF using PHP SDK\u0026lt;/i\u0026gt; \u0026lt;br/\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;font color=\u0026#34;green\u0026#34;\u0026gt;You entered: \u0026lt;/font\u0026gt; ClientID = {{@userId}} Private Key = {{@privateKey}} File Id = {{@fileId}} Convert type = {{@convert\\_type}} \u0026lt;br /\u0026gt; \u0026lt;font color=\u0026#34;red\u0026#34;\u0026gt;{{@error}}\u0026lt;/font\u0026gt; \u0026lt;div id=\u0026#34;requestForm\u0026#34; style=\u0026#34;padding:20px; border:1px solid black;\u0026#34;\u0026gt; Enter data for request and press \u0026#34;Make request\u0026#34; button \u0026lt;form action=\u0026#34;/sample2\u0026#34; method = \u0026#34;post\u0026#34; enctype = \u0026#39;multipart/form-data\u0026#39;\u0026gt; \u0026lt;label for=\u0026#39;client\\_id\u0026#39;\u0026gt;GroupDocs Client ID\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;client\\_id\u0026#39; value=\u0026#34;{{@userId}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;private\\_key\u0026#39;\u0026gt;GroupDocs Private Key\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;private\\_key\u0026#39; value=\u0026#34;{{@privateKey}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;label for=\u0026#39;fileId\u0026#39;\u0026gt;FileID\u0026lt;/label\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;text\u0026#39;, name=\u0026#39;fileId\u0026#39; value=\u0026#34;{{@fileId}}\u0026#34; /\u0026gt; \u0026lt;br /\u0026gt; \u0026lt;input type=\u0026#39;submit\u0026#39; value=\u0026#39;Make Request\u0026#39;/\u0026gt; \u0026lt;select name=\u0026#34;convert\\_type\u0026#34; id=\u0026#34;convert\\_type\u0026#34;\u0026gt; \u0026lt;option value=\u0026#34;doc\u0026#34;\u0026gt;Doc\u0026lt;/option\u0026gt; \u0026lt;option value=\u0026#34;pdf\u0026#34;\u0026gt;PDF\u0026lt;/option\u0026gt; \u0026lt;option value=\u0026#34;docx\u0026#34;\u0026gt;Docx\u0026lt;/option\u0026gt; \u0026lt;option value=\u0026#34;ppt\u0026#34;\u0026gt;PPT\u0026lt;/option\u0026gt; \u0026lt;/select\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div style=\u0026#34;padding:20px; border:1px solid black;\u0026#34;\u0026gt; Results: {{ @iframe }} \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; As you can see, this code is almost the same as in the previous sample. It differs only on that that here we have only one field for file GUID and we don\u0026rsquo;t have field for callback URL. Instead, we have a drop-down list with file types. If you need detailed description for the template file you can find it in the previous article. So lets take a look at a more interest part, at the controller were we have all the magic. Create a .php file in the inc_samples with same as the template file - \u0026ldquo;sample2\u0026rdquo;. Here the code of that file:\nIn the code you\u0026rsquo;ll find comments for each line of code and like the template file, the Controller is very similar to the previous sample. OK let\u0026rsquo;s look at key moments:\nHere is a declaration of main variables and getting entered data from the form:\nF3::set(\u0026#39;userId\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;privateKey\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;fileId\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;convert\\_type\u0026#39;, \u0026#39;\u0026#39;); $clientId = F3::get(\u0026#39;POST\\[\u0026#34;client\\_id\u0026#34;\\]\u0026#39;); $privateKey = F3::get(\u0026#39;POST\\[\u0026#34;private\\_key\u0026#34;\\]\u0026#39;); $fileId = F3::get(\u0026#39;POST\\[\u0026#34;fileId\u0026#34;\\]\u0026#39;); $convert\\_type = F3::get(\u0026#39;POST\\[\u0026#34;convert\\_type\u0026#34;\\]\u0026#39;); After we get the entered data, we need to create an Async Api object so we can make request to the GroupDocs API. To create this object, we must create a GroupDocsRequestSigner object and transfer the Private Key to it. Then, that we must take this object and transfer it to the ApiClient object. The code for that looks like this:\n$signer = new GroupDocsRequestSigner($privateKey); //Create apiClient object $apiClient = new APIClient($signer); //Create AsyncApi object $api = new AsyncApi($apiClient); And here is the moment of conversion. To convert the file, we need to take the AsyncApi and use its Convertmethod with the data provided via the form:\n$convert = $api-\u0026gt;Convert($clientId, $fileId, $convert\\_type, null, null, null, null, null) As you can see, conversion is a one code line operation - all the dirty work has already done by GroupDocs team. After we convert the file, we\u0026rsquo;ll check the conversion results and obtaining conversion result info such as job_id and request status. But we can\u0026rsquo;t receive the new converted file GUID, name and so on at once. To obtain these data, we need to take the received job_id and transfer it to the GetJobDocuments method of our AsyncApi object. This method returns all the info we want. In this sample we generate an iframe which will show the converted file. For that reason we need the new file\u0026rsquo;s GUID. The code looks like so:\nif($convert-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //Delay necessary that the inquiry would manage to be processed sleep(5); //Make request to api for get document info by job id $jobInfo = $api-\u0026gt;GetJobDocuments($clientId, $convert-\u0026gt;result-\u0026gt;job\\_id); //Get file guid $guid = $jobInfo-\u0026gt;result-\u0026gt;inputs\\[0\\]-\u0026gt;outputs\\[0\\]-\u0026gt;guid; //Generating iframe $iframe = \u0026#39;\u0026lt;iframe src=\u0026#34;https://apps.groupdocs.com/document-viewer/embed/\u0026#39; . $guid . \u0026#39;\u0026#34; frameborder=\u0026#34;0\u0026#34; width=\u0026#34;100%\u0026#34; height=\u0026#34;600\u0026#34;\u0026gt;\u0026lt;/iframe\u0026gt;\u0026#39;; } //If request was successfull - set url variable for template return F3::set(\u0026#39;iframe\u0026#39;, $iframe); Lastly, we only need to transfer data which we want to show to the template:\nF3::set(\u0026#39;userId\u0026#39;, $clientId); F3::set(\u0026#39;privateKey\u0026#39;, $privateKey); F3::set(\u0026#39;fileId\u0026#39;, $fileId); F3::set(\u0026#39;convert\\_type\u0026#39;, $convert\\_type); // Process template echo Template::serve(\u0026#39;sample2.htm\u0026#39;); ","permalink":"https://blog.groupdocs.com/conversion/how-to-convert-files-with-groupdocs-php-sdk/","summary":"This article explains the basics of using PHP SDK classes and methods. In this article I\u0026rsquo;ll use the Comparison API and show how to compare two documents from a GroupDocs account. Find information about others methods in the Swagger explorer.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version) FatFree framework (https://github.com/bcosca/fatfree) Initial Installations Learn how to install the Fatfree framework from their Readme: https://github.","title":"How to Convert Files with GroupDocs PHP SDK"},{"content":"It\u0026rsquo;s difficult to find different document management solutions in one place for your diverse needs. You might spend your dime for separate stand-alone apps to fulfill your requirements. On the contrary, we, in GroupDocs, offer different document management apps as a suite to satisfy all your needs. [caption id=\u0026ldquo;attachment_1591\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Manage your documents efficiently with GroupDocs\u0026rsquo; document management apps suite\u0026rdquo;]![Manage your documents efficiently with GroupDocs\u0026rsquo; document management apps suite] \u0026ldquo;Manage your documents efficiently with GroupDocs\u0026rsquo; document management apps suite\u0026rdquo;)[/caption] GroupDocs offer six powerful apps to efficiently manage your documents. Since you get all these apps as a pack, you can easily manipulate your documents as required. The scenarios differ with customer requirements. You can use a combo of our apps to address your specific requirements. Today, I\u0026rsquo;ll discuss about a special scenario. Let\u0026rsquo;s take an educational institution for example. Nowadays, everything is being digitalized, for instance, exams, home works, assignments, result sharing and so on. Suppose you\u0026rsquo;re a teacher. You\u0026rsquo;ll have different assignments, tests, home works, etc. for your students from time to time. The conventional methods are outdated, difficult to track and tedious to store \u0026amp; maintain. So, it\u0026rsquo;s high time to change to a dependable, innovative solution that saves time and effort. [caption id=\u0026ldquo;attachment_1572\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Document management is now too simple using our efficient apps\u0026rdquo;]\r[/caption] Now I\u0026rsquo;ll tell you how GroupDocs can help you solve these issues. Let\u0026rsquo;s discuss a common scenario where GroupDocs comes in handy. If you need to assign online tests to your students and collect responses, GroupDocs Assembly is the right choice. GroupDocs Assembly lets you and your students perform document automation and document assembly easily. The process is really simple:\nCreate a document template with merge fields Prepare a questionnaire with all types of questions (as required), for example, single choice, multiple choice, detailed answers, etc. Share it with your students to collect answers. The students answer the questionnaire and perform document assembly to create a new, unique document. All related parties are notified as soon as the document is assembled. You can then review these assembled documents and publish the results. To review the document, you can make use of GroupDocs\u0026rsquo; efficient online annotation software. Annotate or collaborate on the assembled documents to review it in real time. Once the review is over, you can upload the results using our efficient online document viewer. GroupDocs Viewer lets you upload the results online and share it with your students. The students can then download or print their result as required. Since GroupDocs Viewer supports all types of common as well as business file formats, you can use it as a PDF viewer, a Word viewer, or an Excel viewer, amongst many other things. In short, we\u0026rsquo;ve seen how our efficient document management apps suite can be used to perform document automation, document assembly, document annotation, and document viewing. There are other scenarios where we use some other GroupDocs apps as a combo pack to satisfy specific requirements. We\u0026rsquo;ll get back to you with more of such scenarios in the coming weeks\u0026hellip;stay tuned! We also prepared a series of posts to help you get started with GroupDocs. One of them will show you how to upload a document to GroupDocs, be sure to check it out! Why wait? Register with GroupDocs and feel the difference!\n","permalink":"https://blog.groupdocs.com/viewer/manage-your-documents-efficiently-with-groupdocs-document-management-apps-suite/","summary":"It\u0026rsquo;s difficult to find different document management solutions in one place for your diverse needs. You might spend your dime for separate stand-alone apps to fulfill your requirements. On the contrary, we, in GroupDocs, offer different document management apps as a suite to satisfy all your needs. [caption id=\u0026ldquo;attachment_1591\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Manage your documents efficiently with GroupDocs\u0026rsquo; document management apps suite\u0026rdquo;]![Manage your documents efficiently with GroupDocs\u0026rsquo; document management apps suite] \u0026ldquo;Manage your documents efficiently with GroupDocs\u0026rsquo; document management apps suite\u0026rdquo;)[/caption] GroupDocs offer six powerful apps to efficiently manage your documents.","title":"Manage Your Documents Efficiently with GroupDocs' Document Management Apps Suite"},{"content":"GroupDocs supports all major platforms, such as .NET, PHP, Java, Python, etc. So with GropDocs\u0026rsquo; SDKs you can easily create your own application to store, view, sign (and use a lot of other great features on) your documents online, using Windows or Linux with your favorite language. Today, I\u0026rsquo;ll talk about GroupDocs PHP SDK and how to get started with it. Sometimes, developers ask us how to get our PHP SDK, how to use it with Composer, or how to include it into their project. As we all know, a good beginning is a half the job. So this is how to start developing with the PHP SDK more quickly and efficiently.\nGetting and Using the SDK There are different ways to get PHP SDK. I\u0026rsquo;ll show how to get it and then include it into a PHP application.\nManual Download from GitHub Clone our PHP SDK repo from GitHub (repository is here: https://github.com/groupdocs/groupdocs-php). Copy all files from the src folder (or the entire src folder with files) into the project. Include our main API file:require_once _DIR_.\u0026rsquo;/src/APIClient.php'; After this you can use classes. Code sample:\n\u0026lt;?php require\\_once \\_\\_DIR\\_\\_.\u0026#39;/src/APIClient.php\u0026#39;; $signer = new GroupDocsRequestSigner(12345); $apiClient = new APIClient($signer); echo var\\_dump($signer); echo var\\_dump($apiClient); Getting GroupDocs PHP SDK with Composer and using its Autoloader Composer is a great tool that helps you get and use PHP libraries easily. There is only one issue for developers that are not familiar with Composer: how to get and use it. But it\u0026rsquo;s very easy! There are tons of information about this on the Internet, so I\u0026rsquo;ll provide a sample for Linux users that shows how to:\nGet Composer, download GroupDocs PHP SDK with it, and, finally, use the autoloader generated by Composer. Downloading Composer and GroupDocs PHP SDK For example, to download Composer and the PHP SDK into the sdktest folder in the user\u0026rsquo;s folder (~):\ncd ~\nmkdir sdktest\ncd sdktest\ncurl -s http://getcomposer.org/installer | php\ngedit composer.json (This create the composer.json file, you should use your editor: vi for example.)\nSource for composer.json file:\n{ \u0026#34;require\u0026#34;: { \u0026#34;groupdocs/groupdocs-php\u0026#34;: \u0026#34;dev-master\u0026#34; } } php composer.phar install Composer downloads the last version of the GroupDocs PHP SDK and (very important!) creates an autoloader. You can find it in the vendor folder.\nCopy all the files in the vendor folder (or the folder itself) and include the autoload.php file into your web app script. (For example: require_once_DIR_.\u0026rsquo;/vendor/autoload.php\u0026rsquo;;).\nAfter this, all methods and classes are available to your script. Some frameworks can work with Composer and its autoloader and include it automatically. So now you know how to get GroupDocs PHP SDK and are ready to start coding your own web oriented Document Management solution with GroupDocs PHP SDK. Thanks for reading our Tech Blog.\n","permalink":"https://blog.groupdocs.com/total/how-to-use-groupdocs-php-sdk-with-composer-or-a-built-in-autoloader/","summary":"GroupDocs supports all major platforms, such as .NET, PHP, Java, Python, etc. So with GropDocs\u0026rsquo; SDKs you can easily create your own application to store, view, sign (and use a lot of other great features on) your documents online, using Windows or Linux with your favorite language. Today, I\u0026rsquo;ll talk about GroupDocs PHP SDK and how to get started with it. Sometimes, developers ask us how to get our PHP SDK, how to use it with Composer, or how to include it into their project.","title":"How to Use GroupDocs PHP SDK with Composer or a Built-in Autoloader"},{"content":"This article explains the basics of using PHP SDK classes and methods. In this article I\u0026rsquo;ll use the Comparison API and show how to compare two documents from a GroupDocs account. Find information about others methods in the Swagger explorer.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version) FatFree framework (https://github.com/bcosca/fatfree) Initial Installations Learn how to install the Fatfree framework from their Readme: https://github.com/bcosca/fatfree\nCopy all src folders to the web root folder.\nConfigure composer.jsonto use the required PHP SDK version.\nTo download the required version of PHP SDK with the composer, set this setting to composer.json:\n{ \u0026#34;require\u0026#34;: { \u0026#34;groupdocs/groupdocs-php\u0026#34;: \u0026#34;v1.2.4\u0026#34; } } Open a console, cd to the web root folder and run this command:\nphp composer.phar install (This downloads the GroupDocs PHP SDK into vendor folder and creates autoload.php).\nRestart Apache.\nLet\u0026rsquo;s Start Developing Create .htaccess and index.php files Create a .htaccessfile and enter this code:\nRewriteEngine On RewriteCond %{REQUEST\\_FILENAME} !-l RewriteCond %{REQUEST\\_FILENAME} !-f RewriteCond %{REQUEST\\_FILENAME} !-d RewriteRule .\\* index.php \\[L,QSA\\] Header Unset ETag FileETag none ExpiresActive On ExpiresDefault A604800 This code declare initials settings for project.\nCreate a index.phpfile in the root folder.This file does show anything in the browser but is very important for the work to come. The index.php file is responsible for data transmission between a template and the controller. It also includes the FatFree engine, PHP SDK, templates and controllers. In it, you describe which template depends on what controller. For example, F3::route(\u0026lsquo;GET|POST /comparison\u0026rsquo;,\u0026lsquo;comparison.php\u0026rsquo;); means that the template comparison sends data to comparison.php, a file that processes received data and returns results to the template. (We will create this file later.) Below is the full code of Index.php\n\u0026lt;?php require\\_once \\_\\_DIR\\_\\_.\u0026#39;/FatFree\\_Framework/lib/base.php\u0026#39;; require\\_once \\_\\_DIR\\_\\_.\u0026#39;/vendor/autoload.php\u0026#39;; F3::set(\u0026#39;CACHE\u0026#39;,FALSE); F3::set(\u0026#39;DEBUG\u0026#39;,1); F3::set(\u0026#39;UI\u0026#39;,\u0026#39;templates/\u0026#39;); F3::set(\u0026#39;IMPORTS\u0026#39;,\u0026#39;inc\\_samples/\u0026#39;); F3::route(\u0026#39;GET /\u0026#39;,\u0026#39;home\u0026#39;); F3::route(\u0026#39;GET /index.php\u0026#39;,\u0026#39;home\u0026#39;); F3::route(\u0026#39;GET|POST /sample01\u0026#39;,\u0026#39;sample01.php\u0026#39;); F3::route(\u0026#39;GET|POST /sample02\u0026#39;,\u0026#39;sample02.php\u0026#39;); function home() { echo Template::serve(\u0026#39;index.htm\u0026#39;); } F3::run(); ``` #### Understanding index.php require_once __DIR__.\u0026rsquo;/FatFree_Framework/lib/base.php\u0026rsquo;; // include fatfree libs require_once __DIR__.\u0026rsquo;/vendor/autoload.php\u0026rsquo;; // include PHP SDK F3::set(\u0026lsquo;CACHE\u0026rsquo;,FALSE); // set Cache to false F3::set(\u0026lsquo;DEBUG\u0026rsquo;,1); // set Debug to 1 F3::set(\u0026lsquo;UI\u0026rsquo;,\u0026rsquo;templates/\u0026rsquo;); // include folder with templates F3::set(\u0026lsquo;IMPORTS\u0026rsquo;,\u0026lsquo;inc_samples/\u0026rsquo;); // include folder with controllers\nThe next block declares routes for template file and controller. F3::route(\u0026lsquo;GET /\u0026rsquo;,\u0026lsquo;home\u0026rsquo;); F3::route(\u0026lsquo;GET /index.php\u0026rsquo;,\u0026lsquo;home\u0026rsquo;); F3::route(\u0026lsquo;GET|POST /sample01\u0026rsquo;,\u0026lsquo;sample01.php\u0026rsquo;); F3::route(\u0026lsquo;GET|POST /callbacks/signature_callback\u0026rsquo;,\u0026lsquo;signature_callback.php\u0026rsquo;);\nThe last block contains a function that gets the **index.htm** file from the templetes folder and displays it when you go to a home page. Also, the F3::run() line starts the FatFree framework. function home() { echo Template::serve(\u0026lsquo;index.htm\u0026rsquo;); } F3::run();\n### Create the Comparison We have routes (**index.php**) so all that remains is to create template and controller files with the same name as declared in **index.php**. In the template file, we will create a form that takes user input and shows the results of a comparison. In the controller, we get data entered by the user, and transfer it for processing. 1. Create two folders in the root folder: \u0026#34;templates\u0026#34; and \u0026#34;inc\\_samples\u0026#34;. 2. In the \u0026#34;templates\u0026#34; folder create the **sample01.htm** file and enter the code below. ``` \u0026lt;\\\\!DOCTYPE html\u0026gt; ``` ### [GroupDocs PHP SDK Samples](/index.php) - Sample19 _This sample will show how to Compare documents using PHP SDK_ You entered: ClientID = {{@userId}} PrivateKey = {{@privateKey}} Source file Id = {{@sourceFileId}} Target file Id = {{@targetFileId}} Call back url = {{@callbackURL}} {{@error}} Enter data for request and press \u0026#34;Make request\u0026#34; button GroupDocs ClientID GroupDocs PrivateKey sourceFileId targetFileId callbackUrl Results: {{@iframe}} #### Understanding sample01.htm This block declares the page styles, title and language: This block shows data entered by the user: {{@variable name}} is syntax for transferring a variable from the controller to a template. You entered:\nClientID = {{@userId}}\nPrivateKey = {{@privateKey}}\nSource file Id = {{@sourceFileId}}\nTarget file Id = {{@targetFileId}}\nCall back url = {{@callbackURL}}\nThis code creates a form with inputs. In the form Action we assign a controller name which we declare in the routes (don\u0026#39;t worry: we will create the controller file later). {{@error}} Enter data for request and press \u0026#34;Make request\u0026#34; button GroupDocs ClientID GroupDocs PrivateKey sourceFileId targetFileId callbackUrl And it\u0026#39;s time to show results. The result of the work is written down by the controler in a variable: {{@iframe}} div style=\u0026ldquo;padding:20px; border:1px solid black;\u0026quot;\u0026gt;\nResults:\n{{@iframe}}\nWe\u0026#39;re finished with the template file and have a form and results. ### Creating a Controller Let\u0026#39;s create a controler which gets the entered data, creates all objects and makes a request from the Comparison API. 1. In the inc\\_sample folder, create a **sample01.php**file containing the code below. ``` \u0026lt;?php //\u0026lt;i\u0026gt;This sample will show how to use \u0026lt;b\u0026gt;Compare\u0026lt;/b\u0026gt; method from ComparisonApi to return a URL representing a single page of a Document\u0026lt;/i\u0026gt; //###Set variables and get POST data F3::set(\u0026#39;userId\u0026#39;, \u0026#39;\u0026#39;); F3::set(\u0026#39;privateKey\u0026#39;, \u0026#39;\u0026#39;); f3::set(\u0026#39;result\u0026#39;, \u0026#34;\u0026#34;); $clientId = F3::get(\u0026#39;POST\\[\u0026#34;client\\_id\u0026#34;\\]\u0026#39;); $privateKey = F3::get(\u0026#39;POST\\[\u0026#34;private\\_key\u0026#34;\\]\u0026#39;); $sourceFileId = f3::get(\u0026#39;POST\\[\u0026#34;sourceFileId\u0026#34;\\]\u0026#39;); $targetFileId = f3::get(\u0026#39;POST\\[\u0026#34;targetFileId\u0026#34;\\]\u0026#39;); $callbackUrl = f3::get(\u0026#39;POST\\[\u0026#34;callbackUrl\u0026#34;\\]\u0026#39;); function Compare($clientId, $privateKey, $sourceFileId, $targetFileId, $callbackUrl) { //### Check clientId, privateKey and fileGuId if (empty($clientId) || empty($privateKey) || empty($sourceFileId) || empty($targetFileId)) { throw new Exception(\u0026#39;Please enter all required parameters\u0026#39;); } else { //Set variables for Viewer F3::set(\u0026#39;userId\u0026#39;, $clientId); F3::set(\u0026#39;privateKey\u0026#39;, $privateKey); //###Create Signer, ApiClient and Storage Api objects //Create signer object $signer = new GroupDocsRequestSigner($privateKey); //Create apiClient object $apiClient = new APIClient($signer); //Create ComparisonApi object $CompareApi = new ComparisonApi($apiClient); //###Make request to ComparisonApi using user id //Comparison of documents were: $clientId - user GuId, $sourceFileId - source file Guid in which will be provided compare, //$targetFileId - file GuId with wich will compare sourceFile, $callbackUrl - Url which will be executed after compare $info = $CompareApi-\u0026gt;Compare($clientId, $sourceFileId, $targetFileId, $callbackUrl); //Check request status if($info-\u0026gt;status == \u0026#34;Ok\u0026#34;) { //Create CAsyncApi object $asyncApi = new AsyncApi($apiClient); //Delay necessary that the inquiry would manage to be processed sleep(5); //Make request to api for get document info by job id $jobInfo = $asyncApi-\u0026gt;GetJobDocuments($clientId, $info-\u0026gt;result-\u0026gt;job\\_id); //Get file guid $guid = $jobInfo-\u0026gt;result-\u0026gt;outputs\\[0\\]-\u0026gt;guid; // Construct iframe using fileId $iframe = \u0026#39;\u0026lt;iframe src=\u0026#34;https://apps.groupdocs.com/document-viewer/embed/\u0026#39; . $guid . \u0026#39;\u0026#34; frameborder=\u0026#34;0\u0026#34; width=\u0026#34;100%\u0026#34; height=\u0026#34;600\u0026#34;\u0026gt;\u0026lt;/iframe\u0026gt;\u0026#39;; } //If request was successfull - set url variable for template return F3::set(\u0026#39;iframe\u0026#39;, $iframe); } } try { Compare($clientId, $privateKey, $sourceFileId, $targetFileId, $callbackUrl); } catch(Exception $e) { $error = \u0026#39;ERROR: \u0026#39; . $e-\u0026gt;getMessage() . \u0026#34;\\\\n\u0026#34;; f3::set(\u0026#39;error\u0026#39;, $error); } //Process template f3::set(\u0026#39;sourceFileId\u0026#39;, $sourceFileId); f3::set(\u0026#39;targetFileId\u0026#39;, $targetFileId); f3::set(\u0026#39;callbackURL\u0026#39;, $callbackUrl); // f3::set(\u0026#39;result\u0026#39;, $result); echo Template::serve(\u0026#39;sample01.htm\u0026#39;); ``` In this code we have comments for each step but lets take a look at it block by bock. #### Understanding the Controler First, declare all necessary variables. For example, F3::set(\u0026#39;userId\u0026#39;, \u0026#39;\u0026#39;); declares the String variable userId, equal to an empty line. With syntax like F3::set you can declare variables for the template. If you take a look at template code, you\u0026#39;ll see this variable in the You entered block. After we set the template variables, set local variables which get the POST data from thetemplate. In FatFree, you can get POST data with F3::get(\u0026#39;POST\\[\u0026#34;client\\_id\u0026#34;\\]\u0026#39;);. Here, we get data entered by the user into the client\\_id field. F3::set(\u0026lsquo;userId\u0026rsquo;, \u0026lsquo;\u0026rsquo;); F3::set(\u0026lsquo;privateKey\u0026rsquo;, \u0026lsquo;\u0026rsquo;); f3::set(\u0026lsquo;result\u0026rsquo;, \u0026ldquo;\u0026rdquo;); $clientId = F3::get(\u0026lsquo;POST[\u0026ldquo;client_id\u0026rdquo;]\u0026rsquo;); $privateKey = F3::get(\u0026lsquo;POST[\u0026ldquo;private_key\u0026rdquo;]\u0026rsquo;); $sourceFileId = f3::get(\u0026lsquo;POST[\u0026ldquo;sourceFileId\u0026rdquo;]\u0026rsquo;); $targetFileId = f3::get(\u0026lsquo;POST[\u0026ldquo;targetFileId\u0026rdquo;]\u0026rsquo;); $callbackUrl = f3::get(\u0026lsquo;POST[\u0026ldquo;callbackUrl\u0026rdquo;]\u0026rsquo;);\nIn the next step we create a function in which we transfer all the entered data and check if the user filled in all the required fields. function Compare($clientId, $privateKey, $sourceFileId, $targetFileId, $callbackUrl) { //### Check clientId, privateKey and fileGuId if (empty($clientId) || empty($privateKey) || empty($sourceFileId) || empty($targetFileId)) { throw new Exception(\u0026lsquo;Please enter all required parameters\u0026rsquo;); } else {\nNext, create objects of different classes nedded to make a request to the Comparison API. Also, in the first two lines of this block, we set the template variables that do not change. We need these variables for authorization in the API. //Set variables for Viewer F3::set(\u0026lsquo;userId\u0026rsquo;, $clientId); F3::set(\u0026lsquo;privateKey\u0026rsquo;, $privateKey); //###Create Signer, ApiClient and Storage Api objects\n//Create signer object $signer = new GroupDocsRequestSigner($privateKey); //Create apiClient object $apiClient = new APIClient($signer); //Create ComparisonApi object $CompareApi = new ComparisonApi($apiClient); This is the major part of our code, where the magic happens. To compare two documents, simply trigger the necessary method from the Comparison API object. In this case, the method is Compare. This method sends a request to the Comparison API which then does the comparison and sends back an object with the results. The Compare method takes the parameters: * $clientId - user GUID. * $sourceFileId - source file GUID, in which the comparison content is provided. * $targetFileId - the file GUID of the file that will be compared to the source file. * $callbackUrl - URL which will be executed after the comparison. The results of this method is a job ID which we can get by this line: $info-\u0026gt;result-\u0026gt;job\\_id. To see it in a new iframe document generated by the comparison, create an AsyncApi object which has the GetJobDocuments method used to show compared file GUID by job ID. After that, we generate a URL for the iframe. At last we can transfer the generated iframe URL with the compared file GUID to the template. The callback URL is something like Action in the form. You can declare any URL for the handler that will send data to the API when the job is done. //###Make request to ComparisonApi using user id\n//Comparison of documents were: $clientId - user GuId, $sourceFileId - source file Guid in which will be provided compare, //$targetFileId - file GuId with wich will compare sourceFile, $callbackUrl - Url which will be executed after compare $info = $CompareApi-\u0026gt;Compare($clientId, $sourceFileId, $targetFileId, $callbackUrl); //Check request status if($info-\u0026gt;status == \u0026quot;Ok\u0026quot;) { //Create CAsyncApi object $asyncApi = new AsyncApi($apiClient); //Delay necessary that the inquiry would manage to be processed sleep(5); //Make request to api for get document info by job id $jobInfo = $asyncApi-\u0026gt;GetJobDocuments($clientId, $info-\u0026gt;result-\u0026gt;job\\_id); //Get file guid $guid = $jobInfo-\u0026gt;result-\u0026gt;outputs\\[0\\]-\u0026gt;guid; // Construct iframe using fileId $iframe = '\u0026lt;iframe src=\u0026quot;https://apps.groupdocs.com/document-viewer/embed/' . $guid . '\u0026quot; frameborder=\u0026quot;0\u0026quot; width=\u0026ldquo;100%\u0026rdquo; height=\u0026ldquo;600\u0026rdquo;\u0026gt;\u0026rsquo;;\n} //If request was successfull - set url variable for template return F3::set('iframe', $iframe); } } In the last block of controler code we execute the function. After succeful execution of the function, we can set others variables for the template, such as sourceFileId. try { Compare($clientId, $privateKey, $sourceFileId, $targetFileId, $callbackUrl);\n} catch(Exception $e) { $error = 'ERROR: ' . $e-\u0026gt;getMessage() . \u0026quot;\\\\n\u0026quot;; f3::set('error', $error); } //Process template f3::set('sourceFileId', $sourceFileId); f3::set('targetFileId', $targetFileId); f3::set('callbackURL', $callbackUrl); echo Template::serve('sample01.htm'); ### Run the CodeTo run the sample: 1. Open a browser and go to root/sample01. 2. Fill in a form. ### Summary This is how it works: the template sends data entered by a user to the controller which processes it, creating objects and triggering methods and transferring data to them. When a method is triggered, it sends a request to the API, which in turn processes the transferred data and sends a request to the GroupDocs account. In reply, GroupDocs sends the result of the processing which is transferred back on a chain that is processed graudually. ![Block Diagram](https://blog2.groupdocs.com/wp-content/uploads/sites/4/2013/02/Block-Diagram1.png \u0026#34;Block Diagram\u0026#34;) ","permalink":"https://blog.groupdocs.com/comparison/implement-document-comparison-api-sample-with-php-sdk/","summary":"This article explains the basics of using PHP SDK classes and methods. In this article I\u0026rsquo;ll use the Comparison API and show how to compare two documents from a GroupDocs account. Find information about others methods in the Swagger explorer.\nRequirements PHP 5.3 Apache ModRewrite PHP Curl extension PHP Sockets extension (php_sockets.dll) GroupDocs PHP SDK composer.phar (Download from http://getcomposer.org/download/ or use the included version) FatFree framework (https://github.com/bcosca/fatfree) Initial Installations Learn how to install the Fatfree framework from their Readme: https://github.","title":"Comparison API sample Implementation with PHP SDK"},{"content":"Good news to all! Google Cloud is now integrated with GroupDocs’ document management solutions. With this integration, you can now configure Google Cloud as your default storage provider for GroupDocs. You can set this up from within your GroupDocs account area. Flexibility in storage is vital when looking for a powerful document management solution. Most importantly, GroupDocs gives you power to choose your storage provider, which makes our solution flexible and user friendly. [caption id=\u0026ldquo;attachment_1518\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Google Cloud has integrated with GroupDocs\u0026rsquo; document management solutions\u0026rdquo;]\r[/caption]\nAdvantages Advantages of this integration are as follows:\nUpload huge volumes of documents to Google Cloud bucket and then use these with many different GroupDocs apps. Unique ability to select your storage provider adds power as well as flexibility. Integrate your existing Google Cloud bucket with GroupDocs, which saves time and effort. Integrate your document management with 3rd-party applications. Setting Up Google Cloud with GroupDocs’ Document Management Solutions GroupDocs lets you configure Google Cloud as your default storage provider easily from within your account area. The steps are so easy that you can set it up in seconds. You can either integrate your existing bucket or create a new bucket before you start configuring it in GroupDocs. Once you’ve a Google Cloud bucket ready with you, do the following steps:\nGo to the Storage Provider area on your profile page. Select Google Cloud from the Provider list. Enter your Google Cloud bucket name in the Bucket Name field. Click Apply. [caption id=\u0026ldquo;attachment_1519\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Configure Google Cloud as the default storage for your document management\u0026rdquo;]\r[/caption] It’s done! You’ve just configured Google Cloud as your default storage provider. Please refer to Integration of GroupDocs with Google Cloud help documentation for more details. So why wait? Register with GroupDocs now to use our flexible document management solutions and storage options. Your suggestions and feedback are important for us. Please use our Live Chat support or our official feedback forum to talk to us. Get in touch with our newsletters and blog to get updates on all GroupDocs enhancements.\n","permalink":"https://blog.groupdocs.com/total/integration-of-groupdocs-document-management-solutions-with-google-cloud-storage/","summary":"Good news to all! Google Cloud is now integrated with GroupDocs’ document management solutions. With this integration, you can now configure Google Cloud as your default storage provider for GroupDocs. You can set this up from within your GroupDocs account area. Flexibility in storage is vital when looking for a powerful document management solution. Most importantly, GroupDocs gives you power to choose your storage provider, which makes our solution flexible and user friendly.","title":"Integration of GroupDocs’ Document Management Solutions with Google Cloud Storage"},{"content":"Today we will find out how to use GroupDocs\u0026rsquo; Ruby SDK. We will create a GroupDocs Signature envelope sample with the Sinatra framework. GroupDocs Signature envelopes are used to prepare documents for digital signature and managing the signature process.\nSetting Up First, create the application folders structure:\nyour_app/public – for CSS files. your_app/samples – for sample files. your_app/views – for view files, we will use Haml for these. Also we need to create a Gemfile in our project\u0026rsquo;s root directory with the following content: https://gist.github.com/averjr/4739176\nWriting the Application Lets start our application. Create app.rb file with following content: https://gist.github.com/averjr/4739208\nLines 1-3 requires the Sinatra framework, GroupDocs SDK and haml for our views. Lines 5-7 creates our first root with a view named index.haml. By default, Sinatra looks for view files in views directory. Line 13 includes all Ruby files from the samples directory. Now lets work on the views. Create a parent layout file called layout.haml. https://gist.github.com/averjr/a0313da572e3141811f3 It is really easy to work with HTML using Haml. Find out more about Haml. Here\u0026rsquo;s anonline tool for converting HTML to Haml. Note that in Haml, you don\u0026rsquo;t have to close tags and indents are very important! “= yield” is where child templates are included. In index.haml you\u0026rsquo;ll see an h1 header, div container and ul list with one list element that links to our envelope sample: https://gist.github.com/averjr/c23ab36e0b8e3415dc8e You can add any HTML attribute like this: {:your_attribute =\u0026gt; “your attribute value”}.\nThe Starting Point Before creating the envelope sample, lets look at what we have. To avoid problems with starting the application, use rvm. (This article explains how to install rvm.) Now install a local bundle by typing this command in a terminal, while in the app directory:\ngem install bundler If it is installed already, use this command:\nbundle install --path vendor/bundle And now you could start the application:\nbundle exec ruby app.rb In the terminal, you will see something like this: [caption id=\u0026ldquo;attachment_1501\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;535\u0026rdquo; caption=\u0026ldquo;Terminal - Terminal massages after starting Sinatra server\u0026rdquo;]\r[/caption] Open in you browser with the URL http://localhost:4567/ and you will see the following: [caption id=\u0026ldquo;attachment_1502\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;409\u0026rdquo; caption=\u0026ldquo;Index page - Index page of our app without CSS\u0026rdquo;]\r[/caption] Add a little CSS in public/css directory: https://gist.github.com/averjr/4752864 Re-load the page and you will see: [caption id=\u0026ldquo;attachment_1503\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;705\u0026rdquo; caption=\u0026ldquo;Index page with CSS - After adding CSS the page looks like this\u0026rdquo;]\r[/caption]\nCreating the Envelope Example Lets create envelope_sample.haml in your views directory with the following content:https://gist.github.com/averjr/4739266 We have created a form that sends the ClientID, PrivateKey and the file to be signed. Now write the Ruby code that handles the get and post request as the file envelope-sample.rb in samples directory: https://gist.github.com/averjr/4739271 We have created one GET and one POST request.\nExtending the POST Request Lets extend post request and use the GroupDocs API: 1. Configuring GroupDocs SDK.\nGroupDocs.configure do |groupdocs| groupdocs.client\\_id = params\\[:client\\_id\\] groupdocs.private\\_key = params\\[:private\\_key\\] groupdocs.api\\_server = \u0026#39;https://stage-api.groupdocs.com\u0026#39; end Upload document. filepath = \u0026#34;#{Dir.tmpdir}/#{params\\[:file\\]\\[:filename\\]}\u0026#34; File.open(filepath, \u0026#39;wb\u0026#39;) { |f| f.write(params\\[:file\\]\\[:tempfile\\].read) } file = GroupDocs::Storage::File.upload!(filepath, {}, client\\_id: settings.client\\_id, private\\_key: settings.private\\_key) document = file.to\\_document Create envelope. envelope = GroupDocs::Signature::Envelope.new envelope.name = \u0026#34;Envelope\u0026#34; envelope.email\\_subject = \u0026#34;Sing this!\u0026#34; envelope.create! Add document to envelope. envelope.add\\_document! document Update document object after it\u0026rsquo;s created. document = envelope.documents!.first Add new recipient to envelope. roles = GroupDocs::Signature::Role.get! recipient = GroupDocs::Signature::Recipient.new recipient.email = \u0026#39;john@smith.com\u0026#39; recipient.first\\_name = \u0026#39;John\u0026#39; recipient.last\\_name = \u0026#39;Smith\u0026#39; recipient.role\\_id = roles.detect { |role| role.name == \u0026#34;Signer\u0026#34; }.id envelope.add\\_recipient! recipient Update recipient object after it\u0026rsquo;s created. recipient = envelope.recipients!.first 8 (Optional). By default, fields for signing are created automatically, but you can add fields manually.\n# add city field to envelope field = GroupDocs::Signature::Field.get!.detect { |f| f.type == :single\\_line } field.name = \u0026#39;City\u0026#39; field.location = { location\\_x: 0.3, location\\_y: 0.2, page: 1 } envelope.add\\_field! field, document, recipient # add signature field to envelope field = GroupDocs::Signature::Field.get!.detect { |f| f.type == :signature } field.location = { location\\_x: 0.3, location\\_y: 0.3, page: 1 } envelope.add\\_field! field, document, recipient Send envelope with callback URL. webhook = \u0026#39;https://groupdocs-ruby-samples.herokuapp.com/envelope-sample/sign\u0026#39; envelope.send! webhook Construct embedded signature URL for views. url = \u0026#34;https://stage-apps.groupdocs.com/signature/signembed/#{envelope.id}/#{recipient.id}\u0026#34; iframe = \u0026#34;\u0026lt;iframe src=\u0026#39;#{url}\u0026#39; frameborder=\u0026#39;0\u0026#39; width=\u0026#39;720\u0026#39; height=\u0026#39;600\u0026#39;\u0026gt;\u0026lt;/iframe\u0026gt;\u0026#34; Add local vars for the view. haml :envelope\\_sample, :locals =\u0026gt; { :client\\_id =\u0026gt; settings.client\\_id, :private\\_key =\u0026gt; settings.private\\_key, :err =\u0026gt; err, :iframe =\u0026gt; iframe} Add code for handling exeptions. begin raise \u0026#34;Please enter all required parameters\u0026#34; if settings.client\\_id.empty? or settings.private\\_key.empty? .... rescue Exception =\u0026gt; e err = e.message end Handling a Callback Lets handle the callback: 1. First, wait for callback and create a text file with parameters that the server sent to us:\npost \u0026#39;/envelope-sample/sign\u0026#39; do # Content Type of callback is application/json data = JSON.parse(request.body.read) begin raise \u0026#34;Empty params!\u0026#34; if data.empty? #create empty file and write data as \u0026#34;key: value\u0026#34; to it outFile = File.new(\u0026#34;signed\u0026#34;, \u0026#34;w\u0026#34;) data.each do |key, value| outFile.write(\u0026#34;#{key}: #{value} \\\\n\u0026#34;) end outFile.close rescue Exception =\u0026gt; e err = e.message end end We can also wait for a callback and download the signed envelope as ZIP file. post \u0026#39;/envelope-sample/sign-and-download\u0026#39; do data = JSON.parse(request.body.read) begin raise \u0026#34;Empty params!\u0026#34; if data.empty? GroupDocs.configure do |groupdocs| groupdocs.client\\_id = \u0026#39;\u0026#39; # Your client Client ID here groupdocs.private\\_key = \u0026#39;\u0026#39; # Your API Key here groupdocs.api\\_server = \u0026#39;https://api.groupdocs.com\u0026#39; end data.each do |key, value| if key == \u0026#39;SourceId\u0026#39; # Create envelop with id and name as SourceId parameter from callback envelope = GroupDocs::Signature::Envelope.new id: value, name: value # download signed documents as archive envelope.signed\\_documents! \u0026#39;.\u0026#39; end end rescue Exception =\u0026gt; e err = e.message end end Create route to check if callback was sent: get \u0026#39;/envelope-sample/check\u0026#39; do if File.exist?(\u0026#39;signed\u0026#39;) File.readlines(\u0026#39;signed\u0026#39;).each do |line| end else \u0026#39;Have not signed yet\u0026#39; end end Check the file that was created in /envelope-sample/sign\nThe Complete Code The final code of the sample looks like this: https://gist.github.com/averjr/4739332\n","permalink":"https://blog.groupdocs.com/signature/working-with-groupdocs-signature-api-from-ruby/","summary":"Today we will find out how to use GroupDocs\u0026rsquo; Ruby SDK. We will create a GroupDocs Signature envelope sample with the Sinatra framework. GroupDocs Signature envelopes are used to prepare documents for digital signature and managing the signature process.\nSetting Up First, create the application folders structure:\nyour_app/public – for CSS files. your_app/samples – for sample files. your_app/views – for view files, we will use Haml for these. Also we need to create a Gemfile in our project\u0026rsquo;s root directory with the following content: https://gist.","title":"Working with Groupdocs Signature API from Ruby"},{"content":"Good news for the document management world! You now have all required online document management apps available under one roof. I’m talking about GroupDocs: a one-stop-shop for all your document management needs. The history of modern document management systems began with development of a set of computer apps, which were used to store and monitor electronic documents. With the advancement of technology, new branches were formed in the system. Now, online document management is not just storing or monitoring your electronic documents, but it’s a system that lets you manipulate your documents any way you want. [caption id=\u0026ldquo;attachment_1488\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;GroupDocs - Make your online document management easier\u0026rdquo;]\r[/caption]\nSix Powerful Apps to Make Your Online Document Management Easier Here at GroupDocs, we\u0026rsquo;ve developed a suite of online document management applications that can help you streamline your document workflow. Our document management suite includes the following web-based apps:\nGroupDocs Viewer - allows you to view PDF and Microsoft Office documents online, including Word, Excel and PowerPoint files. GroupDocs Signature - a legally binding online signature service that lets you sign contracts, invoices and any other legal documents by applying an electronic signature. With this app, you can legally sign documents from any web-enabled device, without the need of printing, scanning and faxing them. GroupDocs Annotation - allows you to annotate PDF and Microsoft Office documents online, right in a web-browser. The app lets several parties remotely annotate the same document in real time. This is a convenient approach to how you and you colleagues/partners can collaborate on a document while reviewing it. GroupDocs Conversion - a universal file converter. Allows you to convert back and forth between literally all common business file formats. GroupDocs Assembly - allows you to automatically generate custom documents by incorporating data entered by users through online forms into your document templates. GroupDocs Comparison - lets you compare two revisions of a document online. It compares documents side-by-side automatically and highlights all differences with underlines and strikeouts. With this app, you can compare Word documents, PDF files, Excel spreadsheets and even PowerPoint presentations. [caption id=\u0026ldquo;attachment_1479\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;GroupDocs\u0026rsquo; online document management dashboard\u0026rdquo;]\r[/caption]\nHow Can GroupDocs\u0026rsquo; Online Document Management Solution Help Your Business? Consider a scenario where you are running a law firm and have to manage thousands of clients\u0026rsquo; documents. With GroupDocs cloud storage, all your documents are securely stored in the cloud and protected from unauthorized access. You can retrieve and share your documents wherever you are, from any device. Thanks to the document assembly app, GroupDocs can help you to automate the process of generating documents. If you need to create tens or even hundreds of custom documents based on user-specific data, this app is of great help. It allows you to minimize errors, ensures the accuracy of documents and cuts down the document creation time. Sometimes, it\u0026rsquo;s difficult to find differences between two document revisions. Our online comparison service comes in handy on such occasions. With GroupDocs Comparison, any modifications, even tiny ones, are really simple to spot. It saves time and effort, and allows you to keep your documents accurate. In case you want to review a document prepared by your colleagues before sending it out for signature, use our annotation app. Simply upload the document and share it with your colleagues for a real time collaborative review. Once the document is reviewed and conformed, you can send it for signature with the help of our online signature service. You\u0026rsquo;ll be amazed on how quickly a document can be signed and your partners/clients will be delighted with the convenient online signing process. In short, with GroupDocs, you can access all online document management apps without the need to pay for a number of expensive stand-alone document management tools. We\u0026rsquo;d suggest you to take a look at some examples on how GroupDocs\u0026rsquo; apps suite helps you solve real business problems! So why wait? Register with GroupDocs and feel the difference!\n","permalink":"https://blog.groupdocs.com/total/groupdocs-apps-suite-for-all-your-online-document-management-needs/","summary":"Good news for the document management world! You now have all required online document management apps available under one roof. I’m talking about GroupDocs: a one-stop-shop for all your document management needs. The history of modern document management systems began with development of a set of computer apps, which were used to store and monitor electronic documents. With the advancement of technology, new branches were formed in the system. Now, online document management is not just storing or monitoring your electronic documents, but it’s a system that lets you manipulate your documents any way you want.","title":"GroupDocs Apps Suite: a One-Stop-Shop for All Your Online Document Management Needs"},{"content":"This article explains the basics of creating an add-on for FireFox using the FireFox Add-on Builder and Add-on SDK. Read more about them on the Mozilla website. As an example, I’ll use the GroupDocs add-on. (You can download the source code from Github.) It\u0026rsquo;s an advanced extension so I’ll focus on the basics and highlight a couple of interesting aspects communication between scripts. I\u0026rsquo;ll mainly look at the add-on folders data and lib in the /resources/groupdocsviewer/ folder.\nCreating an add-on: main.jsThe main.js file, located in the lib folder, is the entry point for the extension. It is executed when you install the add-on and then each time the browser is launched. At the top of the file is a ;ist of libraries linked in using the SDK command require(): The widget library is used to create the icon that users click to open the GroupDocs add-on’s main window. Object data from the library called self is used to access files in the data folder. This folder holds all the JavaScript files, libraries, pictures, text files, HTML files, styles and other resources that the add-on needs. The panel library creates the GroupDocs window that contains the add-on interface. The passwords library stores personal information in the FireFox Password Manager. [caption id=\u0026ldquo;attachment_1460\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;393\u0026rdquo; caption=\u0026ldquo;Linking libraries, creating widget and panel\u0026rdquo;]\r[/caption] After connecting to the required libraries, the script creates a panel. This loads HTML content from the data folder and sets the dimensions of the add-on window. As well as creating the panel, any JavaScripts that the add-on uses are loaded at this point. Note that the scripts attached to the panel do not have access to the main.js context, nor does main.js have access to the panel context. More about that later. Once the panel is created, the script creates a widget. The widget is a button that can be seen in FireFox’s add-ons panel. To create the widget, define an ID, a label and an image. The image is the icon that users click to start the GroupDocs extension. Lastly, define the panel that will be launched when the icon is clicked. The code that follows the widget definition consists of message handlers.\nCommunication between scriptsI mentioned that the scripts that run in the add-on interface do not have access to the main.js file\u0026rsquo;s context. They also can\u0026rsquo;t call the FireFox API: the FireFox API only works within the main.js context. This means that the add-on has two execution contexts: the main.js file, which as access to the FireFox API, and script files that work with the add-on window\u0026rsquo;s DOM model. Since main.js and the scripts that run in the panel don\u0026rsquo;t have direct access to each other\u0026rsquo;s content, we need to use messages to communicate between the two. To send a messages from main.js, use the panel object’s port.emit() method. It takes two parameters: the message, as a string, and the object the message is for. [caption id=\u0026ldquo;attachment_1461\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;581\u0026rdquo; caption=\u0026ldquo;Use panel.port.emit function for sending message from main.js\u0026rdquo;]\r[/caption] To receive messages from the main.js file, use the panel class’ port.on() method. This too takes two parameters: the message, as a string, and the parameter handling function. When a message arrives, this function can take the second parameter of the sent object – port.emit(). [caption id=\u0026ldquo;attachment_1464\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;282\u0026rdquo; caption=\u0026ldquo;Use panel.on function for receiving message from main.js\u0026rdquo;]\r[/caption] Credential managementGroupDocs defines a message handler for storing and removing credentials in FireFox’s Password Manager. This process illustrates how to pass messages between main.js and the GroupDocs window. The first message is received when a user logs in and has selected the Remember me option. The second message is received when a user clicks Logout. You\u0026rsquo;ll notice, in the main.js file, in the first function, that the script checks whether the user is already logged in. If they are, the panel sends a message containing the login data. This way, users do not have to log in every time they restart the browser. Messages to other ScriptsJavaScript files connected to the panel are executed within the panel in the order that they are listed. This is important because it allows you to load any number of libraries and then also files that use those libraries. One of the files called by the main.js file to create the main panel is popup.js. It initializes handlers for all the controls in the add-on window. This file also contains the all the extension\u0026rsquo;s logic. Sending and receiving messages here is a little more complicated. The methods port.on() and port.emit() are located within the object itself, and the object is available in the global context, that is, it\u0026rsquo;s not visible to other functions or objects. Keep a reference to the object so that you can use it when you run the file. It is worth noticing that to start carrying out any actions in the popup.js file follows not in the first line of the file, but in the method which has received the message from the main.js file. SummaryThis is how it works: widgets and panels are created in main.js. Then we have a message handler that ensures that a “show” message is generated when the panel is displayed. Code in main.js catches the message and sends a similar message to popup.js. Code in popup.js catches the message and initialises the extension. [caption id=\u0026ldquo;attachment_1465\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;573\u0026rdquo; caption=\u0026ldquo;Transit of the message of \u0026lsquo;show\u0026rsquo;\u0026rdquo;]\r[/caption] popup.js starts working as soon as the panel has been displayed and a DOM model add-on is ready to use. It functions as any site: JavaScripts respond, the DOM is modified as needed and AJAX requests are made. To interact with the FireFox API, send a message to main.js which, after working with the FireFox API, sends a message back to popup.js with the results. ","permalink":"https://blog.groupdocs.com/viewer/developing-firefox-add-ons-with-the-add-on-builder-and-sdk/","summary":"This article explains the basics of creating an add-on for FireFox using the FireFox Add-on Builder and Add-on SDK. Read more about them on the Mozilla website. As an example, I’ll use the GroupDocs add-on. (You can download the source code from Github.) It\u0026rsquo;s an advanced extension so I’ll focus on the basics and highlight a couple of interesting aspects communication between scripts. I\u0026rsquo;ll mainly look at the add-on folders data and lib in the /resources/groupdocsviewer/ folder.","title":"Developing FireFox Add-ons with the Add-on Builder and SDK"},{"content":"The GroupDocs APIs are designed to be REST compliant so that they are familiar and easy to use. This post looks at how to use Swagger to test the GroupDocs APIs. Before showing you how to run a test, it explains Swagger and REST, and why we use them.\nWhy we use Swagger and REST Swagger is a specification and a framework for building interactive API documentation and sandboxes, and to generate the code of an API client. Swagger (http://swagger.wordnik.com/) was developed by http://wordnik.com in the course of the development of their own API (http://developer.wordnik.com/docs). The Swagger specification itself does not depend on specific programming languages, instead Swagger implementations are available in Scala, Java and HTML5. The API code generators (https://github.com/swagger-api/swagger-codegen) are available in Scala, Java, JavaScript, Ruby, PHP, and Actionscript 3. Swagger can be found in github (https://github.com/wordnik/swagger-core) as can its supporting documentation (https://github.com/wordnik/swagger-core/wiki). To develop your own API server, you may follow the tutorial (https://github.com/wordnik/swagger-core/wiki/tutorial). You\u0026rsquo;ll find project examples there too (https://github.com/wordnik/swagger-core/tree/master/samples). The main purpose of the Swagger project is to update documentation and API clients as fast as the service itself.\nSwagger UI The Swagger UI framework allows both developers and non-developers to interact with an API server in a simple and understandable way. While visualizing all the features of API the developer can test how the server responds to parameters and variables. The Swagger UI does not have any software dependencies and is very easy to use. Built with only HTML/CSS/JavaScript, it does not have very pleasant or intuitive interface yet. It may be run both locally and on the server. It may downloaded from Github (https://github.com/swagger-api/swagger-ui/downloads). A simple demo may be found on the Swagger developer\u0026rsquo;s website (http://petstore.swagger.wordnik.com/).\nREST REST is a style of software architecture for building distributed systems. The author of REST is Roy Fielding who is also one of the authors of the HTTP protocol. In REST, data is transferred with the help of a limited quantity of formats (HTML, XML, JSON) via HTTP. REST perfectly suits the development of extensible web-services.\nSwagger UI example - GroupDocs Swagger UI Groupdocs uses Swagger for its own purposes and seeks to help developers get familiarized with the features of our API in detaile. A Swagger UI for the GroupDocs API may be found at the following link: https://api.groupdocs.com/v2.0/spec/.. Alternatively, download your Swagger UI and acquire all the methods from this link: https://api.groupdocs.com/v2.0/spec/spec-files/resources.json. The easiest way to master an API is to follow an example. First off you need to know your API key and the client ID specific to your GroupDocs account. You can find them in GroupDocs:\nTo get the API key: Select the menu option My Account, then API and API Key. To get the client ID: Select My Account, then API and Client ID. Let us test an API on a simple example. Let\u0026rsquo;s say we need to acquire information on storage. Our actions:\nOpen https://api.groupdocs.com/v2.0/spec/ and specify your API Key in the top right corner. Open the Storage tab. We see a list with all possible actions. Select Get storage info. [caption id=\u0026ldquo;attachment_1407\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;802\u0026rdquo; caption=\u0026ldquo;Swagger UI home page with list of applications\u0026rdquo;]\r[/caption] In the frame we can see the parameters required to compile and submit a request. [caption id=\u0026ldquo;attachment_1411\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;802\u0026rdquo; caption=\u0026ldquo;Live demo of the chosen API method\u0026rdquo;]\r[/caption] The list of those parameters consists of three columns – parameter, value and description. The value field indicates which type of value it should be and if it is necessary or not. In our case we need to specify only one required parameter: userId, also known as Client ID, acquired above. After completing all required fields, click Try it on! and wait for the server to respond. The response from the server consists of four pieces of information: Request URL, Response Code, Response Body and Response Headers. [caption id=\u0026ldquo;attachment_1418\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;803\u0026rdquo; caption=\u0026ldquo;Swagger UI shows results of executed API method\u0026rdquo;]\r[/caption] Enter the required information in the Response Body frame. Please talk to us using our Live Chat support or official feedback forum. Stay connected with our blog and newsletter to get updates regarding all GroupDocs enhancements.\n","permalink":"https://blog.groupdocs.com/total/how-to-use-swagger-ui-to-test-groupdocs-rest-api/","summary":"The GroupDocs APIs are designed to be REST compliant so that they are familiar and easy to use. This post looks at how to use Swagger to test the GroupDocs APIs. Before showing you how to run a test, it explains Swagger and REST, and why we use them.\nWhy we use Swagger and REST Swagger is a specification and a framework for building interactive API documentation and sandboxes, and to generate the code of an API client.","title":"How to Use Swagger UI to Test GroupDocs REST API"},{"content":"Zapier allows seamless integration with dozens of APIs. In this post I\u0026rsquo;ll explain how to create an integration with the GroupDocs Storage API. Put simply the process of integration with Zapier is Read -\u0026gt; Process -\u0026gt; Write. The left side of the integration is called a trigger and the right side is an action. The central process simply converts your API response to a format suitable for the write action. We are going to create a trigger for new files. When you upload files to your GroupDocs account, a Zap (Zapier app) gets the file details and sends them (the write action) to one of the supported services. In this example, we\u0026rsquo;ll simply send an email using Gmail. Here is the brief overview of what needs to be done:\nCreate GroupDocs Storage service. Add Auth Fields to support GroupDocs URL Signing based authentication. Create a trigger for the Storage.ListEntities operation. Use Zapier\u0026rsquo;s Javascript API to implement GroupDocs URL Signing. Test. 1. Create GroupDocs Storage Service Go to https://zapier.com/developer/app/create/. Fill in the form with following information: Title: GroupDocs Storage Description: Create/Read/Update/Delete users\u0026rsquo; files and folders. Click Save. A new page is loaded, with the name of the app. 2. Add Auth Fields In Zapier, click Add a new auth field in the Auth Fields section. Fill in the form with the following information: Label: Client ID Key: client_id Type: Unicode Required: Yes Help text: Get it from https://apps.groupdocs.com/My/Manage Click Save button. Now repeat the same steps to add an Auth Field for the API key: Label: API Key Key: private_key Type: Password Required: Yes Help text: Get it from https://apps.groupdocs.com/My/Manage Click Save. 3. Create a Trigger The trigger recognizes that files have been uploaded and passes them to the process. Setting up a trigger involves several steps: adding a new trigger, adding polling info, adding a trigger field and, finally, adding sample results.\nStill in Zapier, click Add a new trigger. in the Triggers section. Fill in the form with following information: Label: New File Key: new_file Help text: New file uploaded to GroupDocs. Important: On Data Source: Polling Click Save. The Trigger page is updated so you can enter polling info. Paste the following into the Polling: URL Route field: client_id/folders/path?order_by=CreatedOn\u0026amp;order_asc=False Click Save. 3a. Add Trigger Field for the path Placeholder Click Add a new trigger field. . Fill in the form with following information: Label: Folder Key: path Help text: Folder path such as \u0026ldquo;myFolder\u0026rdquo;, also supports nesting as in \u0026ldquo;my/nested/folder\u0026rdquo;. To get contents of root folder use \u0026ldquo;/\u0026rdquo;. Type: Unicode Required: Yes 3b. Add sample result Click the sample link in the Trigger Data Sources section.\nAdd the following json:\n{ \u0026#34;guid\u0026#34;: \u0026#34;1a4e925807950d82b4bf55dc86f736b9123a4409fa1ab3583cf69bc4d1d5dd1a\u0026#34;, \u0026#34;name\u0026#34;: \u0026#34;another\\_interactiveform.pdf\u0026#34;, \u0026#34;url\u0026#34;: \u0026#34;https://api.groupdocs.com/v2.0/shared/files/1a4e925807950d82b4bf55dc86f736b9123a4409fa1ab3583cf69bc4d1d5dd1a\u0026#34;, \u0026#34;thumbnail\u0026#34;: null, \u0026#34;supported\\_types\u0026#34;: null, \u0026#34;access\u0026#34;: \u0026#34;Private\u0026#34;, \u0026#34;file\\_type\u0026#34;: \u0026#34;Pdf\u0026#34;, \u0026#34;created\\_on\u0026#34;: 1352273011483, \u0026#34;version\u0026#34;: 1, \u0026#34;modified\\_on\u0026#34;: 1352273011483, \u0026#34;owner\u0026#34;: null, \u0026#34;sharers\u0026#34;: null, \u0026#34;type\u0026#34;: \u0026#34;Pdf\u0026#34;, \u0026#34;id\u0026#34;: 18731, \u0026#34;dir\u0026#34;: false, \u0026#34;size\u0026#34;: 91134 } Click Save.\nMark the following fields as important: created_on, file_type, guid, id, name and size.\n4. Implement GroupDocs URL Signing Click the Edit Your Code button.\nAdd the following JavaScript code:\nCheck how to implement [GroupDocs URL Signing with JS](https://docs.groupdocs.com/). As there is no way to include external JS files from within a JavaScript code, we had to copy the SHA-1 implementation from https://github.com/Caligatio/jsSHA/blob/release-1.41/src/sha1.js.\nWe also had to change the Content-Type header from \u0026ldquo;application/json\u0026rdquo; to \u0026ldquo;text/html\u0026rdquo; or the GroupDocs API would try to parse the request body and fail because the GET request doesn\u0026rsquo;t have a body payload.\nTest the Service Our service is ready, now we can test it.\nGo to your dashboard and create new zap. Type \u0026ldquo;GroupDocs\u0026rdquo; in the search box. Select the New File trigger. As the action, choose Gmail - Send Email. Once you are done with testing you can submit your service for global activation or enable invite only activation. In the next post I\u0026rsquo;ll describe how to create an action for the GroupDocs Storage API. That is, we\u0026rsquo;ll implement the right side of integration. Please talk to us using our Live Chat support or official feedback forum. Stay connected with our blog and newsletter to get updates regarding all GroupDocs enhancements.\n","permalink":"https://blog.groupdocs.com/total/integration-for-zapier-how-to-create-a-custom-trigger/","summary":"Zapier allows seamless integration with dozens of APIs. In this post I\u0026rsquo;ll explain how to create an integration with the GroupDocs Storage API. Put simply the process of integration with Zapier is Read -\u0026gt; Process -\u0026gt; Write. The left side of the integration is called a trigger and the right side is an action. The central process simply converts your API response to a format suitable for the write action. We are going to create a trigger for new files.","title":"Integration for Zapier - How to Create a Custom Trigger"},{"content":"Hello to all Joomla users! Here at GroupDocs, we\u0026rsquo;re excited to announce the release of the long-awaited PDF viewer plugin for Joomla CMS. The plugin allows you to easily embed and host PDF documents (as well as Word, Excel and PowerPoint documents) on your Joomla website. We\u0026rsquo;ve been working hard to make the installation process and plugin deployment hassle-free for Joomla web-developers and website owners. At the same time, our aim was to make the document viewer interface convenient for the end users - your website visitors. We think we\u0026rsquo;ve achieved that task by 200%. Let\u0026rsquo;s now take a closer look at the key features and benefits of using our PDF viewer plugin on your Joomla website. Joomla PDF Viewer Plugin - Key Features \u0026amp; Benefits 1. No Flash or any web-browser plugins required. Our PDF viewer plugin doesn\u0026rsquo;t convert documents to images, and outperform all Flash-based viewers in both usability and reliability. Your website visitors don\u0026rsquo;t need to install any web-browser plugins or Flash to view embedded documents. Any document can be viewed in any modern web-browser. 2. Support for all common business document formats. With the GroupDocs Viewer plugin for Joomla, you can embed and host not only PDF files, but also all common Microsoft Office documents, including word-processing documents (DOC, DOCX, TXT, RTF, ODT, etc.), Excel spreadsheets (XLS, XLSX, CSV, etc.) and PowerPoint presentations (PPT, PPTX). 3. Real text documents, not images. GroupDocs Viewer renders both PDF and Microsoft Office files as real text documents. This allows visitors, for example, to select and copy text right from the embedded document. And if you don\u0026rsquo;t want users to copy text for some reason, you can easily restrict this feature. 4. High quality rendering. Thanks to native text rendering, hosted documents look just as the originals. Font styles, formatting and document layout always remain intact! 5. Convenient navigation. Apart from simple scrolling, users can turn pages with the Go Forward/Backward buttons, jump straight to a specified page and preview pages with thumbnails. We also supplied our document viewer with a search feature, which allows users to quickly find a text block in the document. 6. Many other handy features. There are many other features designed to make your website visitors delighted with the on-page document viewing experience. For example, users can zoom in to or out of documents for comfortable reading, use double-page flipping, download or print the original document right from a web-page, etc.\nInstalling the PDF Viewer Plugin on Your Joomla Website Our PDF viewer plugin has been recently tested and approved by Joomla admins and is now available for download from the official Joomla Extensions Directory. Please note: before installing the plugin, you need to register with us. We provide a free 14-day trial, so that you can test the viewer before committing. You can find a detailed instruction on how to install and use the Joomla PDF Viewer plugin in our documentation directory. Also, please see a live demo with documents of various formats embedded to our own web-page. Should you have any questions or need assistance, please feel free to contact us.\n","permalink":"https://blog.groupdocs.com/total/joomla-pdf-viewer-plugin-officially-released/","summary":"Hello to all Joomla users! Here at GroupDocs, we\u0026rsquo;re excited to announce the release of the long-awaited PDF viewer plugin for Joomla CMS. The plugin allows you to easily embed and host PDF documents (as well as Word, Excel and PowerPoint documents) on your Joomla website. We\u0026rsquo;ve been working hard to make the installation process and plugin deployment hassle-free for Joomla web-developers and website owners. At the same time, our aim was to make the document viewer interface convenient for the end users - your website visitors.","title":"PDF Viewer Plugin for Joomla Is Now Officially Released!"},{"content":"For GroupDocs, 2012 was a significant year marked by milestones; we\u0026rsquo;re proud and grateful to end a busy year with great achievements. With constant enhancements, we were able to prove that we\u0026rsquo;re an integral part of the document management world. In 2012, we have introduced enhanced versions of our apps with added features from time to time; created a variety of plugins for multiple platforms; integrated many different storage options with GroupDocs; introduced flexible API SDKs to help you integrate our apps to your existing applications; and were able build a strong base of valuable customers, ranging from small to mid to enterprise levels; amongst many others. [caption id=\u0026ldquo;attachment_1198\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;A year of great achievements - 2012 in review\u0026rdquo;]\r[/caption] Let\u0026rsquo;s have a closer look at some of our achievements in 2012.\nWe\u0026rsquo;re Heading to Our 1st Anniversary! We\u0026rsquo;re excited that our first anniversary is on our door steps. GroupDocs started its operation in Jan 12th, 2012 as a one-stop shop for all your document management requirements. We aimed at bridging the gap between desktop and cloud computing. For that reason, we opted using Web 2.0 to bridge the platform gap. To serve you with a bunch of apps that are essential for your document management needs, we started off by providing your with the following apps, all under a single roof:\nGroupDocs Viewer GroupDocs Signature GroupDocs Annotation GroupDocs Assembly GroupDocs Comparison Within a year, we\u0026rsquo;ve introduced a new app, the GroupDocs Conversion, in addition to our legacy apps; enhanced our existing UIs to include efficient work flows and features; extended our plugin support to many different platforms and CMSs; integrated with multiple 3rd party storage providers; and enhanced our API SDKs; just to name a few. We\u0026rsquo;re happy that our document management solutions were successful in making your document management and document collaboration processes quicker and easier. With GroupDocs, you get the most efficient, affordable and easy-to-use web-based document management solutions.\nNew App - GroupDocs Conversion In addition to our legacy products, we\u0026rsquo;ve introduced an efficient online document conversion app, the GroupDocs Conversion, in 2012. GroupDocs Conversion is an online document conversion app that lets you convert documents simply using your browser. With GroupDocs Conversion, you can convert different types of word processing documents (DOC, DOCX, TXT, RTF, ODT), presentations (PPT, PPTX), spreadsheets (XLS, XLSX), portable files (PDF), and image files (JPG, BMP, GIF, TIFF) to other file formats. Following figure gives you an idea of the file formats supported by GroupDocs Conversion. [caption id=\u0026ldquo;attachment_1199\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Convert your documents to many different formats using GroupDocs Conversion\u0026rdquo;]\r[/caption]\nKey Innovations We\u0026rsquo;ve made various enhancements to improve the look, feel, and efficiency of our apps. All of our apps have undergone substantial modifications to improve the user experience. Improvements include a new streamlined work flow that walks you through each and every step; various uploading options; thumbnail preview of the uploaded document; addition of new features and tools; new options to export, download, print the manipulated document; addition of tools tips and help link to provide you with additional help; support for all business and common file formats; and so on. Lately, we\u0026rsquo;ve rolled out the GroupDocs Annotation v2.0 beta and GroupDocs Assembly v2.0 beta with advanced features. Both these versions include enhanced, yet easy-to-follow workflows. Moreover, GroupDocs Annotation v2.0 beta consists of new Typewriter and Watermark features, which will take your annotation experience to new heights. The simple work flow for each application lets you complete the desired process quickly and easily. The UI improvements made the apps so intuitive that even a novice user can easily operate our apps without any additional help. We\u0026rsquo;re in the process of constantly improving the apps at GroupDocs, so you can expect more enhancements in 2013 also.\nIntegration with 3rd-Party Storage Solutions In addition to the default, stable storage option from GroupDocs, we offer you multiple storage options to make the storage options more flexible. We\u0026rsquo;ve joined hands with multiple 3rd party storage service providers so that you can now choose your default storage option from a variety of storage providers. You can now set up Windows Azure or Amazon S3 as your default storage service providers from within your GroupDocs account. Also, you can access your DropBox and Box.com files and folders from within GroupDocs.\nIntegration with Multiple Platforms and CMSs 2012 was a busy year for our developers. Apart from enhancing the existing apps, creating new versions, etc., our developers were busy designing efficient plugins for multiple platforms and CMSs. Last year, we were able to create plugins for three of our legacy apps, such as GroupDocs Viewer, GroupDocs Annotation and GroupDocs Assembly. We\u0026rsquo;ve created these plugins for many different platforms including .NET, Java, PHP, Pearl, Ruby, Python, JS, etc. On top of that, our developers made sure to extend our reach to almost all the available CMSs. Following are the details of our plugin integrations:\nGroupDocs Viewer IntegrationsDuring 2012, we\u0026rsquo;ve introduced GroupDocs Viewer plugin to the following platforms: WordPress Atlassian Confluence Concrete5 Pligg Alfresco Orchard Drupal Kentico Joomla DotNetNuke Radiant CMSMS Plone ExpressionEngine Textpattern Magento OpenCMS Jahia null GetSimple GroupDocs Annotation Integrations During 2012, we\u0026rsquo;ve introduced GroupDocs Annotation plugin to the following platforms: * Radiant * DotNetNuke * Orchard * WordPress * Umbraco * Contao * Textpattern * Magento * Plone * OpenCMS * Magnolia * Pligg * eZPublish * SugarCRM * null * Alfresco\nGroupDocs Assembly IntegrationsDuring 2012, we\u0026rsquo;ve introduced GroupDocs Assembly plugin to the following platforms: Radiant Pligg Textpattern Magento Plone Umbraco Confluence Liferay OpenCMS Magnolia Jahia Alfresco null Looking Forward to 2013 Reflecting on the previous year, we\u0026rsquo;re happy that we hit all the milestones that we set for 2012. We acknowledge your encouragement and support behind our success. We will continue to grow our operation, provide excellent customer support, and proceed with innovations to maintain and continue this kind of success in 2013 too. With a number of integrations and enhancements in the pipeline, we\u0026rsquo;re looking forward to a bright 2013. Your support and feedback are important for us. Talk to us through our official feedback forum or Live Chat support. Stay tuned for our blogs and newsletters, which bring you all enhancements happening in GroupDocs. Wish you all a happy \u0026amp; prosperous New Year!\n","permalink":"https://blog.groupdocs.com/viewer/a-year-of-great-achievements-2012-in-review/","summary":"For GroupDocs, 2012 was a significant year marked by milestones; we\u0026rsquo;re proud and grateful to end a busy year with great achievements. With constant enhancements, we were able to prove that we\u0026rsquo;re an integral part of the document management world. In 2012, we have introduced enhanced versions of our apps with added features from time to time; created a variety of plugins for multiple platforms; integrated many different storage options with GroupDocs; introduced flexible API SDKs to help you integrate our apps to your existing applications; and were able build a strong base of valuable customers, ranging from small to mid to enterprise levels; amongst many others.","title":"A Year of Great Achievements: 2012 in Review"},{"content":"Great news for all reviewers! We’ve introduced the new GroupDocs Annotation user interface to make your document annotation process easier and faster. With these new enhanced UI and features, you are now able to annotate and collaborate on documents quickly. GroupDocs Annotation is a service that lets you perform document collaboration easily. You and your colleagues can annotate documents and perform document collaboration in real time. You can make suggestions or add the required comments online at the same time, which makes the review process much faster. However, if you prefer a more traditional approach like everyone takes their turn as per the availability, that works just fine as well.\nAnnotate or perform document collaboration using the enhanced UI We’re constantly enhancing the look and feel of our apps to add more advanced features to them. This way, we aim at improving user experience at GroupDocs. With this in mind, we’ve made necessary changes to our old Annotation UI and introduced a new improved UI with new efficient features to supplement it. [caption id=\u0026ldquo;attachment_1145\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Annotate and collaborate on documents using GroupDocs Annotation\u0026rdquo;]\r[/caption] In this enhanced version, you can find and access all comments in the comments area. You can view comment summary, comment details as well as the document collaboration option just right of your annotated page. Using the invite option, you can invite as many reviewers as required. All you need to do is just share the link directly or invite them through email. You can print, download or export the annotated document. You can export the annotated document with or without the added comments. Also, you can embed the annotated document to your website and invite others to perform document review on the document.\nFamiliar annotation tools let you easily annotate documents We’ve retained the easy-to use annotate tools, such as Text Annotation, Point Annotation, Area Annotation, Polyline Annotation, and Strikeout Text. There is no need to explain about these tools as there are pretty self-explanatory. [caption id=\u0026ldquo;attachment_1146\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Annotate documents using a familiar set of annotation tools\u0026rdquo;]\r[/caption]\nNew Features Newly added are the Typewriter tool and the Watermark tool. Typewriter tool lets you add text to a document. Watermark tool lets you add watermark to all pages of a document. This new watermark feature improves document security. [caption id=\u0026ldquo;attachment_1165\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Newly added features spice up your annotation experience\u0026rdquo;]\r[/caption]\nConclusion Addition of two exceptional features (Typewriter and Watermark tool) along with the improved export, print, and download options will take your online document annotation experience to new heights. So, why wait! Sign in to your GroupDocs Annotation dashboard and experience the new improved UI of GroupDocs Annotation right now. We\u0026rsquo;re open to your valuable feedback and suggestions. Please talk to us using our Live Chat support or official feedback forum. Stay connected with our blog and newsletter to get updates regarding all GroupDocs enhancements.\n","permalink":"https://blog.groupdocs.com/total/annotate-or-collaborate-on-documents-easily-using-the-new-enhanced-groupdocs-annotation/","summary":"Great news for all reviewers! We’ve introduced the new GroupDocs Annotation user interface to make your document annotation process easier and faster. With these new enhanced UI and features, you are now able to annotate and collaborate on documents quickly. GroupDocs Annotation is a service that lets you perform document collaboration easily. You and your colleagues can annotate documents and perform document collaboration in real time. You can make suggestions or add the required comments online at the same time, which makes the review process much faster.","title":"Annotate or Collaborate on Documents Easily Using the New Enhanced GroupDocs Annotation"},{"content":"Good news from GroupDocs to all box.com users. We\u0026rsquo;ve integrated box.com with GroupDocs. Now, you can access all your box.com files and folders from within your GroupDocs account. Use your box.com documents with GroupDocs\u0026rsquo; document management apps suite to take your document management experience to new heights. [caption id=\u0026ldquo;attachment_1130\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Announcing box.com integration with GroupDocs\u0026rsquo; document management apps suite\u0026rdquo;]\r[/caption] Integration is super simple. Simply use the Box.com button in the Integration area of the My Account page and log in to box.com. When you perform this step, the integration happens automatically. Once it is integrated, a Boxnet Shortcut folder is created in the file/folder area of GroupDocs\u0026rsquo; main dashboard. Open this folder to access and use your box.com files and folder from within the GroupDocs account. For more information, please refer to our in-depth help documentation: Integration of GroupDocs with box.com. [caption id=\u0026ldquo;attachment_1131\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Integration of GroupDocs with box.com opens up various document management possibilities\u0026rdquo;]\r[/caption] GroupDocs provides you with next-generation document management solutions that let you share, manage, and collaborate on documents online. Moreover, business of all sizes can find required document management solutions under one roof. Integration of box.com lets you access and use your box.com documents with GroupDocs apps suite to perform multiple tasks. For example, you can use your box.com documents for online document viewing, digital signature execution, document assembly, document automation, document collaboration, document comparison, document annotation, online document conversion, etc. Availability of all document management solutions under a single roof makes your document management experience easier and flexible. [caption id=\u0026ldquo;attachment_1132\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Access your Box files and folders from within GroupDocs\u0026rdquo;]\r[/caption] So why wait, integrate your box.com account with GroupDocs and use your documents with our apps suite:\nGroupDocs Viewer: select your box.com documents and view them online using this efficient, all-in-one viewer. View documents online in great quality; multiple file-format support enables you to use this online document viewer as PDF viewer, Word viewer, Excel viewer and so on. GroupDocs Signature: get your box.com documents signed online in a jiffy. Digital signature execution has never been so easy. GroupDocs Conversion: get your box.com documents converted using our efficient document conversion app. Perform online document conversion of all business as well as common file formats quickly and easily. GroupDocs Annotation: perform document annotation and document collaboration of box.com documents using our online document annotation app. GroupDocs Assembly: perform document automation and document assembly on your box.com documents effectively. This lets you save your time and effort. GroupDocs Comparison: perform automated document comparison to find differences quickly. Your support and feedback are important for us. Talk to us through our official feedback forum or Live Chat support. Stay tuned for our blog and newsletter, which brings you all enhancements happening in GroupDocs.\n","permalink":"https://blog.groupdocs.com/viewer/announcing-box-com-integration-with-groupdocs-document-management-apps-suite/","summary":"Good news from GroupDocs to all box.com users. We\u0026rsquo;ve integrated box.com with GroupDocs. Now, you can access all your box.com files and folders from within your GroupDocs account. Use your box.com documents with GroupDocs\u0026rsquo; document management apps suite to take your document management experience to new heights. [caption id=\u0026ldquo;attachment_1130\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Announcing box.com integration with GroupDocs\u0026rsquo; document management apps suite\u0026rdquo;]\r[/caption] Integration is super simple. Simply use the Box.com button in the Integration area of the My Account page and log in to box.","title":"Announcing box.com Integration with GroupDocs' Document Management Apps Suite"},{"content":"GroupDocs\u0026rsquo; Viewer package for Umbraco CMS is now available for download from our Marketplace. GroupDocs Viewer is a platform and software independent online document viewer that lets you open all common document formats straight in a web-browser and from any web-enabled device. With this plugin you can integrate the GroupDocs Viewer into your Umbraco website and then publish documents on any web-pages within your website. Your website visitors can then view documents directly on your Umbraco web-pages. [caption id=\u0026ldquo;attachment_1127\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;GroupDocs\u0026rsquo; online document viewer module for Umbraco is announced\u0026rdquo;]\r[/caption]\nSupported File Formats GroupDocs\u0026rsquo; online document viewer supports all of the most widely used file formats:\nThe app can serve as an online DOC viewer - it supports all word processing formats, including DOC, DOCX, TXT, RTF, ODT. It can be used as an online PowerPoint viewer - both PPT and PPTX presentations are supported. Also, you can view spreadsheets (XLS, XLSX), portable files (PDF) and even image files (JPG, BMP, GIF, TIFF). Installation Please note: to start using GroupDocs\u0026rsquo; online document viewer theme on your Umbraco website, you need to sign up with us first. We provide a free 14 days trial so you can test the viewer features before purchasing it. For the information on plugin installation and use, please refer to our in-depth help: Integrating GroupDocs Viewer Plugin with Umbraco. For more information on the GroupDocs\u0026rsquo; online document viewer features and benefits, please see GroupDocs Viewer Home Page. Have any questions? Feel free to contact us for help.\n","permalink":"https://blog.groupdocs.com/total/online-document-viewer-plugin-for-umbraco/","summary":"GroupDocs\u0026rsquo; Viewer package for Umbraco CMS is now available for download from our Marketplace. GroupDocs Viewer is a platform and software independent online document viewer that lets you open all common document formats straight in a web-browser and from any web-enabled device. With this plugin you can integrate the GroupDocs Viewer into your Umbraco website and then publish documents on any web-pages within your website. Your website visitors can then view documents directly on your Umbraco web-pages.","title":"Online Document Viewer Plugin for Umbraco is Now Available for Download"},{"content":"Great news for all Drupal CMS users! We have released a PDF viewer module for Drupal. The module allows you to seamlessly embed PDF documents, as well as PowerPoint presentations, Excel spreadsheets, word processing documents and images into web-pages on your Drupal website. The PDF document viewer module for Drupal utilizes our GroupDocs Viewer\u0026rsquo;s functionality and provides you with the following benefits:\nYour website visitors don\u0026rsquo;t need any browser plug-ins or Flash to view documents hosted with our document viewer. You just put a document on your Drupal web-page and visitors can view it right away. High-fidelity rendering. Embedded documents look just like the originals. Layout, formatting and fonts are retained and text looks sharp. While viewing documents, users can quickly turn pages with the Go Forward/Backward buttons, just like in a slideshow. Also users can jump straight to a certain page and preview pages with thumbnails. GroupDocs Viewer doesn\u0026rsquo;t convert documents to images, but renders them as real text documents. Your visitors will be able to copy text right from the embedded documents or search for a particular text within the document. Users can zoom in or out of documents, as well as print and download the original file right from your Drupal web-pages. Options like text copying, document printing and downloading can be disabled so that users can\u0026rsquo;t copy the document. Finally, thanks to the newly released module, you can easily integrate the GroupDocs Viewer\u0026rsquo;s functionality into your Drupal website and start hosting PDF and Office documents on your web-pages in minutes. Supported Document Formats GroupDocs document viewer module for Drupal supports almost all common business formats. Documents with the following formats can be embedded to your web-pages:\nPDF documents Word processing documents (DOC, DOCX, TXT, RTF, ODT, etc.) PowerPoint presentations (PPT, PPTX) Image files (JPG, BMP, GIF, TIFF) Installing the Document Viewer Module to Your Drupal Website For a detailed instruction on how to install and use the module, please refer to our in-depth help: Integrating GroupDocs Viewer Module with Drupal Please note: To use the document viewer module, you need to sign up with us first. But don\u0026rsquo;t worry, we provide a free 14-day trial, so that you can test the viewer first.\nMore Useful Information About Our Document Viewer Module for Drupal Please see a live demo with documents of various formats embedded to our own web-page. Official GroupDocs Viewer page on Drupal Marketplace. Also, please see more details about the features and benefits of our online document viewer. Have any questions? Feel free to contact us for help. ","permalink":"https://blog.groupdocs.com/total/pdf-document-viewer-module-for-drupal/","summary":"Great news for all Drupal CMS users! We have released a PDF viewer module for Drupal. The module allows you to seamlessly embed PDF documents, as well as PowerPoint presentations, Excel spreadsheets, word processing documents and images into web-pages on your Drupal website. The PDF document viewer module for Drupal utilizes our GroupDocs Viewer\u0026rsquo;s functionality and provides you with the following benefits:\nYour website visitors don\u0026rsquo;t need any browser plug-ins or Flash to view documents hosted with our document viewer.","title":"PDF Document Viewer Module for Drupal is Now Available for Download"},{"content":"We are excited to introduce the GroupDocs.Viewer block for Moodle CMS. With this block installed, you can embed GroupDocs\u0026rsquo; online document viewer widget into Moodle webpages to display PDF, Microsoft Office and other common document types on your website. You Moodle website visitors can then view documents online directly on your website. What is important, end users don’t have to install any software. Documents embedded to your website with GroupDocs.Viewer can be viewed using any standard web-browser. [caption id=\u0026ldquo;attachment_1069\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Announcing GroupDocs\u0026rsquo; online document viewer block for Moodle\u0026rdquo;]\r[/caption] One of the key GroupDocs.Viewer’s benefits is that it\u0026rsquo;s platform and software independent. This helps you tackle cross-platform and cross-version compatibility issues. With GroupDocs.Viewer, you don\u0026rsquo;t have to worry about what operating system or software your website visitors use.\nSupported File FormatsGroupDocs.Viewer supports virtually all common business document types, including: Portable Document Format: PDF Microsoft Word: DOC, DOCX, DOCM, DOT, DOTX, DOTM Microsoft Excel: XLS, XLS2003, XLSX, XLSM, XLSB, XML Microsoft PowerPoint: PPT, PPTX, PPS, PPSX Microsoft Visio: VSD, VDX, VSS, VSX, VST, VTX, VSDX, VDW Microsoft Project: MPP, MPT Microsoft Outlook: MSG, EML, EMLX OpenDocument Formats: ODT, OTT, ODS, ODP And many more Regardless of the file format, GroupDocs’ online document viewer ensures high-fidelity document rendering with retained layout, styles and formatting. And thanks to the native text rendering, you can search for text when viewing documents online, as well as select and copy text to clipboard - all from within a web-browser.\nInstallationFor information on how to integrate GroupDocs.Viewer into your Moodle website, please refer to our in-depth help documentation. ","permalink":"https://blog.groupdocs.com/viewer/announcing-groupdocs-online-document-viewer-block-for-moodle/","summary":"We are excited to introduce the GroupDocs.Viewer block for Moodle CMS. With this block installed, you can embed GroupDocs\u0026rsquo; online document viewer widget into Moodle webpages to display PDF, Microsoft Office and other common document types on your website. You Moodle website visitors can then view documents online directly on your website. What is important, end users don’t have to install any software. Documents embedded to your website with GroupDocs.Viewer can be viewed using any standard web-browser.","title":"Announcing GroupDocs Online Document Viewer Block for Moodle"},{"content":"Great news for all ExpressionEngine CMS users! We\u0026rsquo;ve released an efficient GroupDocs Viewer module for ExpressionEngine CMS. This plugin allows you to embed GroupDocs\u0026rsquo; high-fidelity online document viewer together with selected documents to ExpressionEngine pages. As GroupDocs\u0026rsquo; online document viewer supports many different formats, visitors to ExpressionEngine websites can now effortlessly view documents of multiple formats online. [caption id=\u0026ldquo;attachment_1047\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Announcing GroupDocs\u0026rsquo; online document viewer module for ExpressionEngine\u0026rdquo;]\r[/caption] GroupDocs Viewer is an efficient and flexible online document viewer. It renders documents online simply using a browser. Uploaded documents are rendered in the exact same quality and style as the original document. It intuitive and flexible so you can embed all business and common file formats. GroupDocs Viewer is so versatile that you can use this all-in-one vieweras an online: PDF viewer Word viewer (DOC, DOCX, TXT, RTF, ODT) PowerPoint viewer (PPT, PPTX) Spreadsheet viewer (XLS, XLSX) Image file viewer (JPG, BMP, GIF, TIFF) Install this plugin to ExpressionEngine CMS using the following steps:\nDownload and unzip the GroupDocs Viewer plugin for ExpressionEngine from the GroupDocs Marketplace. Copy and paste the GroupDocs Viewer plugin folder to \\expressionengine\\third_party folder on the server. Log in to the ExpressionEngine admin panel and install Embedded GroupDocs Viewer from Fieldtypes. [caption id=\u0026ldquo;attachment_971\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Installing GroupDocs\u0026rsquo; online document viewer in ExpressionEngine CMS\u0026rdquo;]\r[/caption] Once installed, create a channel, add a custom channel field, edit your template to include the new custom field, configure the embed code, and then publish the page. You can now see the embedded viewer and document in action. [caption id=\u0026ldquo;attachment_973\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;View documents online in high quality using GroupDocs\u0026rsquo; online document viewer\u0026rdquo;]\r[/caption] GroupDocs’ online document viewer is handy when considering cross-platform or cross-version compatibility. As it permits document uploads of several different file formats, you can use this efficient online document viewer as a PDF viewer, Word viewer, Excel viewer, etc. This is possible regardless of the software or operating system you use. This unique feature makes GroupDocs Viewer suitable for all industries, for example, government, healthcare, educational institutions, business, and many others. Install this module and let your ExpressionEngine website visitors use our all-in-one online document viewer as a PDF viewer, a Word viewer, or a spreadsheet viewer. For more information, please refer to our in-depth help documentation**: Integrating GroupDocs Viewer Plugin with ExpressionEngine**. We value your support and feedback. Please use our Live Chat support or official feedback forum to talk to us. Get in touch with our blog and newsletter to find the latest info regarding GroupDocs enhancements.\n","permalink":"https://blog.groupdocs.com/viewer/announcing-groupdocs-online-document-viewer-module-for-expressionengine/","summary":"Great news for all ExpressionEngine CMS users! We\u0026rsquo;ve released an efficient GroupDocs Viewer module for ExpressionEngine CMS. This plugin allows you to embed GroupDocs\u0026rsquo; high-fidelity online document viewer together with selected documents to ExpressionEngine pages. As GroupDocs\u0026rsquo; online document viewer supports many different formats, visitors to ExpressionEngine websites can now effortlessly view documents of multiple formats online. [caption id=\u0026ldquo;attachment_1047\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Announcing GroupDocs\u0026rsquo; online document viewer module for ExpressionEngine\u0026rdquo;]\r[/caption] GroupDocs Viewer is an efficient and flexible online document viewer.","title":"Announcing GroupDocs Online Document Viewer Module for ExpressionEngine"},{"content":"Good news for Orchard CMS users! We’ve introduced a GroupDocs Annotation app plugin for Orchard. This plugin lets you embed GroupDocs\u0026rsquo; online document annotation app as well as selected documents to Orchard pages. Once the document is embedded, you can annotate the document using GroupDocs\u0026rsquo; efficient annotation app. Annotate your documents using easy-to-use tools or perform document collaboration online by sharing documents with your colleagues. [caption id=\u0026ldquo;attachment_960\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Announcing GroupDocs Annotation Plugin for Orchard\u0026rdquo;]\r[/caption] GroupDocs Annotation is a powerful online document annotation app that allows you to view and annotate documents online. You can annotate text-based documents as well as images. Its online annotation functionality makes GroupDocs Annotation a unique tool for document collaboration. Its intuitive dashboard provides you with a simple document annotation workflow. Also, the annotation tools are really simple and self-explanatory. GroupDocs Annotation supports annotation of all business and common file formats. This lets you overcome cross-version and cross-platform issues. GroupDocs Annotation can be used as an online PDF annotator, Word annotator, and Excel annotator, to mention a few. It’s very easy to install and use this module/plugin with Orchard. There are two ways to install the module:\nDefault installation from the Orchard Gallery: search for GroupDocs Annotation in the gallery and install the plugin directly. Installation using plugin upload: use the Modules tab to browse and upload the plugin from your file directory. After the plugin is uploaded, simply install it by clicking the Install button. [caption id=\u0026ldquo;attachment_1007\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Install GroupDocs\u0026rsquo; annotation app plugin directly from the Orchard Gallery\u0026rdquo;]\r[/caption] Once you complete the installation, create a new content type and add GroupDocs Annotation app as a content part. Configure the required details in the Guid, Frame Width and Frame Height fields. Save and publish to see the GroupDocs\u0026rsquo; efficient online document annotation app live in action. [caption id=\u0026ldquo;attachment_1008\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;View and annotate documents online efficiently in GroupDocs\u0026rsquo; online annotation app\u0026rdquo;]\r[/caption] GroupDocs Annotation is most useful when it comes to document collaboration. You and your colleagues can perform document collaboration by sharing ideas via comments. It lets you work in real-time so that you can instantly view all comments online as they are added or updated. This improves communication, speeds up document reviews, and lets you describe the required changes in real time. Moreover, GroupDocs Annotation\u0026rsquo;s flexibility makes it an ideal solution for various industries. Simply install this plugin and enjoy our all-in-one online document annotation app as a Word annotator, a PDF annotator, or an Excel annotator, amongst many others. To find more information, please refer to our in-depth help documentation, Integrating GroupDocs Annotation Plugin with Orchard. We value your support and feedback. Please use our official feedback forum or Live Chat support to talk to us. Connect with our blog and newsletters; we\u0026rsquo;ll keep you updated about all the latest GroupDocs enhancements.\n","permalink":"https://blog.groupdocs.com/total/announcing-groupdocs-annotation-app-plugin-for-orchard/","summary":"Good news for Orchard CMS users! We’ve introduced a GroupDocs Annotation app plugin for Orchard. This plugin lets you embed GroupDocs\u0026rsquo; online document annotation app as well as selected documents to Orchard pages. Once the document is embedded, you can annotate the document using GroupDocs\u0026rsquo; efficient annotation app. Annotate your documents using easy-to-use tools or perform document collaboration online by sharing documents with your colleagues. [caption id=\u0026ldquo;attachment_960\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Announcing GroupDocs Annotation Plugin for Orchard\u0026rdquo;]\r[/caption] GroupDocs Annotation is a powerful online document annotation app that allows you to view and annotate documents online.","title":"Announcing GroupDocs Annotation App Plugin for Orchard"},{"content":"Good news to all Orchard CMS users! We\u0026rsquo;ve rolled out a module for the Orchard platform, which lets you embed GroupDocs\u0026rsquo; high-fidelity online document viewer as well as selected documents to Orchard pages. No matter what the format is, you can now embed and view documents online using GroupDocs\u0026rsquo; efficient online document viewer. [caption id=\u0026ldquo;attachment_999\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Announcing GroupDocs\u0026rsquo; online document viewer module for Orchard\u0026rdquo;]\r[/caption] GroupDocs Viewer is a powerful online document viewer, which allows you to view documents online simply using a browser. The rendering is so smooth that the uploaded documents exhibit the same quality and style as the original document. The ability to support a variety of business as well as common file formats makes GroupDocs’ online document viewer one of a kind. You can use this ** all-in-one viewer** as an online:\nPDF viewer Word viewer (DOC, DOCX, TXT, RTF, ODT) PowerPoint viewer (PPT, PPTX) Spreadsheet viewer (XLS, XLSX) Image file viewer (JPG, BMP, GIF, TIFF) You can easily install and use this module/plugin with Orchard. There are two ways to install the module:\nDefault installation from Orchard Gallery: search for GroupDocs in the gallery and install the plugin directly. Installation through plugin upload: use the Modules tab to browse and upload the plugin from your file directory. Once uploaded, simply install it using the Install button. [caption id=\u0026ldquo;attachment_1011\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Installing GroupDocs\u0026rsquo; online document viewer from Orchard Gallery\u0026rdquo;]\r[/caption] After the installation, create a new content type and add GroupDocs\u0026rsquo; embedded viewer as a part to it. Enter required details in the Guid, Frame Width and Frame Height fields. Then save and publish it to view the GroupDocs’ online document viewer in action in your Orchard website. [caption id=\u0026ldquo;attachment_1012\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;View documents online in high quality using GroupDocs\u0026rsquo; online document viewer\u0026rdquo;]\r[/caption] Have you run into cross-platform and cross-version issues when performing document collaboration? If your answer is yes, try out GroupDocs\u0026rsquo; efficient online document viewer as it is the answer to these issues. GroupDocs Viewer provides you with an ideal solution, which combines a Word viewer (DOC, DOCX viewer, and Word 2010 viewer), with a PDF viewer, PowerPoint viewer, Excel viewer and many other viewers into a simple, intuitive app. Regardless of the software or OS used, you and your colleagues can perform document collaboration to improve communication and speed up document reviews. This is a unique solution for all sectors, including government, business, banking, financial organizations, healthcare, educational institutions, and more. Why wait? Simply install this plugin to let your Orchard website visitors enjoy our all-in-one online document viewer as a Word viewer, PDF viewer, or an Excel viewer, and many others. If you need more help, please refer to our in-depth help documentation, Integrating GroupDocs Viewer Plugin with Orchard. Your support and feedback are important for us. Talk to us through our official feedback forum or Live Chat support. Get in touch with our blog and newsletters to find out about all the latest GroupDocs enhancements.\n","permalink":"https://blog.groupdocs.com/viewer/announcing-groupdocs-online-document-viewer-module-for-orchard/","summary":"Good news to all Orchard CMS users! We\u0026rsquo;ve rolled out a module for the Orchard platform, which lets you embed GroupDocs\u0026rsquo; high-fidelity online document viewer as well as selected documents to Orchard pages. No matter what the format is, you can now embed and view documents online using GroupDocs\u0026rsquo; efficient online document viewer. [caption id=\u0026ldquo;attachment_999\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Announcing GroupDocs\u0026rsquo; online document viewer module for Orchard\u0026rdquo;]\r[/caption] GroupDocs Viewer is a powerful online document viewer, which allows you to view documents online simply using a browser.","title":"Announcing GroupDocs' Online Document Viewer Module for Orchard"},{"content":"We\u0026rsquo;re excited to announce the release of the GroupDocs Viewer Theme for Tumblr. This theme allows you to embed and host documents of various formats right on your Tumblr web-pages. And thanks to its high-fidelity rendering, the font formatting and layout of the embedded documents is exactly the same as in the original documents. [caption id=\u0026ldquo;attachment_1004\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;GroupDocs\u0026rsquo; online document viewer theme for Tumblr\u0026rdquo;]\r[/caption]\nSupported File Formats You can use the GroupDocs\u0026rsquo; online document viewer theme to host documents literally of all common business formats, including:\nPFD documents; Word processing documents (DOC, DOCX, TXT, RTF, ODT, etc.); PowerPoint presentations (PPT, PPTX); Excel spreadsheets (XLS, XLSX, CSV); Image files (JPG, BMP, GIF, TIFF). Installation Please note: to start using the GroupDocs\u0026rsquo; online document viewer theme on your Tumblr website, you need to register with us first. But don\u0026rsquo;t worry, we provide a free 14-trial so that you can test the apps\u0026rsquo; features before purchasing it. For detailed instructions on how to install GroupDocs\u0026rsquo; online document viewer theme for Tumblr, please refer to our in-depth help. Find more about GroupDocs\u0026rsquo; online document viewer features on the GroupDocs Viewer Home Page. If you have any comments, suggestions or questions, please feel free to contact us.\n","permalink":"https://blog.groupdocs.com/total/online-document-viewer-theme-for-tumblr/","summary":"We\u0026rsquo;re excited to announce the release of the GroupDocs Viewer Theme for Tumblr. This theme allows you to embed and host documents of various formats right on your Tumblr web-pages. And thanks to its high-fidelity rendering, the font formatting and layout of the embedded documents is exactly the same as in the original documents. [caption id=\u0026ldquo;attachment_1004\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;GroupDocs\u0026rsquo; online document viewer theme for Tumblr\u0026rdquo;]\r[/caption]\nSupported File Formats You can use the GroupDocs\u0026rsquo; online document viewer theme to host documents literally of all common business formats, including:","title":"Announcing GroupDocs’ Online Document Viewer Theme for Tumblr"},{"content":"We\u0026rsquo;re excited to announce that Windows Azure has been integrated with GroupDocs. This allows you to setup a new storage provision for storing your GroupDocs files. With this enhancement, you can configure Microsoft Azure as your default storage provider from within GroupDocs and store your files in the Azure container. GroupDocs provides you with flexible storage options, which is an essential element when opting for an efficient document management solution. This integration puts you in charge of selecting your preferred storage provider, making your document management process user friendly and flexible. [caption id=\u0026ldquo;attachment_1019\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Announcing Windows Azure integration with GroupDocs\u0026rsquo; document management solutions\u0026rdquo;]\r[/caption] The GroupDocs-Azure integration brings you various benefits, which are listed below: Upload huge volumes of files to your Azure container, which can then be used with different GroupDocs apps. Authority to select your storage provider, which is a unique feature that adds flexibility to GroupDocs’ document management solutions. Benefit from Azure\u0026rsquo;s advanced data security features. Easily integrate your document management with third-party applications. [caption id=\u0026ldquo;attachment_1020\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Flexible document management: configure your storage provider from within GroupDocs\u0026rdquo;]\r[/caption] The steps to configure Windows Azure as your default GroupDocs provider are straight forward. First, create a Windows Azure account to get primary access key and account name. Once you have collected the required details, log in to GroupDocs to configure these details. The steps are as follows:\nGo to the Storage Provider area on your profile page. Select Azure from the Provider list. Enter your Azure account name in the Account Name field. Enter the primary access key from your Azure account in the Account Key field. Enter a preferred container name for your Azure container in the Container field. Click Apply. One important point here is that you don’t need to create an Azure container on your own. Simply choose a name for the container, and GroupDocs will do the rest. Creating a container in Azure is otherwise a complex task. Please refer to our Integration of GroupDocs with Windows Azure documentation to get an in-depth description of how to integrate with Azure. If you want to make your document management process easy and flexible, register with us and log in to your GroupDocs account to try these enhancements. Your suggestions and feedback are important for us. Please use our Live Chat support or our official feedback forum to talk to us. Get in touch with our newsletters and blog to get updates on all GroupDocs enhancements.\n","permalink":"https://blog.groupdocs.com/total/announcing-windows-azure-integration-with-groupdocs-document-management-solutions/","summary":"We\u0026rsquo;re excited to announce that Windows Azure has been integrated with GroupDocs. This allows you to setup a new storage provision for storing your GroupDocs files. With this enhancement, you can configure Microsoft Azure as your default storage provider from within GroupDocs and store your files in the Azure container. GroupDocs provides you with flexible storage options, which is an essential element when opting for an efficient document management solution. This integration puts you in charge of selecting your preferred storage provider, making your document management process user friendly and flexible.","title":"Announcing Windows Azure Integration with GroupDocs' Document Management Solutions"},{"content":"We\u0026rsquo;re happy to announce that Amazon Web Service (AWS) has been integrated with GroupDocs , which allows us to offer you a new storage provision. You can now choose Amazon S3 as your default storage provider in GroupDocs. With this provision, you can store your files in your Amazon S3 bucket directly. Flexible storage provision is a key factor to consider when selecting document management solutions. With this integration, we make your document management process more flexible. Importantly, it puts you in charge of what storage provider you choose. [caption id=\u0026ldquo;attachment_863\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Announcing AWS integration with GroupDocs\u0026rsquo; document management solutions\u0026rdquo;]\r[/caption] Integration of AWS with GroupDocs offers several benefits: It opens up the possibility of uploading large volumes of files for use as input to the various GroupDocs applications. It offers the flexibility to choose your service provider. That is, instead of offering a single, default choice, we let you decide on your storage service provider. it lets you take advantage of AWS\u0026rsquo; enhanced data security options. It makes it easy to integrate your document management with third-party applications. [caption id=\u0026ldquo;attachment_1023\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;Configure Amazon S3 as your default storage provider from within GroupDocs\u0026rdquo;]\r[/caption] GroupDocs lets you configure Amazon S3 as a storage provider from within your GroupDocs account. To do so, you need to have an AWS account and an Amazon S3 bucket to store the files in. After creating an AWS/Amazon S3 account, you get security credentials: the access key ID and the secret access key. Then, create an S3 bucket for your GroupDocs files. Give the bucket a name that relates to GroupDocs so you can identify it easily. Once you have the security credentials and have created an S3 bucket, log in to GroupDocs to configure these details in your account. Go to the Storage Provider area of your profile page. Select Amazon S3 from the Provider list, enter the access key ID, secret access key, and bucket name in the required fields and save the changes. It\u0026rsquo;s done! You\u0026rsquo;ve just configured Amazon S3 as your default GroupDocs storage service provider. Please refer to our Integration of GroupDocs with Amazon S3 documentation to get a detailed description of how to integrate with AWS. We\u0026rsquo;ve taken the necessary steps to make your document management process easy and flexible. So, why wait? Register and log in to your GroupDocs account to try these enhancements. We value your suggestions and feedback; please use our Live Chat support or our official feedback forum to talk to us. Get in touch with our newsletters and blog; we\u0026rsquo;ll keep you updated about all the enhancements happening in GroupDocs.\n","permalink":"https://blog.groupdocs.com/total/announcing-aws-integration-with-groupdocs-document-management-solutions/","summary":"We\u0026rsquo;re happy to announce that Amazon Web Service (AWS) has been integrated with GroupDocs , which allows us to offer you a new storage provision. You can now choose Amazon S3 as your default storage provider in GroupDocs. With this provision, you can store your files in your Amazon S3 bucket directly. Flexible storage provision is a key factor to consider when selecting document management solutions. With this integration, we make your document management process more flexible.","title":"Announcing AWS Integration with GroupDocs' Document Management Solutions"},{"content":"Good news to all Dropbox users - we\u0026rsquo;ve integrated GroupDocs\u0026rsquo; online document management apps with Dropbox! So you can now view, sign, annotate, assemble, compare, convert and share your Dropbox documents and collaborate online from any web-enabled device using only a web-browser. [caption id=\u0026ldquo;attachment_796\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;554\u0026rdquo; caption=\u0026ldquo;Sync your Dropbox account with GroupDocs online document management apps\u0026rdquo;]\r[/caption] To find detailed instructions on how to access and work with Dropbox files from a GroupDocs account, please see the help documentation. [caption id=\u0026ldquo;attachment_1030\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;554\u0026rdquo; caption=\u0026ldquo;Access your Dropbox documents for online collaboration right from your GroupDocs account\u0026rdquo;]\r[/caption] Once your GroupDocs account synchronized with DropBox, you\u0026rsquo;ll be able to work and collaborate on the documents stored in Dropbox right from your GroupDocs account, using the following online document management apps: GroupDocs Viewer - a universal online document viewer that allows you to view word processing files (including DOC, DOCX, TXT, ODT, etc), PDF documents, PowerPoint presentations (PPT, PPTX), Excel spreadsheets and images (JPG, BMP, GIF, TIFF). All from a web-browser, without the need of installing the software that was used to create the files. GroupDocs Annotation - a handy tool for collaborative review of Dropbox documents. With this tool you can annotate PDF documents, word processing files and images right in a web browser by adding comments, highlighting text, marking up images, etc. GroupDocs Conversion - an online document converter that lets you convert back and forth between over 25 file formats. For example, you can convert Excel files to PDF documents, or ODT to DOCX - all online and in seconds. GroupDocs Comparison - compare two versions of the same document online to check for differences between different revisions. It allows you to compare Word documents, for example, or PDF files, right in your favorite web-browser. GroupDocs Signature - a secure and legally binding online signature service which allows you to sign Dropbox documents online on any web-enabled device. With GroupDocs Signature you can both place your own signature online and invite partners to sign documents through a web browser. GroupDocs Assembly - an online document assembly service that allows merging fields (name, date, signature, etc.) into a document template. [caption id=\u0026ldquo;attachment_798\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;554\u0026rdquo; caption=\u0026ldquo;Dropbox files are displayed within the Dropbox Shortcut folder in GroupDocs\u0026rdquo;]\r[/caption] Please find more detailed information on GroupDocs\u0026rsquo; online document management apps. We appreciate your comments and suggestions. Please feel free to contact us.\n","permalink":"https://blog.groupdocs.com/total/groupdocs-online-document-management-apps-integrated-with-dropbox/","summary":"Good news to all Dropbox users - we\u0026rsquo;ve integrated GroupDocs\u0026rsquo; online document management apps with Dropbox! So you can now view, sign, annotate, assemble, compare, convert and share your Dropbox documents and collaborate online from any web-enabled device using only a web-browser. [caption id=\u0026ldquo;attachment_796\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;554\u0026rdquo; caption=\u0026ldquo;Sync your Dropbox account with GroupDocs online document management apps\u0026rdquo;]\r[/caption] To find detailed instructions on how to access and work with Dropbox files from a GroupDocs account, please see the help documentation.","title":"GroupDocs' Online Document Management Apps Suite Integrated with Dropbox"},{"content":"We\u0026rsquo;re excited to announce the release of our new GroupDocs Viewer plugin (Version 1.0) for Atlassian Confluence. The GroupDocs Viewer plugin is now available for download in the Atlassian Marketplace or you can simply search and install it directly from your Confluence editor. [caption id=\u0026ldquo;attachment_1033\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;552\u0026rdquo; caption=\u0026ldquo;Announcing GroupDocs Viewer plugin for Atlassian Confluence\u0026rdquo;]\r[/caption] GroupDocs Viewer is an efficient online document viewer, which lets you view documents online using your browser. It supports multiple file formats and doesn\u0026rsquo;t require the original software that a document was created in. GroupDocs Viewer supports almost all common file formats presently available. In short, GroupDocs Viewer is an online: PDF viewer Word viewer (DOC, DOCX, TXT, RTF, ODT) PowerPoint viewer (PPT, PPTX) Spreadsheet viewer (XLS, XLSX) Image file viewer (JPG, BMP, GIF, TIFF) Simply install and activate the GroupDocs Viewer plugin to enjoy the functionality of a PDF viewer, Word viewer, or a PowerPoint viewer from within your Confluence editor. With GroupDocs Viewer plugin installed, you can simply embed files or folders on your Confluence pages, so all your website visitors can view documents online or access and use the folders using the GroupDocs Viewer. [caption id=\u0026ldquo;attachment_1032\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;552\u0026rdquo; caption=\u0026ldquo;Embedding the GroupDocs File and Folder macros in Confluence\u0026rdquo;]\r[/caption] When embedding a file or folder using our online document viewer, your visitors can view them just like they do on GroupDocs. [caption id=\u0026ldquo;attachment_1034\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;552\u0026rdquo; caption=\u0026ldquo;View Documents online in your Confluence pages just like the way you view them on GroupDocs\u0026rdquo;]\r[/caption] No additional add-ons, no software: simply click and read. After the installation, using this plugin to embed a file or folder is as simple as embedding a YouTube or Vimeo video. [caption id=\u0026ldquo;attachment_1035\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;552\u0026rdquo; caption=\u0026ldquo;Access and view your GroupDocs folders and documents from within Confluence\u0026rdquo;]\r[/caption] Why wait? Download the GroupDocs Viewer plugin for Confluence now and let your Confluence page visitors access and view documents online with ease. Please refer to our Integrating GroupDocs Viewer Plugin with Confluence documentation to get online help on how to download, install, configure and use the GroupDocs Viewer plugin with your Confluence editor. We value your feedback on our new plugin; use our Live Chat support or our official feedback forum to talk to us. Get in touch with our blog and newsletter; we\u0026rsquo;ll keep you updated on all GroupDocs enhancements.\n","permalink":"https://blog.groupdocs.com/viewer/announcing-groupdocs-viewer-plugin-for-atlassian-confluence/","summary":"We\u0026rsquo;re excited to announce the release of our new GroupDocs Viewer plugin (Version 1.0) for Atlassian Confluence. The GroupDocs Viewer plugin is now available for download in the Atlassian Marketplace or you can simply search and install it directly from your Confluence editor. [caption id=\u0026ldquo;attachment_1033\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;552\u0026rdquo; caption=\u0026ldquo;Announcing GroupDocs Viewer plugin for Atlassian Confluence\u0026rdquo;]\r[/caption] GroupDocs Viewer is an efficient online document viewer, which lets you view documents online using your browser.","title":"Announcing GroupDocs Viewer Plugin for Atlassian Confluence"},{"content":"Every day you spend most of your time in checking secure email attachments. Discarding the ones you don’t need and managing the ones you require. If you try to view or manage your documents online using a web-based document management service, various risks and problems kick in. For example,\nThe online service does not support your required file formats. You might have to compromise on the layout and formatting of the documents. Navigating through your online documents might not be very user friendly. As it is web-based, so it can be accessed by anyone. So it has to be extremely secure. GroupDocs Viewer: The Solution GroupDocs team is determined to bring you the highly secure and most affordable tools available for document management. Our GroupDocs Viewer application, not only roles out any chances of above listed risks but also takes your document management to a whole new level.\nIt offers all the most common business file formats. It offers high-fidelity rendering that retains the original layout and formatting of the documents. It offers a highly intuitive user interface that makes the application learning as well document navigation a child’s play. As it is part of a whole Suite of documentation management applications, such has GroupDocs Signature, so it offers a highly reliable industry-standard security. Salient Features of GroupDocs Viewer Some of the salient features of GroupDocs Viewer are as follows:\nNo need to install any software or extension. Just sign up, sign in and you are good to go. As it is a web-based online solution so it supports cross-platform, cross-browser and cross-version compatibility. Supports vast range of file formats (DOC, DOCX, TXT, RTF, ODT, PPT, PPTX, XLS, XLSX, PDF, JPG, BMP, GIF, TIFF). Can be used as an MS Office/PDF file viewer. Easy navigation; using thumbnails or go to a specific page or simply use mouse wheel to scroll through the document. Built-in search feature that lets quickly look for the required words and phrases. Lets you embed a document on your website or web application. It is fun and easy. Zoom in/out to pre-defined standard sizes as well percentage increments/decrements. Print the document to keep a hard copy. Download the document to keep an offline copy. Easy access to other GroupDocs Apps, such as GroupDocs Comparison, GroupDocs Signature. Readily available user documentation for quick reference. World-class support team available to address your queries and concerns over live chat support. Official feedback forum to reach out to us and share your ideas, suggestions etc. View your documents securely with web-based GroupDocs Viewer\nGroupDocs Viewer is a next generation secure online document viewer that can effectively be used in all types of businesses. You may check this detailed piece of writing by one of our colleagues to know how GroupDocs Viewer can help various businesses, such as financial companies as well as healthcare, educational and government institutions, to gain more control over their document management and move to a more robust paperless process to boost productivity. And with its free subscription, you have nothing to lose. Once you decide to move on with us you can choose from one of our reasonably affordable packages. We encourage you to sign in right now and experience the future of document management by using GroupDocs Apps Suite. If you do not have an account as yet, please sign up now. Kindly also keep us updated with your valuable feedback by posting your comments, suggestions, and questions at our official feedback community. Stay tuned for more at GroupDocs blog.\n","permalink":"https://blog.groupdocs.com/total/view-your-documents-securely-with-web-based-groupdocs-viewer/","summary":"Every day you spend most of your time in checking secure email attachments. Discarding the ones you don’t need and managing the ones you require. If you try to view or manage your documents online using a web-based document management service, various risks and problems kick in. For example,\nThe online service does not support your required file formats. You might have to compromise on the layout and formatting of the documents.","title":"View Your Documents Securely with Web-Based GroupDocs Viewer"},{"content":"GroupDocs document management suite allows you to view, annotate, compare, assemble, digitally sign and share your documents in the cloud. As previously been announced, GroupDocs Annotation is one of our flagship applications that take the peer/group-review to a whole new level by providing you and your colleagues an easy way to view and share review comments in real-time. Proof-reading has never been so easy and fun! Be it real-time or traditional way of reviewing the documents, GroupDocs Annotation is all that you require to collaboratively perform a document review at anytime, from anywhere. A set of cool features makes GroupDocs Annotation one of the best and most affordable PDF annotation tools currently available in the market. Its easy work-flows as well as intuitive user interface make it a breeze to learn and fun to use. Our Dev Gurus are continuously refining the GroupDocs Application Suite to bring you more exciting features every now and then. More recently, we have added a new feature to GroupDocs Annotation that lets you export the annotated PDF with the comments and annotations in place. These notes, annotations and comments then become part of this new exported file and can be viewed in any popular PDF reader. More excitingly, it supports various types of annotations, such as Text annotation, Area annotation, Polyline annotation etc to suite your requirements. Each annotation is exported with the email address of the reviewer so you know that whose opinion is what. Also it greatly helps in keeping an offline record of all different “reviewed” versions of a particular document.\nFig. 1 : Export PDF files with annotations\nThe work-flow of this powerful feature is so easy to use that it takes only one click to export the annotated PDF file to your local drive. An automatically generated file downloads to your local machine each time you click the Export button. So you may keep as many versions of an annotated file as you require and make sure that you don\u0026rsquo;t miss any important review comment.\nFig. 2: One-click export feature\nWe are hopeful that this feature will be very useful for all of you folks whom want to benefit from the true power of collaboration. So why wait?\u0026hellip;Please sign in to GroupDocs Apps now to get a first-hand experience. In case you do not have an account at GroupDocs as yet, please sign up. Please also keep us updated with your valuable feedback by posting your comments, suggestions, questions at our official feedback community. Stay tuned for more at GroupDocs blog.\n","permalink":"https://blog.groupdocs.com/total/groupdocs-annotation-now-supports-exporting-annotations-for-pdf-documents/","summary":"GroupDocs document management suite allows you to view, annotate, compare, assemble, digitally sign and share your documents in the cloud. As previously been announced, GroupDocs Annotation is one of our flagship applications that take the peer/group-review to a whole new level by providing you and your colleagues an easy way to view and share review comments in real-time. Proof-reading has never been so easy and fun! Be it real-time or traditional way of reviewing the documents, GroupDocs Annotation is all that you require to collaboratively perform a document review at anytime, from anywhere.","title":"GroupDocs Annotation now supports Exporting Annotations for PDF Documents"},{"content":"Introduction We\u0026rsquo;ve recently introduced a set of new pricing plans for our document management solutions. Our objective is to make GroupDocs apps appealing to all types of users or groups, regardless of their size. We have launched these new plans after collecting valuable feedback from our customers. [caption id=\u0026ldquo;attachment_646\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;632\u0026rdquo; caption=\u0026ldquo;Fig.1: GroupDocs introduced new pricing plans for its document management solutions\u0026rdquo;]\r[/caption]\nPricing Plan Types As well as the Free plan, we have three other pricing plans:\nIndividual: Available for $10 per month. This plan is ideal for one user. It includes: 1 GB storage capacity, 200 monthly document tokens, 5000 API calls and much more. In addition, you can add as many documents as you like as long as you stay within the specified storage capacity. You also get access to all of the GroupDocs apps.\nGroup: Available for $19 per month for up to 9 users. This plan exactly matches the requirements of small to mid-sized group. It includes: 3 GB storage capacity per user, unlimited monthly document tokens, 10000 API calls per user and so on. This plan also lets you use all the GroupDocs apps.\nEnterprise: Available for $24 per month for between 10 and 50 users. This plan starts with 10 users and has an upper limit of 50 users. However, if you want more users, our sales team can help you out. This plan is tailor-made for enterprises with many employees. This plan includes 5 GB storage capacity per user, unlimited monthly document tokens, unlimited API calls per user, etc., in addition to all the features available to the other two plans. The Enterprise plan does not put restrictions on any feature.\nWe offer world-class security to all our plans by ensuring 256-bit SSL protection, making all your transactions extremely protected. All these plans are available for 1 month free trial before you start paying. So this 30 days trail period lets you explore all the features available in your selected plan. This helps you to thoroughly check the application before you seal the deal. We are sure that you will like our applications and would love to stick with us, so this 1 month window is more like a warm-up for our valued subscribers before making a long-term commitment. Apart from introducing these new plans, GroupDocs is still continuing with its Free user plan, which has some restrictions on usage. We are really excited that we’ve had all the tools needed for document management under one roof at a nominal price.\nHow to Upgrade Now, let\u0026rsquo;s get to know some simple steps on how to upgrade your existing GroupDocs subscription plan to a more privileged one: Step 1: In the user details area, click Upgrade. [caption id=\u0026ldquo;attachment_580\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;248\u0026rdquo; caption=\u0026ldquo;Fig.2: Upgrading your account\u0026rdquo;]\r[/caption] Step 2: From the available plans, choose the one that suits you best, and click Buy Now. [caption id=\u0026ldquo;attachment_1045\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;632\u0026rdquo; caption=\u0026ldquo;Fig.3: Choose a plan that best suits your document management requirements\u0026rdquo;]\r[/caption] Note: When you select the Groups or Enterprise plans, you need to select the number of users. The price increases accordingly. Step 3: In the Payment Details window, fill out your billing address and credit card details, and then click Buy Now to complete the account upgrade process. [caption id=\u0026ldquo;attachment_1041\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;632\u0026rdquo; caption=\u0026ldquo;Fig.4: Fill your details to complete the account upgradation process\u0026rdquo;]\r[/caption] So why wait, please sign in now and upgrade to take your documentation management to a whole new level. Dont have an account at GroupDocs? No worries! please join us right now to instantly indulge in next-generation documentation management.\n","permalink":"https://blog.groupdocs.com/total/groupdocs-introduced-new-pricing-plans-for-its-document-management-solutions/","summary":"Introduction We\u0026rsquo;ve recently introduced a set of new pricing plans for our document management solutions. Our objective is to make GroupDocs apps appealing to all types of users or groups, regardless of their size. We have launched these new plans after collecting valuable feedback from our customers. [caption id=\u0026ldquo;attachment_646\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;632\u0026rdquo; caption=\u0026ldquo;Fig.1: GroupDocs introduced new pricing plans for its document management solutions\u0026rdquo;]\r[/caption]\nPricing Plan Types As well as the Free plan, we have three other pricing plans:","title":"GroupDocs Introduced New Pricing Plans for Its Document Management Solutions"},{"content":"GroupDocs Comparison is a web-based tool that allows you to compare Word documents, as well as PDF, Excel and other documents online. It combines two documents and highlights differences. While comparing documents, the app generates a redline and blueline view of how the documents differ. GroupDocs\u0026rsquo; document comparison tool highlights the differences this way: red strike-outs show deleted text and formatting; and blue underlines show added text and formatting. GroupDocs Comparison is mainly used to compare two Word documents. Our document comparison tool also supports PPTX, PDF, and Excel document formats, but they are in a beta stage.\nWhy Compare Documents with the GroupDocs\u0026rsquo; Comparison Tool? With numerous collaborators performing modifications and revisions, maintaining an audit trail of document versions is quite a difficult task. Document comparison is especially useful when managing document revisions over time, specifically when modifications were made without change tracking. GroupDocs Comparison is a convenient document comparison tool that helps you compare Word documents in minutes, saving time. Here are the key benefits of GroupDocs\u0026rsquo; document comparison tool:\nAvoid the time consuming cut-and-paste and merge methods. Compare Word documents in any language and of any size. Compare documents to determine the latest version. This lets you identify and remove obsolete documents. Experience speedy, accurate comparisons without going through the entire document yourself. Simply upload the documents you want to compare and click Compare. GroupDocs Comparison does the rest. Save time and improve accuracy. Manual comparison takes time and leaves your comparison process prone to pricey errors and oversights. Protect your documents from unauthorized modifications. GroupDocs\u0026rsquo; document comparison app helps you see what\u0026rsquo;s been added, edited or deleted. This way, you can instantly spot and clear any unauthorized changes. Finalize a Document Faster by Working Online Instead of downloading the compared document to decline or accept changes, do it directly with GroupDocs Comparison right in a web-browser. This helps you to finalize the document faster, as you have the option to do majority of the work online.\nSee Also Word Comparison in .NET: Revision Track vs Highlight Modes ","permalink":"https://blog.groupdocs.com/comparison/compare-word-documents-with-groupdocs-document-comparison-tool/","summary":"GroupDocs Comparison is a web-based tool that allows you to compare Word documents, as well as PDF, Excel and other documents online. It combines two documents and highlights differences. While comparing documents, the app generates a redline and blueline view of how the documents differ. GroupDocs\u0026rsquo; document comparison tool highlights the differences this way: red strike-outs show deleted text and formatting; and blue underlines show added text and formatting. GroupDocs Comparison is mainly used to compare two Word documents.","title":"Compare Word Documents Online with GroupDocs' Document Comparison Tool"},{"content":"The GroupDocs team is proud to introduce a brand new dashboard for its online signature app. The user interface is significantly improved: both design and functionality were modified in order to make the GroupDocs Signature Dashboard more intuitive, user-friendly and convenient for a fast and hassle-free online document signing process. Let\u0026rsquo;s have a closer look at the new features of the GroupDocs Signature Dashboard.\nSimple WorkflowThe online signature application guides you through each and every step of the online signing process. This simple workflow won\u0026rsquo;t let you make a mistake during the process but enables you to get documents signed in minutes. The document preparation process now includes six simple steps. A wizard-style interface guides you, step by step, so that you don\u0026rsquo;t get stuck. [caption id=\u0026ldquo;attachment_498\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;627\u0026rdquo; caption=\u0026ldquo;GroupDocs\u0026rsquo; online signature app has a wizard-style interface\u0026rdquo;]\r[/caption]\nAdvanced Online Signing Options GroupDocs\u0026rsquo; online signature app now offers several signing options: 1. Draw a signature using mouse controls. 2. Type your signature and let the app make a stylish signature for you. 3. Or simply upload an image of your signature using the upload option. All these new features help you sign documents online faster. With GroupDocs\u0026rsquo; online signature app your business can shorten the signing process cycle from days to hours. [caption id=\u0026ldquo;attachment_503\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;601\u0026rdquo; caption=\u0026ldquo;GroupDocs\u0026rsquo; online signature app interface - Signing options\u0026rdquo;]\r[/caption] Please find more about GroupDocs\u0026rsquo; online signature service here. You comments and suggestions are appreciated, so please feel free to contact us.\n","permalink":"https://blog.groupdocs.com/signature/new-groupdocs-online-signature-dashboard/","summary":"The GroupDocs team is proud to introduce a brand new dashboard for its online signature app. The user interface is significantly improved: both design and functionality were modified in order to make the GroupDocs Signature Dashboard more intuitive, user-friendly and convenient for a fast and hassle-free online document signing process. Let\u0026rsquo;s have a closer look at the new features of the GroupDocs Signature Dashboard.\nSimple WorkflowThe online signature application guides you through each and every step of the online signing process.","title":"Introducing GroupDocs' New Online Signature App Dashboard"},{"content":"The GroupDocs dashboard provides you with several features for organizing files and folders. The new dashboard is very user friendly, so you get familiar with it pretty quickly. In this post, we focus on the GroupDocs dashboard. I\u0026rsquo;m going to list some of GroupDocs dashboard\u0026rsquo;s key features useful for document management: [caption id=\u0026ldquo;attachment_402\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;622\u0026rdquo; caption=\u0026ldquo;Fig.1: GroupDocs dashboard helps you organise your files and folders for better document management\u0026rdquo;]\r[/caption]\nPerform actions easily: One of the main features of the GroupDocs dashboard is it intuitiveness. For instance, it\u0026rsquo;s easy to access the action menu and perform actions on your files, for example, copy, move, share, delete, download, and archive.\nSimple upload: Simply drag and drop your files to the DROP FILES HEREarea to upload them quickly. The uploaded files are listed on the dashboard. [caption id=\u0026ldquo;attachment_435\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;597\u0026rdquo; caption=\u0026ldquo;Fig.2: GroupDocs dashboard permits you to drag and drop your files for instant upload\u0026rdquo;]\r[/caption]\nView folder and file info: The dashboard shows you information about folders and files. For example, file format, modification date, size, whom it\u0026rsquo;s shared with, etc. This helps you to quickly find documents.\nSort your files: The GroupDocs dashboard lets you sort files according to format, size, or modification date. Sort your files the way you want to you can finding files quickly.\nFolder creation and navigation: Folder creation and navigation are super simple. Create as many folder you want, organize parent and child folders. The breadcrumb trail allows you to navigate easily without getting lost. [caption id=\u0026ldquo;attachment_423\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;597\u0026rdquo; caption=\u0026ldquo;Fig.3: Breadcrumb trail from GroupDocs allows easy folder navigation\u0026rdquo;]\r[/caption]\nSearch for files or folders: If you want to use an important file/folder instantly, but unable to find it, don\u0026rsquo;t worry! use the search box to find it quickly.\nConvert files: You can find many individual file conversion services online, which focus mainly on one particular type of file conversion. On contrary, using GroupDocs dashboard, you can convert your files into a variety of formats. GroupDocs support multiple file formats and their conversions. For instance, it supports DOCX to PDF, DOCX to HTML, DOCX to EPUB, PDF to JPEG, PNG to JPEG, to name a few.\nManage files: GroupDocs dashboard has the features you\u0026rsquo;d expect from a file browser so you can easily move, copy and delete files.\nShare: Share important documents or folders with your friends or colleagues. Save time and effort through document collaboration.\nArchive: When you no longer need a document, you can simply archive it. Archived documents can be retrieved later if required.\nDownload: If you need a soft copy of a document on your dashboard, simply download it to your computer. This is really useful for backing up your important documents.\nAccess other GroupDocs apps: From the GroupDocs dashboard, you access the other GroupDocs apps. [caption id=\u0026ldquo;attachment_453\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;597\u0026rdquo; caption=\u0026ldquo;Fig.4: Access other applications from GroupDocs dashboard\u0026rdquo;]\r[/caption]\nGood organisation plays a key role in document management. GroupDocs helps you to achieve this. Experience GroupDocs today and find a better document management solution.\n","permalink":"https://blog.groupdocs.com/total/document-management-with-groupdocs/","summary":"The GroupDocs dashboard provides you with several features for organizing files and folders. The new dashboard is very user friendly, so you get familiar with it pretty quickly. In this post, we focus on the GroupDocs dashboard. I\u0026rsquo;m going to list some of GroupDocs dashboard\u0026rsquo;s key features useful for document management: [caption id=\u0026ldquo;attachment_402\u0026rdquo; align=\u0026ldquo;alignnone\u0026rdquo; width=\u0026ldquo;622\u0026rdquo; caption=\u0026ldquo;Fig.1: GroupDocs dashboard helps you organise your files and folders for better document management\u0026rdquo;]\r[/caption]","title":"Document Management with GroupDocs"},{"content":"Last week, I mentioned changes that we’re making to GroupDocs Assembly to make it more intuitive. Document assembly (also known as document automation) is an aspect of document management that you might not be familiar with, so this week I’ll discuss what it is and how it can be used in more detail.\nDocument Management? You’ve found your way to GroupDocs and the GroupDocs blog so chances are that you have an idea about document management. It’s simply the process of keeping track or and managing the various documents you use. Creating a professional-looking template, storing it online and sharing it with your colleagues so that they can all use it is all document management. So is customising contracts, sending them out for signing and archiving the signed documents. Document assembly allows you to automate document creation to save you time and effort.\nWhy Do I Need Document Assembly? What makes document assembly so useful is obvious from the other name for this function: document automation. It allows you to automate data collection and make it specific to a particular document. You can re-use the document again and again, creating a new, unique document each time. It’s commonly used to put together legal documents, contracts and letters, bringing together sections of text with data from other sources. Mail merging, for example, is a type of document assembly. [caption id=\u0026ldquo;attachment_329\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;338\u0026rdquo; caption=\u0026ldquo;Document assembly: take a template, add data and create a new document.\u0026rdquo;]\r[/caption]\nGive Me an Example! Imagine that you own a painter business. People call you to get their walls painted. Before you can give them a quote, there are certain things you need to know: the number of rooms or walls, whether they need the ceiling done too, or the woodwork, what the approximate square footage of the area you’ll paint will be, and if there are any special conditions (very dark or textured wall, for example, or if a room has unusually high ceilings). You can put all of these questions into a quote document and send it to the potential client. They fill it in and create a unique document from which you can quickly prepare a quote or visit to give the place a once-over before quoting. [caption id=\u0026ldquo;attachment_330\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs Assembly lets you add questions to a template to automate document creation.\u0026rdquo;]\r[/caption]\nDocument Assembly with GroupDocs Assembly GroupDocs Assembly\u0026rsquo;s aim is to make document assembly as easy as possible. The process is straightforward:\nCreate a template with fields to hold customised data. Add questions (making a questionnaire). Customise the document pages. Test. The changes that we’re making to GroupDocs Assembly encapsulate this process so that you cannot go wrong.\n","permalink":"https://blog.groupdocs.com/total/what-is-groupdocs-assembly/","summary":"Last week, I mentioned changes that we’re making to GroupDocs Assembly to make it more intuitive. Document assembly (also known as document automation) is an aspect of document management that you might not be familiar with, so this week I’ll discuss what it is and how it can be used in more detail.\nDocument Management? You’ve found your way to GroupDocs and the GroupDocs blog so chances are that you have an idea about document management.","title":"What is GroupDocs Assembly?"},{"content":"We\u0026rsquo;re continuing work on the new and improved GroupDocs look and feel. We\u0026rsquo;re told you that we\u0026rsquo;re making changes to the GroupDocs dashboard and GroupDocs Viewer, and we\u0026rsquo;re also changing GroupDocs Annotation. We\u0026rsquo;re not stopping there. We\u0026rsquo;re also making changes to GroupDocs Assembly. GroupDocs Assembly is an app that lets you automate document assembly and automation. Think of your document as a form that you can use to create several new documents from. You start with a template document. In the template, there are a number of fields that will collect information, for example, name, address, date. (These are straightforward examples but you can use GroupDocs Assembly to create really sophisticated forms and collect all kinds of data.) In GroupDocs Assembly, associate questions with the different fields. We call this \u0026ldquo;creating a questionnaire\u0026rdquo;. When you send the document out, the recipient answer the questions. When all questions have been answered - when the questionnaire is complete - a new document is created. The new document looks like the template but contains all the information that the recipient provided. GroupDocs Assembly helps you set up documents that you can use again and again to collect information and generate unique documents. It\u0026rsquo;s convenient, safe and quick. To make it easier to use, we\u0026rsquo;re improving the interface and adding a workflow to help lead you through the assembly process.\nEasy-to-follow WorkflowThe assembly process follows the same path every time: Choose a template. Assign questions to fields. Build pages. Preview and test. [caption id=\u0026ldquo;attachment_294\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;572\u0026rdquo; caption=\u0026ldquo;We\u0026rsquo;ve integrated a document assembly workflow into GroupDocs Assembly to make it easier to use.\u0026rdquo;]\r[/caption] GroupDocs Assembly\u0026rsquo;s new assembly workflow leads you through the set-up process.\nManage Questions and Preview the QuestionnaireAssigning questions is really easy. Each of the variables are listed and you simply type a question for each. [caption id=\u0026ldquo;attachment_308\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;Assign questions to fields to help recipients complete the questionnaire.\u0026rdquo;]\r[/caption] When the questions have been assigned, preview the questionnaire to see that it looks as expected. [caption id=\u0026ldquo;attachment_293\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;701\u0026rdquo; caption=\u0026ldquo;Preview a GroupDocs Assembly questionnaire to check that everything is right.\u0026rdquo;]\r[/caption] Familiar Drag and DropGroupDocs Assembly, like GroupDocs Annotate, benefit from the changes we\u0026rsquo;re making to the GroupDocs dashboard. You\u0026rsquo;ll recognise the drop files area, for example. Drop templates there to upload them in an instant. [caption id=\u0026ldquo;attachment_296\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;544\u0026rdquo; caption=\u0026ldquo;You\u0026rsquo;ll recognise the drag and drop area from the new GroupDocs dashboard.\u0026rdquo;]\r[/caption] ","permalink":"https://blog.groupdocs.com/total/introducing-groupdocs-assemblys-new-look-and-feel/","summary":"We\u0026rsquo;re continuing work on the new and improved GroupDocs look and feel. We\u0026rsquo;re told you that we\u0026rsquo;re making changes to the GroupDocs dashboard and GroupDocs Viewer, and we\u0026rsquo;re also changing GroupDocs Annotation. We\u0026rsquo;re not stopping there. We\u0026rsquo;re also making changes to GroupDocs Assembly. GroupDocs Assembly is an app that lets you automate document assembly and automation. Think of your document as a form that you can use to create several new documents from.","title":"Introducing GroupDocs Assembly's New Look and Feel"},{"content":"GroupDocs Annotation is a web-based app that allows users to annotate PDF, Word, Excel and PowerPoint documents online, from a web-browser. With this app, you and your colleagues and partners can review and annotate a document simultaneously, in real time. We\u0026rsquo;re constantly working to improve the app\u0026rsquo;s interface and would like to introduce a new set of features we\u0026rsquo;ve recently designed and implemented.\nAdd and Manage Notes GroupDocs Annotation lets you add notes throughout a document which show up as numbered markers. Hover the cursor over a marker to see the comment or click a marker sign on the right-hand side to go straight to the comment. [caption id=\u0026ldquo;attachment_245\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs Annotation - UI\u0026rdquo;]\r[/caption]\nFamiliar Editing Tools We\u0026rsquo;ve added a set of new annotation tools and improved the existing ones. Now it is even easier to add notes to a document, wherever you want. With the new Area Notes and Polyline tools, you can easily highlight an area in a document. You may also find useful the new options that allows you to strike out text and add new text sections. [caption id=\u0026ldquo;attachment_246\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;526\u0026rdquo; caption=\u0026ldquo;GroupDocs Annotation - Toolbar\u0026rdquo;]\r[/caption]\nWork with Images Good news for design teams. From now, GroupDocs Annotation allows you to upload, share and annotate images of all common formats. This way you can conveniently review and collaborate on sketches, mockups and complex designs with your team members in real time. [caption id=\u0026ldquo;attachment_248\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs Annotation - Annotate PDF, Word, Excel and PowerPoint Documents\u0026rdquo;]\r[/caption] [caption id=\u0026ldquo;attachment_249\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs Annotation - Annotate Images\u0026rdquo;]\r[/caption]\n","permalink":"https://blog.groupdocs.com/annotation/announcing-new-features-of-the-groupdocs-annotation-app/","summary":"GroupDocs Annotation is a web-based app that allows users to annotate PDF, Word, Excel and PowerPoint documents online, from a web-browser. With this app, you and your colleagues and partners can review and annotate a document simultaneously, in real time. We\u0026rsquo;re constantly working to improve the app\u0026rsquo;s interface and would like to introduce a new set of features we\u0026rsquo;ve recently designed and implemented.\nAdd and Manage Notes GroupDocs Annotation lets you add notes throughout a document which show up as numbered markers.","title":"Announcing New Features of the GroupDocs' Annotation App"},{"content":"We\u0026rsquo;re constantly working to improve the functionality and user interface of our online document management apps. Today we introduce our online signature app\u0026rsquo;s new user interface. The changes we are about to discuss are coming within the next weeks.\nAn Overview of the New Online Signature App Interface The new GroupDocs Signature dashboard will look a lot like the main GroupDocs dashboard so it will feel familiar to GroupDocs users. [caption id=\u0026ldquo;attachment_216\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs\u0026rsquo; online signature app - the new dashboard\u0026rdquo;]\r[/caption] We developed a completely new workflow which leads you through the signing process step by step:\nAdd one or more documents you want to be signed. Add signers and CCs. Fill in their details. Prepare an email for the recipients: add a subject and a message. Set up all necessary reminders. Add custom fields to the document to collect all needed information such as address, date, initials, etc. Save and send the envelope. [caption id=\u0026ldquo;attachment_220\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs Signature - The online signing workflow\u0026rdquo;]\r[/caption] Let\u0026rsquo;s now look at the online signing workflow more closely.\n1. ** Upload a document you want to get signed.** You can either specify a path to the file or use the new Drag and Drop feature to add it to an envelope. [caption id=\u0026ldquo;attachment_218\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs Signature - Drag and drop interface\u0026rdquo;]\r[/caption]\n2. Add recipients You can add recipients as signers (those who are requested to sign the document) and/or as CCs (those who will receive a copy of the signed document). You can also add yourself as a recipient by clicking on the Add me button. [caption id=\u0026ldquo;attachment_214\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs Signature - Specify recipients\u0026rdquo;]\r[/caption]\n3. Add email information Type an email subject and message. Be sure to include any information recipients need to know before signing a document. [caption id=\u0026ldquo;attachment_221\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs Signature - Prepare an email\u0026rdquo;]\r[/caption]\n4. Add reminders Set up automatic reminders and don\u0026rsquo;t worry about deadlines. Our online signature app sends email notifications, so that recipients won\u0026rsquo;t miss to sign the document. [caption id=\u0026ldquo;attachment_215\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs Signature - Reminders and envelope expiration\u0026rdquo;]\r[/caption]\n5. Add fields to the document Add custom fields to the document to collect necessary data from the signers, such as name, address, title, date, etc. [caption id=\u0026ldquo;attachment_213\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs Signature - Add custom fields\u0026rdquo;]\r[/caption] [caption id=\u0026ldquo;attachment_219\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs Signature - New tools\u0026rdquo;]\r[/caption]\n6. Save and send Send the envelope right away or save it as a draft, so that you can come back and review it anytime later. [caption id=\u0026ldquo;attachment_217\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs Signature - Check and save envelope settings\u0026rdquo;]\r[/caption]\n","permalink":"https://blog.groupdocs.com/signature/groupdocs-online-signature-app-dashboard-new-look-and-feel/","summary":"We\u0026rsquo;re constantly working to improve the functionality and user interface of our online document management apps. Today we introduce our online signature app\u0026rsquo;s new user interface. The changes we are about to discuss are coming within the next weeks.\nAn Overview of the New Online Signature App Interface The new GroupDocs Signature dashboard will look a lot like the main GroupDocs dashboard so it will feel familiar to GroupDocs users. [caption id=\u0026ldquo;attachment_216\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs\u0026rsquo; online signature app - the new dashboard\u0026rdquo;]\r[/caption] We developed a completely new workflow which leads you through the signing process step by step:","title":"GroupDocs' Online Signature App Dashboard: The New Look and Feel"},{"content":"GroupDocs Signature is an online signature service that lets you collect signatures without the administrative overhead of printing, stuffing envelopes and posting. Simply email documents to your signers and wait for them to be signed. GroupDocs\u0026rsquo; online signature app is platform and software independent: the only thing a user needs to sign a document is a web browser, no additional software is required. [caption id=\u0026ldquo;attachment_206\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs\u0026rsquo; online signature app - New dashboard\u0026rdquo;]\r[/caption]\nThe current GroupDocs Signature dashboard lets you upload documents and send them to be signed in minutes. It tracks the signing process and notifies you once a document is signed. The whole online document signing process is pretty simple, but recently we\u0026rsquo;ve added several new features to make it even more convenient: Contacts - allows you to add and save signers\u0026rsquo; contact details. Signatures - lets you store your signature(s) in GroupDocs to make signing even faster. Templates - allows you to save common documents as templates and reuse them when needed. Now, let\u0026rsquo;s consider these enhancements more closely:\nContactsDo you find yourself sending documents to the same people all the time? Is there one team member that needs to counter-sign all the documents you sign? Our online signature app lets you save signers\u0026rsquo; details in your contacts list. Enter a name, an email address and a title and include the contact whenever you need to get another document signed. [caption id=\u0026ldquo;attachment_205\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;647\u0026rdquo; caption=\u0026ldquo;Managing contacts in the GroupDocs\u0026rsquo; online signature app\u0026rdquo;]\r[/caption] SignaturesDo you need to sign documents online on behalf of your colleagues? With GroupDocs\u0026rsquo; online signature app, you can create several signatures so that you can sign for yourself or for one of your colleagues with a simple click. Even if you always sign documents in your own name, it\u0026rsquo;s a convenient approach to store your electronic signature in your GroupDocs account. This way, it is always at hand and you do not have to repeatedly upload your signature image and enter your name and title. [caption id=\u0026ldquo;attachment_203\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;Managing your signatures online\u0026rdquo;]\r[/caption] TemplatesNow, you can save an envelope as a template to speed up the sending process. A template holds a set of documents and signers so that all you have to do to get another document signed, is create a new envelope from the template and enter recipient emails before sending the document. Preparing documents for signature has never been such an easy task! [caption id=\u0026ldquo;attachment_204\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;Using templates for fast document preparation\u0026rdquo;]\r[/caption] ","permalink":"https://blog.groupdocs.com/signature/announcing-new-groupdocs-online-signature-features/","summary":"GroupDocs Signature is an online signature service that lets you collect signatures without the administrative overhead of printing, stuffing envelopes and posting. Simply email documents to your signers and wait for them to be signed. GroupDocs\u0026rsquo; online signature app is platform and software independent: the only thing a user needs to sign a document is a web browser, no additional software is required. [caption id=\u0026ldquo;attachment_206\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs\u0026rsquo; online signature app - New dashboard\u0026rdquo;]\r[/caption]","title":"Announcing The New GroupDocs' Online Signature Service Features"},{"content":"We\u0026rsquo;re about to launch a new interface for the GroupDocs Dashboard and our online document viewer app. We have overhauled the look and feel of the tools to make them more intuitive to use. At the moment, we\u0026rsquo;re adding the final touches and making sure that everything works fine. The changes will be live in the next few weeks. Here\u0026rsquo;s what will change when the new interface goes live: Dashboard interface:\nEasier navigation thanks to added breadcrumbs; All applications will be available from the Dashboard menu; Drag and drop interface - allows you to easily upload documents; Document sorting options - allows you to find documents quickly. Online document viewer interface:\nImproved look and feel; Easier navigation. Easier Document Management with the New DashboardGroupDocs is mainly used by small and medium companies as an online document management solution. We value your time and always work on interface improvements to make it intuitive and easy to use. We\u0026rsquo;re about to change the dashboard and the online document viewer, so that you will be able to: See who your documents are shared with; See when they were last modified; See their size, file format and name; Convert document easily and quickly; Upload documents by simply dropping them onto the drop files area. [caption id=\u0026ldquo;attachment_168\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;The new GroupDocs Dashboard interface\u0026rdquo;]\r[/caption]\nEasier navigationWe\u0026rsquo;ve added a breadcrumb trail to the GroupDocs Dashboard so that it is easier to navigate your folders. You can now click on a folder in the breadcrumb trail to go to it directly. [caption id=\u0026ldquo;attachment_160\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;307\u0026rdquo; caption=\u0026ldquo;GroupDocs Dashboard - Breadcrumb trail\u0026rdquo;]\r[/caption] Access Applications from the Dashboard MenuAll GroupDocs applications are now available and quickly accessible from the Dashboard menu. [caption id=\u0026ldquo;attachment_158\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;304\u0026rdquo; caption=\u0026ldquo;GroupDocs Dashboard - The new menu\u0026rdquo;]\r[/caption] Drag and Drop to Upload DocumentsTo upload documents, simply drag and drop them onto the Drop Files area in the GroupDocs Dashboard. The files are automatically uploaded to the current folder. [caption id=\u0026ldquo;attachment_167\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;GroupDocs Dashboard - Drag and drop interface\u0026rdquo;]\r[/caption] Sort DocumentsOrganize your documents the way that suits you best by sorting them. By default, files are sorted in alphabetical order. You can change the order they are listed in by clicking column headers. Improved Interface of the Online Document Viewer AppThe new interface of GroupDocs\u0026rsquo; online document viewer app makes it easier to navigate a document. We\u0026rsquo;ve added a thumbnails feature, so that you can quickly move from one page to another. Also, you can now quickly access a set of handy tools that allow you to work with the document online. [caption id=\u0026ldquo;attachment_290\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;Improved interface of the online document viewer\u0026rdquo;]\r[/caption] ","permalink":"https://blog.groupdocs.com/viewer/introducing-new-dashboard-and-online-document-viewer-ui/","summary":"We\u0026rsquo;re about to launch a new interface for the GroupDocs Dashboard and our online document viewer app. We have overhauled the look and feel of the tools to make them more intuitive to use. At the moment, we\u0026rsquo;re adding the final touches and making sure that everything works fine. The changes will be live in the next few weeks. Here\u0026rsquo;s what will change when the new interface goes live: Dashboard interface:","title":"Introducing The New GroupDocs Dashboard and Online Document Viewer UI"},{"content":"Earlier this week I talked about document conversion, including image conversion, and why you\u0026rsquo;d want to do it. Today, I\u0026rsquo;ll show you how to perform two tasks: first, how to convert the pages in a document to images and then how to convert an image from one format to another. Document conversion is one of the services that GroupDocs offers. You can convert documents you\u0026rsquo;ve uploaded to a number of different formats. Exactly which formats depends on the type of document. Microsoft Word files can be converted to all kinds of different formats, from plain text TXT files to HTML. You can also convert the pages in a document to images that you can then use in presentations, other documents or online. For example, you can convert from PDF to JPG, DOC to JPG and many other file formats. As well as document to image conversion, you can use GroupDocs to perform image to image conversion. Image files, for example PNGs, JPGs and so on, can be converted to other image files. You do image conversion from the GroupDocs dashboard.\nDocument conversion: converting a document to a series of images Navigate to a document in GroupDocs dashboard. Click Convert. Select a format from the list. Click Convert. Each page in the document is converted to an image and saved with the new file extension. For example, if you selected JPG, all pages as converted to JPG files. Images are saved to a ZIP file that you can download. The ZIP is also saved to the My Conversions folder. [caption id=\u0026ldquo;attachment_118\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;630\u0026rdquo; caption=\u0026ldquo;A two-slide presentation converted to JPG.\u0026rdquo;]\r[/caption]\nImage conversion: converting an image from one format to another Navigate to an image in GroupDocs dashboard. Click Convert. Select a format from the list. Click Convert. The file is converted and saved with the new file extension. For example, if you selected PNG from the Convert menu, the original image is converted to PNG and saved as FILENAME.png. Like all converted documents, the new file is saved in My Conversions. [caption id=\u0026ldquo;attachment_120\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;538\u0026rdquo; caption=\u0026ldquo;Conversion progress when converting a JPG to PNG.\u0026rdquo;]\r[/caption]\n","permalink":"https://blog.groupdocs.com/total/converting-images-for-your-website-with-groupdocs/","summary":"Earlier this week I talked about document conversion, including image conversion, and why you\u0026rsquo;d want to do it. Today, I\u0026rsquo;ll show you how to perform two tasks: first, how to convert the pages in a document to images and then how to convert an image from one format to another. Document conversion is one of the services that GroupDocs offers. You can convert documents you\u0026rsquo;ve uploaded to a number of different formats.","title":"Performing document conversion and image conversion with GroupDocs"},{"content":"One of the features that GroupDocs offers is document conversion, converting documents from one file formats to another. There are lots of different reasons why this is such a big deal. If you\u0026rsquo;ve never been sent a file you couldn\u0026rsquo;t open, or had a file you sent somewhere returned to you because the recipient couldn\u0026rsquo;t open it - you\u0026rsquo;ve been lucky! It is becoming much easier to send documents from one application or operating system to another. In the mid-90s, a Word document created on a Mac, for example, could not easily be opened on a Windows PC. Now, what operating system you have isn\u0026rsquo;t a barrier to sharing documents. The problems now is mostly which programs, and which program versions, you have. Still, converting documents is still not always easy.\nConverting documents saves time and effort Below is a list of six different occasions when it is really handy to be able to convert documents between formats. Four of the examples start with a Microsoft Word file, DOC, and converts it to other formats: DOC to HTML, DOC to PDF, DOC to JPG and, finally, DOC to ODT. I also explain why you might want to convert between Word versions: DOCX to DOC. Not all documents are word documents so there\u0026rsquo;s also a scenario for when you might want to convert a PowerPoint presentation to image file: PPTX to JPG. At the end, you\u0026rsquo;ll hopefully have a good idea of why converting documents is useful and how GroupDocs can help you.\nYour brochure would work great as pages on your website - DOC to HTMLWhen you run a small company you often find yourself doing everything, from the core focus of your business to marketing, finance and administration. You put together presentation to sell your product or services to potential clients, you write brochure and do a lot of your own graphic design. It makes your life easier if you can re-use some of the materials that you create. With GroupDocs you can convert DOC and DOCX files to a whole host of other formats, including HTML. This means that you can easily turn your Word brochure into pages that you can include on your website.\nYou want to give someone a document that cannot be edited - DOC to PDFSometimes you don\u0026rsquo;t want people to be able to edit the documents you send them. Take the brochure we talked about earlier, for example. You don\u0026rsquo;t want to send the Word original to people but rather something they cannot edit. PDF files are perfect for this. With GroupDocs, you can convert almost any document to PDF. The great thing about PDFs is that most people can read them, they can\u0026rsquo;t be edited and they look like the original document. PDFs are common on the web: you can easily put a link to a PDF file on your website. But not all programs have features for converting documents to PDF, or saving documents to PDF. [caption id=\u0026ldquo;attachment_108\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;650\u0026rdquo; caption=\u0026ldquo;Converting a Word file to PDF.\u0026rdquo;]\r[/caption] There are many different uses for PDF files. PDF is also a handy format for archiving files once they are complete. For example, convert invoices to PDF files and upload them to your online accounting software to have copies that can be opened by anyone, anywhere but cannot be edited. You\u0026rsquo;ll find that there are lots of plugins and online applications for converting documents to PDF. GroupDocs makes sure that the converted document looks like the original and lets you convert to other formats too.\nA picture of a document would look good on your website - DOC to JPGSo, you have a website and you\u0026rsquo;ve created a brand new brochure. You want it on the website, but not as a set of pages, the way I descried in point 2 above. Instead, you want a picture of the attractive cover on your website. People can then click the image to download a PDF you prepared earlier. With GroupDocs, you can convert documents to a variety of different formats, including images. From DOC and DOCX you can convert to JPG, a popular online format. If you want to use a different image you can convert the JPG to PNG or GIF both popular internet image formats.\nA slide in one of your presentations would look good in another document - PPTX to JPGWhen you have worked hard to make a great presentation, you\u0026rsquo;ll want to re-use the information and graphics on the slides. As with Microsoft Word documents, you can convert the slides in a presentation to images which you can then use in other presentations, documents or websites. [caption id=\u0026ldquo;attachment_118\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;630\u0026rdquo; caption=\u0026ldquo;A two-slide presentation converted to JPG.\u0026rdquo;]\r[/caption]\nSomeone sends you a compressed Word document and you can\u0026rsquo;t open it - DOCX to DOCMicrosoft Office 2007 introduced DOCX, their default document format, in 2006. Five years later, not everyone has a word processing program that can work with DOCX, but need DOC or other types of files. Someone who can save to DOCX can also save to DOC. But if you get a DOCX and you need DOC, what do you do? You can ask the originator to save the document in the right format and send it back to you. Or you can upload the file to GroupDocs and convert it to DOC - or any other format that you want.\nYou\u0026rsquo;re working with someone who doesn\u0026rsquo;t have Microsoft Office - DOC to ODTMicrosoft Office is almost - but not quite - everywhere. There\u0026rsquo;s a similar product called OpenOffice (LibreOffice is based on the same core) that is free and quite popular. The default format for OpenOffice\u0026rsquo;s word processing application is ODT (open document). GroupDocs can convert Word documents to a number of different formats, including ODT. Also, be sure to find out how to convert images with GroupDocs Conversion.\n","permalink":"https://blog.groupdocs.com/total/6-situations-when-you-need-to-convert-documents/","summary":"One of the features that GroupDocs offers is document conversion, converting documents from one file formats to another. There are lots of different reasons why this is such a big deal. If you\u0026rsquo;ve never been sent a file you couldn\u0026rsquo;t open, or had a file you sent somewhere returned to you because the recipient couldn\u0026rsquo;t open it - you\u0026rsquo;ve been lucky! It is becoming much easier to send documents from one application or operating system to another.","title":"6 Situations When You Need to Convert Documents"},{"content":"GroupDocs lets you collaborate with colleagues or friends in different ways. We\u0026rsquo;ve described how to upload documents and how to use GroupDocs Signature. Today, we\u0026rsquo;re going back to basics. The first step to collaboration is sharing ideas and documents. With GroupDocs, sharing documents is easy and safe. You and your colleagues can work together without having to worry whether you have the same applications or the same operating systems and versions.\nCollaboration: sharing a document through GroupDocs Navigate to the file you want to share. From the Action menu, select Share. Type one or more email addresses into the Sharing dialog. Click Share. Close the dialog. An email is sent to the recipients. It contains a link to the document you\u0026rsquo;ve shared. The recipients can either log in and view the file, or download it directly from the email. [caption id=\u0026ldquo;attachment_85\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;652\u0026rdquo; caption=\u0026ldquo;Access the Share option from the Action menu and collaborate with your colleagues.\u0026rdquo;]\r[/caption]\n","permalink":"https://blog.groupdocs.com/total/sharing-documents-online-through-groupdocs/","summary":"GroupDocs lets you collaborate with colleagues or friends in different ways. We\u0026rsquo;ve described how to upload documents and how to use GroupDocs Signature. Today, we\u0026rsquo;re going back to basics. The first step to collaboration is sharing ideas and documents. With GroupDocs, sharing documents is easy and safe. You and your colleagues can work together without having to worry whether you have the same applications or the same operating systems and versions.","title":"Sharing Documents Online Through GroupDocs"},{"content":"In the digital world e-signature is actively replacing the traditional way of signing documents. Today, you can find a large number of online signature services on the market. All of them intend to help people sign documents online, using only a web browser. If you\u0026rsquo;re wondering why such applications are so popular, and what benefits they provide, this article is for you.\nThe Benefits of an Online Signature Application Save Time The normal process of signing a contract includes updating a document with client information, printing or scanning it, filing, signing, mailing, and then waiting for the signed document to be returned. Sometimes these steps are repeated, for example, if there are errors in the document, signatures have been missed out, delivery issues or other problems. Even sending the document through physical mail takes time: first you have to enclose the document in an envelope, bring it to a post office and then wait till the recipient gets your mail, signs the document and sends it back. It can take days or even weeks. With an online signature app, such as GroupDocs Signature, you can get a document signed online in minutes even if your customers or partners are located in different countries. GroupDocs\u0026rsquo; online signature app allows you to upload a document, add all necessary information, sign it and invite signers to sign the document via email. Both you and the signers are informed by email once the document is signed.\nSave Money We\u0026rsquo;ve just discussed how utilizing an online signature app saves your time. But don\u0026rsquo;t forget: time is money. With an online signature app you can get contracts closed in minutes! Moreover, using an online signature service is much more cost effective than signing documents in a traditional way - you don\u0026rsquo;t have to pay for paper, ink, printer or scanner maintenance, mail delivery, etc.\nYour Documents are Safe and Secure With an online signature service you don\u0026rsquo;t need to worry about security issues because your documents are encrypted and stored securely online, so nobody can fake your identity and forge your signature. Your documents are fully protected from unauthorized access.\nYour Online Signature is Absolutely Legal The Federal Electronic Signatures in Global and National Commerce (E-SIGN) Act which was signed in the USA in 2000 gave electronic signatures the same legal standing as handwritten ones. Documents signed with a reputable online signature service are absolutely legally binding in most developed countries. So you can be sure that your electronic signature is as legal as its hard copy and acceptable on legal documents.\nBe Environmentally Friendly Finally, by switching to an online signature approach you\u0026rsquo;re saving hundred of trees and commit to environment-friendly technologies.\nWhat\u0026rsquo;s Next? Learn how to use GroupDocs Signature to sign a document. [caption id=\u0026ldquo;attachment_152\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;GroupDocs\u0026rsquo; online signature app\u0026rsquo;s dashboard\u0026rdquo;]\r[/caption]\n","permalink":"https://blog.groupdocs.com/signature/why-use-online-signature-app/","summary":"In the digital world e-signature is actively replacing the traditional way of signing documents. Today, you can find a large number of online signature services on the market. All of them intend to help people sign documents online, using only a web browser. If you\u0026rsquo;re wondering why such applications are so popular, and what benefits they provide, this article is for you.\nThe Benefits of an Online Signature Application Save Time The normal process of signing a contract includes updating a document with client information, printing or scanning it, filing, signing, mailing, and then waiting for the signed document to be returned.","title":"Why Use an Online Signature Application?"},{"content":"We\u0026rsquo;ve already talked about the benefits of an online signature application. Now we know that a reliable online signature service provides a legal and secure method of signing documents online and helps users increase their productivity in terms of time and money. With this in mind, let\u0026rsquo;s have a closer look at the online document signing process and find out more about GroupDocs\u0026rsquo; online signature app.\nA Typical Process of Signing a Document with an Online Signature AppA basic online signature workflow includes the following steps: Select or upload a document you want signed. Add any necessary fields to the document, including recipient information. Locate a page and particular section(s) on this page where you\u0026rsquo;d like to put your and/or your partners\u0026rsquo; signatures. Invite partners to sign the document. The online signature app sends notifications to the recipients by email. Wait for the online signatures to come in. The app sends a notification once the recipients sign the document. A quality online signature app also sends reminder messages to signers who forgot to put their signature. All the signers are informed once the signing process is completed. Why GroupDocs\u0026rsquo; Online Signature Service? GroupDocs Signature is a secure and legally binding online signature service that allows users to sign documents right in a web-browser. The app is platform and software independent: it supports most widely used file formats, so you don\u0026rsquo;t need any additional software to sign a document. GroupDocs\u0026rsquo; online signature service entirely controls the signing process, makes it easy and hassle free. It keeps you up to date with the process, sends all necessary notifications and reminder messages so you\u0026rsquo;re informed when the signing process starts, when your partners have signed the document and when the signing process is complete. [caption id=\u0026ldquo;attachment_152\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;GroupDocs\u0026rsquo; online signature app dashboard\u0026rdquo;]\r[/caption] Why don\u0026rsquo;t you learn more about GroupDocs\u0026rsquo; online signature app\u0026rsquo;s features: check out GroupDocs Signature homepage. Find detailed instructions on how to use GroupDocs Signature to sign a document. Have any questions, comments or suggestions? Talk to us!\n","permalink":"https://blog.groupdocs.com/signature/what-you-expect-from-online-signature-service/","summary":"We\u0026rsquo;ve already talked about the benefits of an online signature application. Now we know that a reliable online signature service provides a legal and secure method of signing documents online and helps users increase their productivity in terms of time and money. With this in mind, let\u0026rsquo;s have a closer look at the online document signing process and find out more about GroupDocs\u0026rsquo; online signature app.\nA Typical Process of Signing a Document with an Online Signature AppA basic online signature workflow includes the following steps: Select or upload a document you want signed.","title":"What You Expect from an Online Signature Service"},{"content":"In one of our previous articles we discussed how a typical online signature service works and took a brief look at GroupDocs\u0026rsquo; online signature app. Today we\u0026rsquo;ll see how this application helps you to sign a document online step by step. This article doesn\u0026rsquo;t cover all the features of the app, just the basics you need to know to sign a document online. Please Note: to start using GroupDocs\u0026rsquo; online signature service, you need to register with us first. But don\u0026rsquo;t worry: we provide a free 14 days trial so that you can test the apps\u0026rsquo; features before buying it.\nHow to Sign a Document with GroupDocs\u0026rsquo; Online Signature ServiceYou can sign documents already stored on your GroupDocs profile, or you can upload a new document. Here, we\u0026rsquo;ll show you how to start by uploading a document. Select Signature from the Apps menu. The GroupDocs Signature Home page appears. Create an envelope by adding a document: Click Upload Document \u0026amp; Start. Browse to and select one or more documents. CTRL + click to select more than one file. Click Open. The documents you selected are loaded into a new envelope. Add recipients: Click Add Me to add yourself as a signer. Click Add Email. In the Please add recipient dialog, enter the recipient’s first and last names, and their email address. Make sure that the role is Signer. Click Add. Close the dialog. Click Add Email Settings. Enter a subject and a message. Close the dialog. Click Send. The emails are sent and you\u0026rsquo;re returned to the Signature dashboard. If your recipients don\u0026rsquo;t have an account, they are asked to create one before logging in to sign the document. You are informed by email once the document is signed. [caption id=\u0026ldquo;attachment_66\u0026rdquo; align=\u0026ldquo;aligncenter\u0026rdquo; width=\u0026ldquo;600\u0026rdquo; caption=\u0026ldquo;GroupDocs Online Signature dashboard shows the status of your signature envelopes.\u0026rdquo;]\r[/caption] This is how the signing process basically looks like. Find more about GroupDocs\u0026rsquo;s online signature app\u0026rsquo;s features. We appreciate you comments and suggestions so please feel free to contact us.\n","permalink":"https://blog.groupdocs.com/signature/how-to-use-groupdocs-online-signature-app-to-sign-document/","summary":"In one of our previous articles we discussed how a typical online signature service works and took a brief look at GroupDocs\u0026rsquo; online signature app. Today we\u0026rsquo;ll see how this application helps you to sign a document online step by step. This article doesn\u0026rsquo;t cover all the features of the app, just the basics you need to know to sign a document online. Please Note: to start using GroupDocs\u0026rsquo; online signature service, you need to register with us first.","title":"How to Use GroupDocs' Online Signature App to Sign a Document"},{"content":"There\u0026rsquo;s more to GroupDocs than online document storage. Saying that, we realize that one of the reasons that you\u0026rsquo;re interested in GroupDocs is the storage feature. So what\u0026rsquo;s document storage all about and what should you look for when choosing a online storage service?\n1. Storage Space The first thing to consider is what you want to store and how much space you\u0026rsquo;ll need. Documents differ in size and it can be difficult to estimate document sizes. For example, video and audio files are huge compared to text files. Look at War and Peace: as a simple TXT file is is 3.3MB in size. As an MP3 audio book, it is over 875MB. That\u0026rsquo;s 265 times the size. You probably already have documents of the type you want to store. Look at them and estimate:\nhow many files you already have, their average size, and how many similar files you accumulate in a given time. Many online document management contracts are for a year, so try to estimate the number of new files your create every month and multiply by 12. This gives you an idea of how your storage needs will grow and helps you decide how much space you need.\nThink about archiving documents Companies need to store a lot of files that would once have been saved on paper: contracts, invoices, letters and that kind of thing. Some of them have to be stored for a specific time. In the UK, companies have to save receipts, invoices and all other financial paper work for five years for tax reasons. In the US, it\u0026rsquo;s up to seven years, depending on a variety of factors. That doesn\u0026rsquo;t mean that you have to keep the documents on your document store for that time. Documents that you don\u0026rsquo;t need very often can be archived, that is removed from the online storage and saved to, for example, DVDs . It\u0026rsquo;s sensible to think about archiving when you\u0026rsquo;re calculating how much storage you need since a good archive strategy will periodically free up space.\n2. Document Storage Cost What are you willing to pay for online document storage? Does the file storage service you\u0026rsquo;re considering have a free account? Are there ways in which you can earn more free storage? Remember that archiving documents once you no longer need them is a good way of limiting the amount of file storage that you need to pay for.\n3. Document Security You need to know that your documents will be secure. That means that no one else should be able to access your documents unless you explicitly share them. It\u0026rsquo;s a good idea to do a web search for complaints about the storage platform you\u0026rsquo;re considering to see if there has been any security breaches recently.\n4. Online File Storage Features Is online file storage really all you want? Does the online storage you\u0026rsquo;re looking at offer any other features - integration with other services, conversion, easy sharing, signatures or assembly? Before picking a service, make sure that it offers all the features that you need. Changing platforms is not difficult but choosing an online storage solution is a little like buying a bookshelf. It\u0026rsquo;s not something you do every day so it is worth taking time to make the right decision. You want the service you chose to fit with the way you work now and in the future.\nGroupDocs GroupDocs offers a lot more than just file storage. The true value of GroupDocs is in the applications we offer:\nDocument Conversion: convert between file formats so that you and your colleagues can work in the format that suits you best. GroupDocs Viewer: view any document, regardless of the format, print and embed an image of a page on your website. GroupDocs Signature: collate documents and arrange for them to be digitally signed. GroupDocs Comparison: see the differences between two documents. GroupDocs Annotation: comment and collaborate on a document whether you have the software it was created in. GroupDocs Assembly: add fields to templates and ask questions to create customized documents. So that you can try it out, GroupDocs has a free starter account and different options for increasing your storage space and number of documents. GroupDocs is also a secure document storage platform. It has to be: we offer digital document signatures and they have to be secure. We make sure that all of your documents are secure and that only you and the people you share them with have access to them\n","permalink":"https://blog.groupdocs.com/total/online-document-storage-features/","summary":"There\u0026rsquo;s more to GroupDocs than online document storage. Saying that, we realize that one of the reasons that you\u0026rsquo;re interested in GroupDocs is the storage feature. So what\u0026rsquo;s document storage all about and what should you look for when choosing a online storage service?\n1. Storage Space The first thing to consider is what you want to store and how much space you\u0026rsquo;ll need. Documents differ in size and it can be difficult to estimate document sizes.","title":"Online Document Storage Features"},{"content":"You\u0026rsquo;ve got a GroupDocs account and now what? This blog post is the first in a short series that walks you through how to use GroupDocs. In the coming weeks, well explain how to:\nuse GroupDocs Signature, share documents with your colleagues, convert images to use as thumbnails, and assemble a document. But first, we\u0026rsquo;ll explain how to upload a file. That\u0026rsquo;s the first and most basic task that you can perform once you\u0026rsquo;ve logged in. It\u0026rsquo;s as easy as 1-2-3!\nUploading a document Click Upload on the dashboard. Browse to and select the document you want to upload. Click Open. The selected file is uploaded. The dashboard gives you some information about the document to help you keep track of it. A document thumbnail helps you recognize your document quickly. Document information tells you when the document was first uploaded (that is, created in the dashboard) and modified. It also shows you the document type, size and version. You can convert the document to a range of different formats. The Task menu allows you to work with the document. From the Task menu, you can:\nView your document. GroupDocs Viewer gives you a screen-preview of the document so that you can read it (or, if it is an image, look at it). You can\u0026rsquo;t edit the document here, but you can search and copy text and print the document. Compare it to another document. Document comparison is really useful if you have two documents that might be the same, but have different names, or if you have several versions of a document and want to see what the difference between them is. GroupDocs Comparison lets you compare two documents and save a new document with Microsoft Word change tracking so that you can edit the document online. Share the document with colleagues and friends. When you share a document over GroupDocs, you don\u0026rsquo;t have to worry about whether the recipient can open that file type or whether it\u0026rsquo;s too big to be sent by email. Move, copy, delete or download the document. Organize your documents in a way that makes sense to you. You can also create a questionnaire and assemble a document from this menu. GroupDocs Assembly lets you set up document templates that you can use to collect information: document automation. We\u0026rsquo;ll explain these tasks in more detail in coming posts. This should get you started with GroupDocs. We hope you find it useful!\n","permalink":"https://blog.groupdocs.com/total/uploading-a-document-to-groupdocs/","summary":"You\u0026rsquo;ve got a GroupDocs account and now what? This blog post is the first in a short series that walks you through how to use GroupDocs. In the coming weeks, well explain how to:\nuse GroupDocs Signature, share documents with your colleagues, convert images to use as thumbnails, and assemble a document. But first, we\u0026rsquo;ll explain how to upload a file. That\u0026rsquo;s the first and most basic task that you can perform once you\u0026rsquo;ve logged in.","title":"Uploading a Document to GroupDocs"},{"content":"First of all thanks for checking out our blog!\nGroupDocs is a web-based solution for online document management, sharing and collaboration. Our team is excited to enter the market and we are confident that we can offer some of the best web-based document collaboration apps to fulfill your every document need.\nWhat is GroupDocs? GroupDocs is a one-stop shop for all your document management and collaboration needs. We’ve developed a suite of online document management applications that help you with all aspects of your business, from uploading and securely storing documents, to automatically generating reports or electronically signing paper-work. GroupDocs’ apps take care of your complete document management lifecycle.\nThe GroupDocs apps suite includes the following applications:\nGroupDocs Viewer: view files in any HTML5 compliant browser (desktop or mobile). GroupDocs Signature: sign your contracts and other documents online. GroupDocs Conversion: convert back and forth between literally all common document formats. GroupDocs Annotation: annotate documents online right in a web-browser. GroupDocs Assembly: automate the creation of reports, proposals, account plans, contracts and any other types of document in the cloud. GroupDocs Comparison: compare and track changes in various revisions of a document. Our Vision From the outset we wanted to bridge the gap between desktop computing and cloud computing. In the past there was a gulf between Microsoft and non-Microsoft platforms. Users on one platform found it difficult to collaborate and communicate with users on the other. New technologies have made communication easier, but not seamless. Locking yourself into one platform limits you: you might miss out on opportunities. So we chose to use Web 2.0 technology to bridge the platform gap and make document sharing and collaborating easier.\nWe are determined to provide you with the best, most affordable and easy-to-use online document management and collaboration solutions.\nWhat We Do? The GroupDocs team consists of highly skilled developers working to create efficient platform and software independent online document management apps. GroupDocs also offers a powerful set of APIs to assist developers to get the most out of the GroupDocs Apps Suite. With GroupDocs, you can upload and store documents and perform various document manipulation operations. You can download updated documents and store them in the online repository or share them with your contacts.\nHow Can We Help? Everyone works with documents. GroupDocs makes it easier to collaborate, share and work with documents online anytime, anywhere.\n","permalink":"https://blog.groupdocs.com/total/groupdocs-online-document-management-solution-has-landed/","summary":"First of all thanks for checking out our blog!\nGroupDocs is a web-based solution for online document management, sharing and collaboration. Our team is excited to enter the market and we are confident that we can offer some of the best web-based document collaboration apps to fulfill your every document need.\nWhat is GroupDocs? GroupDocs is a one-stop shop for all your document management and collaboration needs. We’ve developed a suite of online document management applications that help you with all aspects of your business, from uploading and securely storing documents, to automatically generating reports or electronically signing paper-work.","title":"GroupDocs Online Document Management Solution Has Landed!"}]