private int write_pdf_info(Tiff input)
{
if (m_pdf_datetime == null)
pdf_tifftime(input);
int written = writeToFile("<< ");
if (!m_testFriendly)
{
if (strlen(m_pdf_datetime) > 0)
{
written += writeToFile("\n/CreationDate ");
written += write_pdf_string(m_pdf_datetime);
written += writeToFile("\n/ModDate ");
written += write_pdf_string(m_pdf_datetime);
}
written += writeToFile("\n/Producer ");
string buffer = string.Format(CultureInfo.InvariantCulture,
"libtiff / tiff2pdf - {0}", Tiff.AssemblyVersion);
written += write_pdf_string(Latin1Encoding.GetBytes(buffer));
}
written += writeToFile("\n");
FieldValue[] result = null;
if (m_pdf_creator != null)
{
if (strlen(m_pdf_creator) > 0)
{
byte[] buf = m_pdf_creator;
if (strlen(m_pdf_creator) > 511)
{
buf = new byte[512];
Buffer.BlockCopy(m_pdf_creator, 0, buf, 0, 511);
}
written += writeToFile("/Creator ");
written += write_pdf_string(buf);
written += writeToFile("\n");
}
}
else
{
result = input.GetField(TiffTag.SOFTWARE);
if (result != null)
{
byte[] info = result[0].ToByteArray();
byte[] buf = info;
if (strlen(info) > 511)
{
buf = new byte[512];
Buffer.BlockCopy(info, 0, buf, 0, 511);
}
written += writeToFile("/Creator ");
written += write_pdf_string(buf);
written += writeToFile("\n");
}
}
if (m_pdf_author != null)
{
if (strlen(m_pdf_author) > 0)
{
byte[] buf = m_pdf_author;
if (strlen(m_pdf_author) > 511)
{
buf = new byte[512];
Buffer.BlockCopy(m_pdf_author, 0, buf, 0, 511);
}
written += writeToFile("/Author ");
written += write_pdf_string(buf);
written += writeToFile("\n");
}
}
else
{
result = input.GetField(TiffTag.ARTIST);
if (result != null)
{
byte[] info = result[0].ToByteArray();
byte[] buf = info;
if (strlen(info) > 511)
{
buf = new byte[512];
Buffer.BlockCopy(info, 0, buf, 0, 511);
}
written += writeToFile("/Author ");
written += write_pdf_string(buf);
written += writeToFile("\n");
}
else
{
result = input.GetField(TiffTag.COPYRIGHT);
if (result != null)
{
byte[] info = result[0].ToByteArray();
byte[] buf = info;
if (strlen(info) > 511)
{
buf = new byte[512];
Buffer.BlockCopy(info, 0, buf, 0, 511);
}
written += writeToFile("/Author ");
written += write_pdf_string(buf);
written += writeToFile("\n");
}
}
}
if (m_pdf_title != null)
{
if (strlen(m_pdf_title) > 0)
{
byte[] buf = m_pdf_title;
if (strlen(m_pdf_title) > 511)
{
buf = new byte[512];
Buffer.BlockCopy(m_pdf_title, 0, buf, 0, 511);
}
written += writeToFile("/Title ");
written += write_pdf_string(buf);
written += writeToFile("\n");
}
}
else
{
result = input.GetField(TiffTag.DOCUMENTNAME);
if (result != null)
{
byte[] info = result[0].ToByteArray();
byte[] buf = info;
if (strlen(info) > 511)
{
buf = new byte[512];
Buffer.BlockCopy(info, 0, buf, 0, 511);
}
written += writeToFile("/Title ");
written += write_pdf_string(buf);
written += writeToFile("\n");
}
}
if (m_pdf_subject != null)
{
if (strlen(m_pdf_subject) > 0)
{
byte[] buf = m_pdf_subject;
if (strlen(m_pdf_subject) > 511)
{
buf = new byte[512];
Buffer.BlockCopy(m_pdf_subject, 0, buf, 0, 511);
}
written += writeToFile("/Subject ");
written += write_pdf_string(buf);
written += writeToFile("\n");
}
}
else
{
result = input.GetField(TiffTag.IMAGEDESCRIPTION);
if (result != null)
{
byte[] info = result[0].ToByteArray();
byte[] buf = info;
if (strlen(info) > 511)
{
buf = new byte[512];
Buffer.BlockCopy(info, 0, buf, 0, 511);
}
written += writeToFile("/Subject ");
written += write_pdf_string(buf);
written += writeToFile("\n");
}
}
if (m_pdf_keywords != null)
{
if (strlen(m_pdf_keywords) > 0)
{
byte[] buf = m_pdf_keywords;
if (strlen(m_pdf_keywords) > 511)
{
buf = new byte[512];
Buffer.BlockCopy(m_pdf_keywords, 0, buf, 0, 511);
}
written += writeToFile("/Keywords ");
written += write_pdf_string(buf);
written += writeToFile("\n");
}
}
written += writeToFile(">> \n");
return written;
}