Is that possible to pass input file for conversion as InputStream in Java

Another customer asked for C# code, to convert Office file entirely in memory.

// For demo purpose use FileStream
FileStream fs = new FileStream(input_path + "simple-word_2007.docx", FileMode.Open);
pdftron.Filters.MemoryFilter memoryFilter = new pdftron.Filters.MemoryFilter((int)fs.Length, false); // false = sink
pdftron.Filters.FilterWriter writer = new pdftron.Filters.FilterWriter(memoryFilter); // helper filter to allow us to write to buffer
int bytes_read = 0;
byte[] buf = new byte[10 * 1024]; // 10 MiB buffer
do
{
    bytes_read = fs.Read(buf, 0, buf.Length);
    if(bytes_read < buf.Length)
    {
        for(int i = 0; i < bytes_read; i++)
        {
           writer.WriteUChar(buf[i]);
        }
    }
    else
    {
        writer.WriteBuffer(buf);
    }
} while (bytes_read > 0);
writer.Flush();
memoryFilter.SetAsInputFilter(); // switch from sink to source
PDFDoc pdfdoc = new PDFDoc();
pdftron.PDF.Convert.OfficeToPDF(pdfdoc, memoryFilter, null);
// For demo purpose write back to disk
pdfdoc.Save(output_path + "simple-word_2007.docx.pdf", SDFDoc.SaveOptions.e_linearized);
// But most likely you want to save in memory
byte[] pdfData = pdfdoc.Save(SDFDoc.SaveOptions.e_linearized);
1 Like