Example code is for an older version of Toolkit, newer code is available.
# Copyright (c) 2021 ActivePDF, Inc.
# ActivePDF Toolkit 2017
# Example generated 02/27/21
require 'win32ole'
# Get current path
strPath = File.expand_path(File.dirname(__FILE__)) + "\\"
# Instantiate Object
oTK = WIN32OLE.new("APToolkit.Object")
# Here you can place any code that will alter the output file
# Such as adding security, setting page dimensions, etc.
# Create the new PDF file in memory
intOpenOutputFile = oTK.OpenOutputFile('MEMORY')
if intOpenOutputFile != 0
puts "Error in OpenOutputFile: #{intOpenOutputFile}"
end
# Open the template PDF
intOpenInputFile = oTK.OpenInputFile(strPath + 'PDF.pdf')
if intOpenInputFile != 0
puts "Error in OpenInputFile: #{intOpenInputFile}"
end
# Here you can call any Toolkit functions that will manipulate
# the input file such as text and image stamping, form filling, etc.
# Copy the template (with any changes) to the new file
# Start page and end page, 0 = all pages
intCopyForm = oTK.CopyForm(0, 0)
if intCopyForm != 1
puts "Error in CopyForm: #{intCopyForm}"
end
# Close the new file to complete PDF creation
oTK.CloseOutputFile()
# Set the in memory PDF to a variable
# To retrieve the PDF as a byte array use oTK.BinaryImage
memPDF = oTK.OutputByteStream
# Toolkit can take a PDF in memory and use it as an input file
# Here we will use the PDF we just created in memory
# Create the final PDF on disk
intOpenOutputFile = oTK.OpenOutputFile(strPath + 'final.pdf')
if intOpenOutputFile != 0
puts "Error in OpenOutputFile: #{intOpenOutputFile}"
end
# Prepare the in memory PDF to be used with Toolkit
oTK.InputByteStream = memPDF
# Now we can use 'MEMORY' as the filename with OpenInputFile or MergeFile
intMergeFile = oTK.MergeFile('MEMORY', 0, 0)
if intMergeFile != 1
puts "Error in MergeFile: #{intMergeFile}"
end
# Close the final file to complete PDF creation
oTK.CloseOutputFile()
# To save a PDF in memory to a file directly call SaveMemoryToDisk
oTK.SaveMemoryToDisk(strPath + 'SavedMemory.pdf')
# Release Object
oTK = ''
# Process Complete
puts "Done!"