示例#1
0
        /// <summary>Prepares the PDF-object structure.</summary>
        private void PrepareObjIds()
        {
            if (bHideToolBar || bHideMenubar || bHideWindowUI || bFitWindow || bCenterWindow || bDisplayDocTitle ||
                nonFullScreenPageMode != NonFullScreenPageMode.UseNone)
            {
                pdfIndirectObject_ViewerPreferences = new PdfIndirectObject_ViewerPreferences(this);
            }

            //     iObjEncoding = iObjId++;

            // search all fonts and prepare the pages
            StringBuilder sb = new StringBuilder(50);

            foreach (Page page in report.enum_Page)
            {
            }
            // pages
            pdfIndirectObject_Pages = new PdfIndirectObject_Pages(this);
            foreach (Page page in report.enum_Page)
            {
                PdfIndirectObject_Page pdfIndirectObject_Page = (PdfIndirectObject_Page)page.oRepObjX;
                PrepareObjIdsForContainer(pdfIndirectObject_Page, page);
                pdfIndirectObject_Page.pdfIndirectObject_PageContents = new PdfIndirectObject_PageContents(this, page);
            }
            foreach (ImageData imageData in report.ht_ImageData.Values)
            {
                imageData.oImageResourceX = new PdfIndirectObject_ImageJpeg(this, imageData);
            }
        }
示例#2
0
 //------------------------------------------------------------------------------------------01.02.2006
 /// <summary>Writes the object to the buffer.</summary>
 internal override void Write()
 {
     StartObj();
     Dictionary_Start();
     Dictionary_Key("Type");  Name("Pages");
     Dictionary_Key("Count");  Number(report.iPageCount);
     Dictionary_Key("Kids");
     ArrayStart();
     foreach (Page page in report.enum_Page)
     {
         PdfIndirectObject_Page pdfIndirectObject_Page = (PdfIndirectObject_Page)page.oRepObjX;
         IndirectReference(pdfIndirectObject_Page);
     }
     ArrayEnd();
     Dictionary_End();
     EndObj();
 }
示例#3
0
        //----------------------------------------------------------------------------------------------------x
        /// <summary>Prepares the PDF-object structure for a container.</summary>
        /// <param name="pdfPageData"></param>
        /// <param name="iObjId"></param>
        /// <param name="container"></param>
        private void PrepareObjIdsForContainer(PdfIndirectObject_Page pdfPageData, Container container)
        {
            foreach (RepObj repObj in container)
            {
                if (repObj is Container)
                {
                    PrepareObjIdsForContainer(pdfPageData, (Container)repObj);
                }
                else if (repObj is RepArcBase)
                {
                    pdfPageData.bProcSet_PDF = true;
                }
                else if (repObj is RepImage)
                {
//          RepImage repImage = (RepImage)repObj;
//          ImageFormat imageFormat = repImage.imageData.image.RawFormat;
//          if (Object.Equals(imageFormat, ImageFormat.Jpeg)) {
//            pdfPageData.bProcSet_ImageC = true;
//          }
//          else if (Object.Equals(imageFormat, ImageFormat.Tiff)) {
//            pdfPageData.bProcSet_ImageB = true;
//          }
//          else {
//            Debug.Fail("unknown image type: send image to [email protected]");
//          }
                    RepImage repImage = repObj as RepImage;
                    repImage.imageData.stream.Position = 0;

                    //Added By TechnoGuru - [email protected] - http://www.borie.org/
                    //To support tiff file
                    //I reload Image from stream to be more scalable
                    //(Dont't have like that lots of image object on memeory
    #if !WindowsCE
                    using (Image image = Image.FromStream(repImage.imageData.stream)) {
                        if (image.RawFormat.Equals(ImageFormat.Tiff) && image.PixelFormat.Equals(PixelFormat.Format1bppIndexed))
                        {
                            pdfPageData.bProcSet_ImageI = true; // CHANGED
                        }
                        else if (image.RawFormat.Equals(ImageFormat.Tiff) || image.RawFormat.Equals(ImageFormat.Jpeg))
                        {
                            pdfPageData.bProcSet_ImageC = true;
                        }
                        else
                        {
                            Debug.Fail("unknown image type: send image to [email protected]");
                        }
                    }
#endif
                }
                else if (repObj is RepLine)
                {
                    pdfPageData.bProcSet_PDF = true;
                }
                else if (repObj is RepRect)
                {
                    pdfPageData.bProcSet_PDF = true;
                }
                else if (repObj is RepString)
                {
                    FontProp        fontProp_String = ((RepString)repObj).fontProp;
                    PdfFontPropData pdfFontPropData = (PdfFontPropData)fontProp_String.fontPropData;
                    if (pdfFontPropData.pdfIndirectObject_Font == null)
                    {
                        pdfFontPropData.pdfIndirectObject_Font = new PdfIndirectObject_Font(this, fontProp_String);
                    }
                    pdfPageData.RegisterFontProp(fontProp_String);
                    pdfPageData.bProcSet_Text = true;
                }
                else
                {
                    throw new ReportException("unknown report object type [" + repObj.GetType().FullName + "]");
                }
            }
        }