private int write_pdf_page(int obj)
{
int written = writeToFile("<<\n/Type /Page \n/Parent ");
string buffer = string.Format(CultureInfo.InvariantCulture, "{0}", m_pdf_pages);
written += writeToFile(buffer);
written += writeToFile(" 0 R \n");
written += writeToFile("/MediaBox [");
buffer = string.Format(CultureInfo.InvariantCulture, "{0:F4}", m_pdf_mediabox.x1);
written += writeToFile(buffer);
written += writeToFile(" ");
buffer = string.Format(CultureInfo.InvariantCulture, "{0:F4}", m_pdf_mediabox.y1);
written += writeToFile(buffer);
written += writeToFile(" ");
buffer = string.Format(CultureInfo.InvariantCulture, "{0:F4}", m_pdf_mediabox.x2);
written += writeToFile(buffer);
written += writeToFile(" ");
buffer = string.Format(CultureInfo.InvariantCulture, "{0:F4}", m_pdf_mediabox.y2);
written += writeToFile(buffer);
written += writeToFile("] \n");
written += writeToFile("/Contents ");
buffer = string.Format(CultureInfo.InvariantCulture, "{0}", obj + 1);
written += writeToFile(buffer);
written += writeToFile(" 0 R \n");
written += writeToFile("/Resources << \n");
if (m_tiff_pages[m_pdf_page].page_tilecount != 0)
{
written += writeToFile("/XObject <<\n");
for (int i = 0; i < m_tiff_pages[m_pdf_page].page_tilecount; i++)
{
written += writeToFile("/Im");
buffer = string.Format(CultureInfo.InvariantCulture, "{0}", m_pdf_page + 1);
written += writeToFile(buffer);
written += writeToFile("_");
buffer = string.Format(CultureInfo.InvariantCulture, "{0}", i + 1);
written += writeToFile(buffer);
written += writeToFile(" ");
buffer = string.Format(CultureInfo.InvariantCulture,
"{0}", obj + 3 + 2 * i + m_tiff_pages[m_pdf_page].page_extra);
written += writeToFile(buffer);
written += writeToFile(" 0 R ");
if (i % 4 == 3)
written += writeToFile("\n");
}
written += writeToFile(">>\n");
}
else
{
written += writeToFile("/XObject <<\n");
written += writeToFile("/Im");
buffer = string.Format(CultureInfo.InvariantCulture, "{0}", m_pdf_page + 1);
written += writeToFile(buffer);
written += writeToFile(" ");
buffer = string.Format(CultureInfo.InvariantCulture,
"{0}", obj + 3 + m_tiff_pages[m_pdf_page].page_extra);
written += writeToFile(buffer);
written += writeToFile(" 0 R ");
written += writeToFile(">>\n");
}
if (m_tiff_transferfunctioncount != 0)
{
written += writeToFile("/ExtGState <<");
writeToFile("/GS1 ");
buffer = string.Format(CultureInfo.InvariantCulture, "{0}", obj + 3);
written += writeToFile(buffer);
written += writeToFile(" 0 R ");
written += writeToFile(">> \n");
}
written += writeToFile("/ProcSet [ ");
if (m_pdf_colorspace == t2p_cs_t.T2P_CS_BILEVEL || m_pdf_colorspace == t2p_cs_t.T2P_CS_GRAY)
{
written += writeToFile("/ImageB ");
}
else
{
written += writeToFile("/ImageC ");
if ((m_pdf_colorspace & t2p_cs_t.T2P_CS_PALETTE) != 0)
written += writeToFile("/ImageI ");
}
written += writeToFile("]\n>>\n>>\n");
return written;
}