private int write_pdf_trailer()
{
m_pdf_fileid = new byte [33];
if (m_testFriendly)
{
string fileidbuf = "2900000023480000FF180000FF670000";
for (int i = 0; i < 16; i++)
{
m_pdf_fileid[2 * i] = (byte)(fileidbuf[2 * i]);
m_pdf_fileid[2 * i + 1] = (byte)(fileidbuf[2 * i + 1]);
}
}
else
{
Random rnd = new Random(DateTime.Now.Millisecond);
byte[] temp = new byte[16];
rnd.NextBytes(temp);
for (int i = 0; i < 16; i++)
{
string s = string.Format(CultureInfo.InvariantCulture, "{0:X2}", temp[i]);
m_pdf_fileid[i * 2] = (byte)s[0];
m_pdf_fileid[i * 2 + 1] = (byte)s[1];
}
}
int written = writeToFile("trailer\n<<\n/Size ");
string buffer = string.Format(CultureInfo.InvariantCulture, "{0}", m_pdf_xrefcount + 1);
written += writeToFile(buffer);
written += writeToFile("\n/Root ");
buffer = string.Format(CultureInfo.InvariantCulture, "{0}", m_pdf_catalog);
written += writeToFile(buffer);
written += writeToFile(" 0 R \n/Info ");
buffer = string.Format(CultureInfo.InvariantCulture, "{0}", m_pdf_info);
written += writeToFile(buffer);
written += writeToFile(" 0 R \n/ID[<");
written += writeToFile(m_pdf_fileid, 32);
written += writeToFile("><");
written += writeToFile(m_pdf_fileid, 32);
written += writeToFile(">]\n>>\nstartxref\n");
buffer = string.Format(CultureInfo.InvariantCulture, "{0}", m_pdf_startxref);
written += writeToFile(buffer);
written += writeToFile("\n%%EOF\n");
return written;
}