рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░ Apache PDFBox рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ IKVM.Net рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд╡рд╛ рдФрд░ 1C рдХрд╛ рдПрдХреАрдХрд░рдг
рдЬрд╛рд╡рд╛ рдФрд░ 1 рд╕реА рдХреЗ рдПрдХреАрдХрд░рдг рдкрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдлрд┐рд░ рднреА, рджрд┐рд▓рдЪрд╕реНрдк рдЬрд╛рд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдХрд╛рдо рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдореИрдВ 1 рд╕реА рдХреЗ рдЕрдВрджрд░ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред Apache PDFBox рдПрдХ рдРрд╕реА рд▓реЛрдХрдкреНрд░рд┐рдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓реЗрдВ рдмрд╣реБрдд рдЖрдо рд╣реИрдВ, рдФрд░ 1 рд╕реА рдореЗрдВ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИрдВред рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд┐рдзрд┐ IKVM.NET рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ .Net рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП JAVA рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХреАрдХрд░рдг рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 1 рд╕реА рдХреЗ рдЕрдВрджрд░ рдЗрд╕ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
Apache PDFBox PDF рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд╛рд╡рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред рдЖрдкрдХреЛ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: рдЯреЗрдХреНрд╕реНрдЯ рдирд┐рдХрд╛рд▓реЗрдВ, рдкреАрдбреАрдПрдл рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ, рдорд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ, рдЫрд╡рд┐ рдореЗрдВ рдмрджрд▓реЗрдВ, рдлреЙрд░реНрдо рднрд░реЗрдВ, рдкреАрдбреАрдПрдл рдмрдирд╛рдПрдВ, рдкреАрдбреАрдПрдл / рдП рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рд▓реНрдпреВрд╕реАрди рдЦреЛрдЬ рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рдВрд╕реНрдХрд░рдг 1.8.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
IKVM.Net рдореЛрдиреЛ рдФрд░ .Net рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╣реИред IKVM.Net рдЖрдкрдХреЛ .NET рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ .Net рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдмрджрд▓рдиреЗ рдФрд░ рдлрд┐рд░ .Net рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред IKVM.Net рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЬрд╛рд╡рд╛ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХрдИ рд╕рд╣рд╛рдпрдХ рдЕрд╕реЗрдВрдмрд▓реА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг 7.2.4630.5 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдХрдиреНрд╡рд░реНрдЯ рдЬрд╛рд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ dll рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЗрд╕ рдХрджрдо рдкрд░, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ IKVM.Net 7.2.4630.5 рд╕реНрдерд╛рдкрд┐рдд рд╣реИред
рдЬрд╛рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ .Net рдлреНрд░реЗрдорд╡рд░реНрдХ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛ рд░рдирдЯрд╛рдЗрдо рдЗрдВрдЬрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ JAVA_HY рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
JAVA_HOME C:\Progra~1\Java\jre6

рдЕрд╕реЗрдВрдмрд▓реА рд░реВрдкрд╛рдВрддрд░рдг рдХрдорд╛рдВрдб рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рд╣реИрдВ:
ikvmc.exe -out:pdfbox.dll pdfbox-app-1.8.2.jar
рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ PDFbox.dll рдЕрд╕реЗрдВрдмрд▓реА рд╣реИ:
IKVM.OpenJDK.Beans.dll IKVM.OpenJDK.Core.dll IKVM.OpenJDK.Jdbc.dll IKVM.OpenJDK.Media.dll IKVM.OpenJDK.Naming.dll IKVM.OpenJDK.Security.dll IKVM.OpenJDK.SwingAWT.dll IKVM.OpenJDK.Text.dll IKVM.OpenJDK.Util.dll IKVM.OpenJDK.XML.API.dll IKVM.Runtime.dll
рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╡рд┐рдзрд┐ рдХрд╛ рдиреБрдХрд╕рд╛рди рд╕рдВрдпреБрдХреНрдд рд░реВрдк рд╕реЗ рдЖрдкреВрд░реНрддрд┐ рдХреА рдЧрдИ рдЕрд╕реЗрдВрдмрд▓реА рдХреА рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред PDFBox.dll рдореЗрдВ рд▓рдЧрднрдЧ 10 MB рд▓рдЧрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд╣рд╛рдпрдХ рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдореЗрдВ рд▓рдЧрднрдЧ 18 MB рд▓рдЧрддреЗ рд╣реИрдВред
1C рдХреЗ рднреАрддрд░ рд╕рд░рд▓ PDFBox рд╕рдВрдЪрд╛рд▓рди рдХрд░рдирд╛
JAVA рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд PDFBox.dll рдЕрд╕реЗрдВрдмрд▓реА .Net рдмреНрд░рд┐рдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 1C рдХреЗ рдЕрдВрджрд░ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рдПрдЧреАред
рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрдВрдмрд▓реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:
net.LoadAssemblyFrom( + "IKVM.AWT.WinForms.dll"); net.LoadAssemblyFrom( + "IKVM.OpenJDK.Beans.dll"); net.LoadAssemblyFrom( + "IKVM.OpenJDK.Core.dll"); net.LoadAssemblyFrom( + "IKVM.OpenJDK.Jdbc.dll"); net.LoadAssemblyFrom( + "IKVM.OpenJDK.Media.dll"); net.LoadAssemblyFrom( + "IKVM.OpenJDK.Naming.dll"); net.LoadAssemblyFrom( + "IKVM.OpenJDK.Security.dll"); net.LoadAssemblyFrom( + "IKVM.OpenJDK.SwingAWT.dll"); net.LoadAssemblyFrom( + "IKVM.OpenJDK.Text.dll"); net.LoadAssemblyFrom( + "IKVM.OpenJDK.Util.dll"); net.LoadAssemblyFrom( + "IKVM.OpenJDK.XML.API.dll"); net.LoadAssemblyFrom( + "IKVM.Runtime.dll"); net.LoadAssemblyFrom( + "pdfbox.dll");
рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ:
pdf = net.CallStatic("org.apache.pdfbox.pdmodel.PDDocument", "load", );
Pdf рд╕реЗ рдкрд╛рда рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
stripper = net.New("org.apache.pdfbox.util.PDFTextStripper"); Pdf = stripper.getText(pdf);
рдПрдХрд▓-рдкреГрд╖реНрда Pdf рдореЗрдВ рдХрд┐рд╕реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ:
splitter = net.New("org.apache.pdfbox.util.Splitter"); splitter.setSplitAtPage(1); = splitter.split(pdf).toArray(); = 0 .Length - 1 .GetValue().save( + ( + 1) + ".pdf"); ;
рдореВрд▓ Pdf рдХреЗ рд╡рд┐рд╖рдо рдкреГрд╖реНрдареЛрдВ рд╕реЗ рдПрдХ рдирдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдПрдБ:
= pdf.getDocumentCatalog().getAllPages(); newPdf = net.New("org.apache.pdfbox.pdmodel.PDDocument"); = 0 .size() - 1 % 2 = 1 ; ; newPdf.addPage(.get()); ; newPdf.save(Pdf);
рдЕрдирд╛рд░рдХреНрд╖рд┐рдд рдореБрджреНрджрд╛
рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рдВрдЪрд╛рд▓рди рдиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдХрд┐рдпрд╛, рдкреГрд╖реНрда / рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдЕрдирд╕реБрд▓рдЭреА рд░рд╣реАред
= net.GetStatic("java.awt.image.BufferedImage", "TYPE_INT_ARGB"); imageWriter = net.New("org.apache.pdfbox.util.PDFImageWriter"); success = imageWriter.writeImage(pdf, "png", "", 1, 3, "document-img", , 96);
рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЧрд▓рдд рдкрд╛рда рдЖрдЙрдЯрдкреБрдЯ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк png рдлрд╝рд╛рдЗрд▓ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИред рдкрд╛рда рдЪрд┐рддреНрд░ рдХреЗ рдКрдкрд░реА рдмрд╛рдПрдБ рдХреЛрдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЫреЛрдЯреЗ рдкреНрд░рд┐рдВрдЯ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╕рдВрдЧреНрд░рд╣:
Java1C.zip (14.36 mb)