Exemplo n.º 1
0
            /// <summary>
            /// Note: Not stable.
            /// </summary>
            /// <param name="webview"></param>
            private async void CreatePDF1(Android.Webkit.WebView webview)
            {
                //var pageCount = await GetPDFPageCount(webview);
                PdfDocument document = new PdfDocument();

                PdfDocument.Page page = document.StartPage(new PdfDocument.PageInfo.Builder(2120, 3000, 1).Create());

                await Task.Delay(34);

                webview.Draw(page.Canvas);
                document.FinishPage(page);
                Stream           filestream = null;
                FileOutputStream fos        = null;

                try
                {
                    filestream = new MemoryStream();
                    fos        = new Java.IO.FileOutputStream(fileNameWithPath, false);
                    document.WriteTo(filestream);
                    fos.Write(((MemoryStream)filestream).ToArray(), 0, (int)filestream.Length);
                }
                catch (Java.Lang.Exception e)
                {
                    System.Console.WriteLine(e.Message);
                }
                finally
                {
                    filestream?.Close();
                    fos?.Close();
                }

                document.Close();

                OnPageLoadFinished?.Invoke(this, new EventArgs());
            }
        public override void OnPageFinished(global::Android.Webkit.WebView myWebview, string url)
        {
            PdfDocument document = new PdfDocument();

            PdfDocument.Page page = document.StartPage(new PdfDocument.PageInfo.Builder(width, height, 1).Create());

            myWebview.Draw(page.Canvas);
            document.FinishPage(page);
            Stream filestream = new MemoryStream();

            Java.IO.FileOutputStream fos = new Java.IO.FileOutputStream(fileNameWithPath, false);
            document.WriteTo(filestream);
            fos.Write(((MemoryStream)filestream).ToArray(), 0, (int)filestream.Length);
            fos.Close();
        }
Exemplo n.º 3
0
            private void drawPage(PdfDocument.Page page)
            {
                Canvas canvas        = page.Canvas;
                int    titleBaseLine = 72;
                int    leftMargin    = 54;

                Paint paint = new Paint();

                paint.Color    = Color.Black;
                paint.TextSize = 36;
                canvas.DrawText("Test Title", leftMargin, titleBaseLine, paint);

                paint.TextSize = 11;
                canvas.DrawText("Test paragraph", leftMargin, titleBaseLine + 25, paint);

                paint.Color = Color.Blue;
                canvas.DrawRect(100, 100, 172, 172, paint);
            }
Exemplo n.º 4
0
            public override void OnWrite(PageRange[] pages, ParcelFileDescriptor destination, CancellationSignal cancellationSignal, WriteResultCallback callback)
            {
                int totalPages = 1;

                for (int i = 0; i < totalPages; i++)
                {
                    if (pageInRange(pages, i))
                    {
                        PdfDocument.Page[] writtenPagesArray;
                        PdfDocument.Page   page = mPdfDocument.StartPage(i);
                        if (cancellationSignal.IsCanceled)
                        {
                            callback.OnWriteCancelled();
                            mPdfDocument.Close();
                            mPdfDocument = null;
                            return;
                        }
                        drawPage(page);
                        mPdfDocument.FinishPage(page);
                    }
                }
                try
                {
                    FileOutputStream fileOutputStream = new FileOutputStream(destination.FileDescriptor);
                    MemoryStream     stream           = new MemoryStream();
                    mPdfDocument.WriteTo(stream);
                    byte[] bytes = stream.ToArray();
                    stream.Close();
                    fileOutputStream.Write(bytes);
                }
                catch (Java.IO.IOException e)
                {
                    callback.OnWriteFailed(e.ToString());
                    return;
                }
                finally
                {
                    mPdfDocument.Close();
                    mPdfDocument = null;
                }
                callback.OnWriteFinished(pages);
            }
Exemplo n.º 5
0
        public void GeneratePdfFile(string text)
        {
            PrintAttributes printAttrs = new PrintAttributes.Builder()
                                         .SetColorMode(PrintColorMode.Color)
                                         .SetMediaSize(PrintAttributes.MediaSize.IsoA4)
                                         .SetResolution(new PrintAttributes.Resolution("guardianHealthId", "TestReport", 592, 842))
                                         .SetMinMargins(PrintAttributes.Margins.NoMargins)
                                         .Build();

            // Create a document
            PdfDocument document = new PrintedPdfDocument(Android.App.Application.Context, printAttrs);

            // Create a page description
            // A4 : Page size
            // pageWidth The page width in PostScript (1/72th of an inch)
            // pageHeight The page height in PostScript(1 / 72th of an inch).
            PageInfo pageInfo = new PageInfo.Builder(592, 842, 1).Create();

            PdfDocument.Page page = document.StartPage(pageInfo);

            Xamarin.Forms.Button btn = new Xamarin.Forms.Button();


            // File to create page
            File path = GetDirectoryPath();

            System.IO.FileStream fileStream = new System.IO.FileStream(path.ToString(), System.IO.FileMode.Create);

            Canvas canvas = page.Canvas;
            Paint  paint  = new Paint();

            canvas.DrawText("This is a demo pdf file.\n" + text, 10, 10, paint);

            document.FinishPage(page);
            document.WriteTo(fileStream);
            document.Close();
            fileStream.Close();
        }
Exemplo n.º 6
0
            public override void OnPageFinished(Android.Webkit.WebView myWebview, string url)
            {
                PdfDocument document = new PdfDocument();

                PdfDocument.Page page = document.StartPage(new PdfDocument.PageInfo.Builder(2120, 3000, 1).Create());

                myWebview.Draw(page.Canvas);
                document.FinishPage(page);
                Stream           filestream = new MemoryStream();
                FileOutputStream fos        = new Java.IO.FileOutputStream(fileNameWithPath, false);;

                try
                {
                    document.WriteTo(filestream);
                    fos.Write(((MemoryStream)filestream).ToArray(), 0, (int)filestream.Length);
                    fos.Close();
                    PdfPage.IsHtmlSet = true;
                }
                catch
                {
                    PdfPage.IsHtmlSet = false;
                }
            }