The following code example imports XMP metadata and saves
the new PDF file to disk. (See Importing Metadata into PDF Documents.)
/*
* Ensure that you create a .NET client assembly that uses
* base64 encoding. This is required to populate a BLOB
* object with data or retrieve data from a BLOB object.
*
* For information, see "Creating a .NET client assembly" in Programming
* with LiveCycle ES
*/
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.IO;
namespace XMPUtilityWSApp
{
class ImportMetadataTest
{
[STAThread]
static void Main(string[] args)
{
try
{
// Create a XMPUtilityServiceService object
XMPUtilityServiceService svc = new XMPUtilityServiceService();
// Provide authentication credentials to the service
svc.Credentials = new System.Net.NetworkCredential(
"administrator",
"password"
);
// Create a BLOB that represents the input PDF file
BLOB inDoc = new BLOB();
// Specify a PDF document whose metadata is to be exported
string inputFileName = "C:\\Adobe\Loan.pdf";
FileStream fs = new FileStream(inputFileName, FileMode.Open);
// Get the length of the file stream and create a byte array
int len = (int)fs.Length;
byte[] byteArray = new byte[len];
// Populate the byte array with the contents of the file stream
fs.Read(byteArray, 0, len);
// Populate the BLOB object
inDoc.binaryData = byteArray;
// Specify an XML file containing the XMP metadata to be imported
BLOB xmpDoc = new BLOB();
string xmpFileName = "C:\\Adobe\FormMetadata.xml";
FileStream xmpfs = new FileStream(xmpFileName, FileMode.Open);
int xmplen = (int)xmpfs.Length;
byte[] xmpByteArray = new byte[xmplen];
xmpfs.Read(xmpByteArray, 0, xmplen);
xmpDoc.binaryData = xmpByteArray;
// Import the XMP metadata from an XMP file
BLOB outDoc = svc.importXMP(inDoc, xmpDoc);
// Inspect the XMP metadata object (retrieve the document's author in this case)
XMPUtilityMetadata myXmp = svc.exportMetadata(outDoc);
string name = myXmp.author;
Console.WriteLine("The document's author is " + name);
// Save the PDF document containing the new metadata
byte[] outByteArray = outDoc.binaryData;
string FILE_NAME = "C:\\Adobe\LoanMetadata.pdf";
FileStream fs2 = new FileStream(FILE_NAME, FileMode.OpenOrCreate);
BinaryWriter w = new BinaryWriter(fs2);
w.Write(outByteArray);
w.Close();
fs2.Close();
Console.WriteLine("The XMP metadata was imported into the PDF document.");
}
catch (Exception ee)
{
Console.WriteLine("An unexpected exception was encountered: " + ee.Message + "\n" + ee.StackTrace);
}
}
}
}
|
|
|