Пример #1
0
        static void Test()
        {
            PdfOperations.PlaceImageOnLabel(@"C:\Users\plotnikov\Desktop\PdfPublisher2\bin\Debug\0.pdf", @"C:\Users\plotnikov\Desktop\PdfPublisher2\bin\Debug\1.pdf", "USER_85551D33_2F27_4DE2_A43F_817174A8F610", @"C:\Users\plotnikov\Desktop\PdfPublisher2\bin\Debug\0.png", "fit", "", false);

            /*  PdfOperations.HelloWorld(@"d:\PDF1.pdf");
             *
             * PdfOperations.FromImage(@"d:\img.png", @"d:\PDF2.pdf");
             * PdfOperations.FromImage(@"d:\original.jpg", @"d:\PDF3.pdf");
             * // PdfOperations.FromImage(@"d:\test.tiff", @"d:\PDF4.pdf"); не поддерживаются tif с прозрачным слоем (не все tif поддерживаются)
             * PdfOperations.FromImage(@"d:\test2.tif", @"d:\PDF4.pdf");
             * PdfOperations.Combine(new string[] { @"d:\PDF1.pdf", @"d:\PDF2.pdf", @"d:\PDF3.pdf", @"d:\PDF4.pdf", @"d:\Karyera_menegera.pdf" }, @"d:\PDF5.pdf");
             *
             * //PdfOperations.BarcodeStamp(@"d:\PDF5.pdf", "12345670", @"d:\PDF6.pdf");
             * PdfOperations.BarcodeStamp(@"d:\PDF5.pdf", "3222231", @"d:\PDF6.pdf");
             *
             * PdfOperations.BarcodeStamp(@"d:\Книга-А.Mызникова-С камерой на свободу.pdf", "23342344", @"d:\PDF7.pdf");
             *
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\Microsoft Private Cloud Licensing Datasheet.pdf", "23342344", @"d:\PDF1-1.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\mostovik_44_hmkh iirlueou.pdf", "23342344", @"d:\PDF1-2.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\Ocean Grill.pdf", "23342344", @"d:\PDF1-3.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\offline.pdf", "23342344", @"d:\PDF1-4.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\Present-KPSB-may2001.pdf", "23342344", @"d:\PDF1-5.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\Q-50-12-4L.pdf", "23342344", @"d:\PDF1-6.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\qashqai360.pdf", "23342344", @"d:\PDF1-7.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\Saga.pdf", "23342344", @"d:\PDF1-8.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\sagas.pdf", "23342344", @"d:\PDF1-9.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\Shema_2_new.pdf", "23342344", @"d:\PDF1-10.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\Sounds Of The Sea.pdf", "23342344", @"d:\PDF1-11.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\Spisok_0_new.pdf", "23342344", @"d:\PDF1-12.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\Tarify_2013_UEK.pdf", "23342344", @"d:\PDF1-13.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\Windows_Azure_Pack_Datasheet.pdf", "23342344", @"d:\PDF1-14.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\Windows_Server_2012_R2_Datasheet.pdf", "23342344", @"d:\PDF1-15.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\ваучер GTA.pdf", "23342344", @"d:\PDF1-16.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf\аэропорт Шереметьево.pdf", "23342344", @"d:\PDF1-17.pdf");
             *
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf-dwg\Box-Layout1.pdf", "23342344", @"d:\PDF2-1.pdf");
             * PdfOperations.BarcodeStamp(@"D:\SampleFiles\pdf-dwg\test-Layout1.pdf", "23342344", @"d:\PDF2-2.pdf");
             *
             * PdfOperations.BarcodeStamp(@"D:\box_box.pdf", "23342344", @"d:\PDF3-1.pdf");
             * PdfOperations.BarcodeStamp(@"D:\box-box-nano.pdf", "23342344", @"d:\PDF3-2.pdf");
             *
             * PdfOperations.BarcodeStamp(@"D:\box-box-nano.pdf", "23342344", @"d:\PDF3-2.pdf");
             * PdfOperations.BarcodeStamp(@"D:\box-nano.pdf", "23342344", @"d:\PDF3-3.pdf");
             * PdfOperations.BarcodeStamp(@"D:\зигзаг.pdf", "23342344", @"d:\PDF3-4.pdf");*/
        }
Пример #2
0
        static int Main(string[] args)
        {
            const int RET_OK  = 0;
            const int RET_ERR = 1;
            //Test();
            Options options = new Options();

            if (CommandLine.Parser.Default.ParseArguments(args, options))
            {
                if (options.Commands.Count == 0)
                {
                    Console.Write(options.GetUsage());
                    return(RET_OK);
                }

                try
                {
                    var cmd = options.Commands[0];
                    switch (cmd)
                    {
                    case "combine":
                    {
                        var files  = options.Input.Trim('\"').Split(',');
                        var output = options.Output.Trim('\"');
                        PdfOperations.Combine(files, output);
                        break;
                    }

                    case "barcode":
                    {
                        var    files   = options.Input.Trim('\"').Split(',');
                        var    output  = options.Output.Trim('\"');
                        var    code    = options.Code.Trim('\"');
                        string type    = options.Type.Trim('\"');
                        int    offsetX = options.OffsetX;
                        int    offsetY = options.OffsetY;
                        int    rotate  = options.Rotate;
                        //int type = !string.IsNullOrEmpty(options.Type) ? GetBarCodeType(options.Type) : iTextSharp.text.pdf.Barcode.EAN8;
                        //int offsetX = !string.IsNullOrEmpty(options.Type) ? GetBarCodeType(options.Type) : iTextSharp.text.pdf.Barcode.EAN8;
                        foreach (var file in files)
                        {
                            PdfOperations.BarcodeStamp(file, code, output, type, offsetX, offsetY, rotate);
                        }
                        break;
                    }

                    case "convert":
                    {
                        var input  = options.Input.Trim('\"');
                        var output = options.Output.Trim('\"');
                        PdfOperations.FromImage(input, output);
                        break;
                    }

                    case "image":
                    {
                        var input  = options.Input.Trim('\"');
                        var output = options.Output.Trim('\"');
                        var page   = options.Page;
                        PdfOperations.ToImage(input, page, output);
                        break;
                    }

                    case "scanbarcode":
                    {
                        var    input    = options.Input.Trim('\"');
                        var    page     = options.Page;
                        string barcode  = "";
                        string inputExt = System.IO.Path.GetExtension(input);
                        double scale    = options.Scale;
                        bool   noClean  = options.NoClean;

                        bool find = false;


                        if (inputExt == ".pdf")
                        {
                            PdfOperations.ToImage(input, page, input + ".png", (float)scale);
                            if (page == 0)
                            {
                                // All barcodes
                                Console.Write("Barcodes: ");
                                for (int i = 1; ; i++)
                                {
                                    string imageFileN = PdfOperations.GetFileNameWithIndex(input + ".png", i);
                                    if (!System.IO.File.Exists(imageFileN))
                                    {
                                        break;
                                    }
                                    barcode = BarcodeOperations.Scan(imageFileN);

                                    // Для не найденных barcode просто ставим ; чтобы можно было номер страницы сопоставить
                                    if (find == true)
                                    {
                                        Console.Write(";");
                                    }

                                    if (!string.IsNullOrEmpty(barcode))
                                    {
                                        Console.Write(barcode);
                                        find = true;
                                    }
                                    else
                                    {
                                        Console.Write("-");
                                    }

                                    if (!noClean)
                                    {
                                        System.IO.File.Delete(imageFileN);
                                    }
                                }
                                Console.WriteLine("");
                            }
                            else
                            {
                                barcode = BarcodeOperations.Scan(input + ".png");
                                if (!noClean)
                                {
                                    System.IO.File.Delete(input + ".png");
                                }
                                if (!string.IsNullOrEmpty(barcode))
                                {
                                    Console.WriteLine("Barcode: " + barcode);
                                    find = true;
                                }
                            }
                        }
                        else
                        {
                            barcode = BarcodeOperations.Scan(input);
                            if (!string.IsNullOrEmpty(barcode))
                            {
                                Console.WriteLine("Barcode: " + barcode);
                                find = true;
                            }
                        }

                        if (find == false)
                        {
                            Console.WriteLine(PdfOperations.BARCODE_NOT_FOUND);
                        }
                        break;
                    }

                    case "barcodereplace":
                    {
                        var input  = options.Input.Trim('\"');
                        var output = options.Output.Trim('\"');
                        if (input == output)
                        {
                            throw new Exception(PdfOperations.FILE_MUST_BE_DIFFERENT);
                        }
                        var  label           = options.Label;
                        var  code            = options.Code;
                        var  page            = options.Page;
                        bool displayText     = !options.NoText;
                        bool barCodeReplaced = PdfOperations.ReplaceBarcode128(input, output, page, label, code, displayText);
                        if (!barCodeReplaced)
                        {
                            Console.WriteLine(PdfOperations.BARCODE_NOT_FOUND);
                        }

                        break;
                    }

                    case "find":
                    {
                        var input = options.Input.Trim('\"');
                        var page  = options.Page;
                        var text  = options.Label;

                        var result = PdfOperations.SearchPdfFile(input, text, page);
                        if (result.Count > 0)
                        {
                            foreach (var item in result)
                            {
                                string pos = string.Format("Label position: {0}, {1}, {2}, {3} (page {4})", item.MinX, item.MinY, item.MaxX, item.MaxY, item.Page);
                                Console.WriteLine(pos);
                            }
                        }
                        else
                        {
                            Console.WriteLine(PdfOperations.LABEL_NOT_FOUND);
                        }
                        break;
                    }

                    case "barcodeonlabel":
                    {
                        string input  = options.Input.Trim('\"');
                        string output = options.Output.Trim('\"');
                        if (input == output)
                        {
                            throw new Exception(PdfOperations.FILE_MUST_BE_DIFFERENT);
                        }

                        string type        = options.Type.Trim('\"');
                        string code        = options.Code;
                        string text        = options.Label;
                        string widthParam  = options.Width;
                        string heightParam = options.Height;
                        bool   displayText = !options.NoText;
                        double barHeight   = options.BarHeight;

                        bool stampReplaced = PdfOperations.PlaceBarcodeOnLabel(input, output, text, type, code, widthParam, heightParam, (float)barHeight, displayText);
                        if (!stampReplaced)
                        {
                            Console.WriteLine(PdfOperations.LABEL_NOT_FOUND);
                        }

                        break;
                    }

                    case "imageonlabel":
                    {
                        string input     = options.Input.Trim('\"');
                        string output    = options.Output.Trim('\"');
                        string imageFile = options.ImageFile.Trim('\"');
                        if (input == output)
                        {
                            throw new Exception(PdfOperations.FILE_MUST_BE_DIFFERENT);
                        }

                        string label       = options.Label;
                        string widthParam  = options.Width;
                        string heightParam = options.Height;
                        bool   center      = options.Center;

                        bool labelFinded = PdfOperations.PlaceImageOnLabel(input, output, label, imageFile, widthParam, heightParam, center);
                        if (!labelFinded)
                        {
                            Console.WriteLine(PdfOperations.LABEL_NOT_FOUND);
                        }
                        break;
                    }

                    case "extractimages":
                    {
                        string input = options.Input.Trim('\"');
                        PdfOperations.ExtractImagesFromPDF(input);
                        break;
                    }

                    case "pagesizes":
                    {
                        string input = options.Input.Trim('\"');
                        IList <System.Drawing.SizeF> sizes = PdfOperations.GetPagesInfo(input);
                        bool firstTime = true;
                        foreach (System.Drawing.SizeF size in sizes)
                        {
                            if (!firstTime)
                            {
                                Console.Write(";");
                            }
                            Console.Write("{0};{1}", size.Width, size.Height);
                            firstTime = false;
                        }
                        Console.WriteLine();
                        break;
                    }

                    case "helloworld":
                    {
                        var output = options.Output;
                        if (string.IsNullOrEmpty(output))
                        {
                            output = "helloworld.pdf";
                        }
                        else
                        {
                            output = output.Trim('\"');
                        }
                        PdfOperations.HelloWorld(output);
                        break;
                    }
                    }
                }
                catch (System.Exception ex)
                {
                    Console.WriteLine(PdfOperations.OPERATION_ERROR);
                    Console.WriteLine(ex.Message);
                    return(RET_ERR);
                }
                return(RET_OK);
            }
            return(RET_ERR);
        }