GroupDocs Viewer For Angular Application

Hello, We are evaluating Group Docs Viewer to fulfill the requirement of a Multi format doc viewer. Requirement is as follows.

  1. Render the viewer on an angular application. The viewer would be launched from a different application, we would get the docId as param to the Viewer.
  2. The document associated with docId would be saved in database as byte stream, so the Doc Viewer should render it on the viewer.
  3. I have looked at the API implementation of the /loadDocumentDescription which is in GitHub - groupdocs-viewer/GroupDocs.Viewer-for-Java: GroupDocs.Viewer for Java examples, plugins and showcase which requires the converted file(html/css) on the client side.
    But we don’t want any files to be stored on client while rendering. Is there any way the viewer on Angular app can directly render the file from the stream on the browser with some java backend.
    I have come across https://github.com/groupdocs-viewer/GroupDocs.Viewer-for-.NET-UI/tree/master/src/GroupDocs.Viewer.UI/client which is not very helpful as there is no much details on the readme file.
    Can you please provide more details to understand how we can fulfill our requirement ?

@santhoshlock

Welcome to GroupDocs Support Forum!

GroupDocs.Viewer supports this scenario with some adjustments. We do not store source files on the client. The client app just displays the output results in the desired format. Rendering - conversion from a source document format to one of the supported output formats is performed on a server. The output format can be HTML, PNG, or JPEG.

The client app can run separately. This app requires endpoint that can fulfill all the requests. Let us prepare a demo application for you.

Thanks for the response. Can we have the meeting tomorrow(27/08)? Im available at 02:30pm BST if that works.

@santhoshlock

I’m sorry, but our free support is limited to communication with the users on this forum. Other options are:

  1. Paid Support - https://helpdesk.groupdocs.com/
  2. Paid Consulting - https://consulting.groupdocs.com/

Paid support issues have a higher priority compared to free support queries.

@santhoshlock

Please take a look at the following applications where the first one is Java web-application that handles the requests from client - api.zip (3.8 MB).

Steps to run this app:

  1. Install Java, supported versions are J2SE 8.0 (1.8) or above (for example Java 17)

  2. Install Maven - Maven – Installing Apache Maven

  3. Set environment variable to support larger signature file size

    On Linux

    export JAVA_TOOL_OPTIONS="-Djdk.jar.maxSignatureFileSize=25000000"
    

    On Windows (Powershell)

    $env:JAVA_TOOL_OPTIONS="-Djdk.jar.maxSignatureFileSize=25000000"
    
  4. Run the app mvn compile spring-boot:run

The second one is client-side Angular application - client.zip (804.8 KB).

Steps to run this app:

  1. Insall Node Version Manager (NVM)
  1. Enable Node.js v14 nvm use 14.0.0

  2. Install packages npm install --legacy-peer-deps

  3. Serve viewer app ng serve

Opening documents by ID and reading a source file from a database can be implemented with some adjustments to the client and API apps.

Please let us know if basic functionality suits your requirements.

Thanks Vladimir for the info.
We are also checking Group docs conversion API capability to convert word/image to pdf.
We want to directly convert the file without storing the file physically. I have written the following java code to directly convert byte[] (.docx) to pdf byte[] using the reference given in the help.

public byte[] convertFile(byte[] input) throws IOException
{
ByteArrayOutputStream byteStream = null;

  Supplier<InputStream> data = () -> new ByteArrayInputStream(input);
  
  SaveDocumentStream out = () -> new ByteArrayOutputStream();
  
  PdfConvertOptions options = new PdfConvertOptions();

  
  Converter pdfConverter = new Converter(data);
  
  pdfConverter.convert(out,options);
   
  byteStream = new ByteArrayOutputStream();
  byteStream.writeTo(out.get());
  
  return byteStream.toByteArray();

}

But when I use the SaveDocumentStream its not working, instead if I change to physcial drive as below its working as expected.

converter.convert(“H:\Protection Docs\”+filename, options);

Kindly provide guidance to understand how we can use SaveDocumentStream for this scenario.

@santhoshlock

You’re welcome!

Please allow me to move your question to a separate topic - How to convert a file without physically storing it on a disk.