←Select platform

WriteAsync(string,object) Method

Summary

Asynchronously writes the created PDF content to the file system using the path provided.

Syntax
C#
C++/CLI
Python
public void WriteAsync( 
   string outputFileName, object userState 
) 
public: 
void WriteAsync(  
   String^ outputFileName, object^ userState 
)  
def WriteAsync(self,outputFileName,userState): 

Parameters

outputFileName

The name of the output file to be saved.

userState

User data object that will be passed to the WriteAsyncCompleted event.

Remarks

The PDF Compressor object normally creates the compressed PDF document file in memory. It can add as many pages as required to the file. Once the PDF file in memory is complete, call this method to write the file to disk, before calling the Dispose method.

This method operates asynchronously, which is useful in cases when you are saving a large file and the Write operation takes a long time. You can use this operation from the main thread and wait for it to finish in a worker thread.

WriteAsync fires the WriteAsyncCompleted event when it finishes.

For more information, refer to Creating a Compressed PDF File.

Use Write(Stream) to write the result to a .NET stream.

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
 
using Leadtools.PdfCompressor; 
 
/* This example shows a how to use the PdfCompressorEngine::WriteAsync method to create a Pdf asynchronously.  
 * The output file is very simple and contains a single image.  
 * We will store the RasterImage and RasterImage and PdfCompressorEngine in a user class so we can dispose them  
 * when WriteAsync finishes and fires the WriteAsyncCompleted event. 
*/ 
 
 
/* Class used to store the RasterImage and PdfCompressorEngine objects */ 
private class WriteAsyncDataStringObject 
{ 
    public RasterImage image;                 /* image to write as Pdf */ 
    public PdfCompressorEngine pdfCompressor; /* compressor object that will do the save */ 
}; 
 
/* Handler for the WriteAsyncCompleted event */ 
private static void OnWriteAsyncCompletedStringObject(object sender, PdfCompressorWriteAsyncCompletedEventArgs args) 
{ 
    if (args.Error != null) 
        Debug.WriteLine($"WriteAsyncThread: The save operation failed with exception = {args.Error.Message}."); 
    else if (args.Cancelled) 
        Debug.WriteLine($"WriteAsyncThread: The save operation was cancelled!"); 
    else 
        Debug.WriteLine($"WriteAsyncThread: The save operation succeeded! Saved as {args.FileName}"); 
    /* clean up the data used by WriteAsync operation */ 
    WriteAsyncDataStringObject data = (WriteAsyncDataStringObject)args.UserState; 
    data.pdfCompressor.Dispose(); 
    data.image.Dispose(); 
    if (args.Stream != null) 
        args.Stream.Close(); 
} 
 
/* Main function calling PdfCompressorEngine.WriteAsync. Note that WriteAsync will finish after this function returns */ 
public void TestPdfCompressorSaveAsyncStringObject() 
{ 
    string srcFile = Path.Combine(LEAD_VARS.ImagesDir, "glare.jpg"); 
    string dstFile = Path.Combine(LEAD_VARS.ImagesDir, "out.pdf"); 
 
    WriteAsyncDataStringObject data = new WriteAsyncDataStringObject(); 
    using (RasterCodecs codecs = new RasterCodecs()) 
        data.image = codecs.Load(srcFile); 
    data.pdfCompressor = new PdfCompressorEngine(); 
    data.pdfCompressor.Insert(data.image); 
 
    /* Register OnWriteAsyncCompleted as a handler for the WriteAsyncCompleted event */ 
    data.pdfCompressor.WriteAsyncCompleted += OnWriteAsyncCompletedStringObject; 
    data.pdfCompressor.WriteAsync(dstFile, data); 
 
    Debug.WriteLine("MainThread: WriteAsync returned..."); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2023.3.31
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.PdfCompressor Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.