code sources
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
using iText.Kernel.Geom;
|
||||
using iText.Kernel.Pdf;
|
||||
using iText.Kernel.Pdf.Xobject;
|
||||
using iText.Layout;
|
||||
using iText.Layout.Element;
|
||||
|
||||
using java.util;
|
||||
using org.apache.pdfbox.pdmodel.graphics.xobject;
|
||||
using org.apache.pdfbox.pdmodel;
|
||||
|
||||
namespace ComicCompressor
|
||||
{
|
||||
public class ImageExtractor7
|
||||
{
|
||||
public static readonly String DEST = "K:\\_COMIX\\_TOOLS_\\comic-compress-master\\bin\\Debug\\net6.0\\_NEW_PDF_\\Fan SUP 18.cbz";
|
||||
|
||||
public static readonly String SRC = "K:\\_COMIX\\_TOOLS_\\comic-compress-master\\bin\\Debug\\net6.0\\_PDF_\\Fan SUP 18.pdf";
|
||||
|
||||
public static void Main7()
|
||||
{
|
||||
FileInfo file = new FileInfo(DEST);
|
||||
file.Directory.Create();
|
||||
|
||||
new ImageExtractor7().ManipulatePdf(DEST);
|
||||
}
|
||||
|
||||
protected void ManipulatePdf(String dest)
|
||||
{
|
||||
PdfDocument resultDoc = new PdfDocument(new PdfWriter(dest));
|
||||
PdfDocument srcDoc = new PdfDocument(new PdfReader(SRC));
|
||||
|
||||
// Assume that there is a single XObject in the source document
|
||||
// and this single object is an image.
|
||||
PdfDictionary pageDict = srcDoc.GetFirstPage().GetPdfObject();
|
||||
PdfDictionary pageResources = pageDict.GetAsDictionary(PdfName.Resources);
|
||||
PdfDictionary pageXObjects = pageResources.GetAsDictionary(PdfName.XObject);
|
||||
var ks = pageXObjects.KeySet();
|
||||
PdfName imgRef = pageXObjects.KeySet().First();
|
||||
PdfStream imgStream = pageXObjects.GetAsStream(imgRef);
|
||||
PdfImageXObject imgObject = new PdfImageXObject((PdfStream)imgStream.CopyTo(resultDoc));
|
||||
Image image = new Image(imgObject);
|
||||
image.ScaleToFit(14400, 14400);
|
||||
image.SetFixedPosition(0, 0);
|
||||
|
||||
|
||||
srcDoc.Close();
|
||||
|
||||
PageSize pageSize = new PageSize(image.GetImageScaledWidth(), image.GetImageScaledHeight());
|
||||
Document doc = new Document(resultDoc, pageSize);
|
||||
doc.Add(image);
|
||||
|
||||
doc.Close();
|
||||
}
|
||||
|
||||
|
||||
public static void MainBox()
|
||||
{
|
||||
new ImageExtractor7().ManipulatePdf(DEST);
|
||||
}
|
||||
|
||||
protected void ManipulatePdfBox(String dest)
|
||||
{
|
||||
PDDocument document = null;
|
||||
document = PDDocument.load(SRC);
|
||||
java.util.List pages = document.getDocumentCatalog().getAllPages();
|
||||
Iterator iter = pages.iterator();
|
||||
while (iter.hasNext())
|
||||
{
|
||||
PDPage page = (PDPage)iter.next();
|
||||
PDResources resources = page.getResources();
|
||||
Map pageImages = resources.getImages();
|
||||
if (pageImages != null)
|
||||
{
|
||||
Iterator imageIter = pageImages.keySet().iterator();
|
||||
while (imageIter.hasNext())
|
||||
{
|
||||
String key = (String)imageIter.next();
|
||||
PDXObjectImage image = (PDXObjectImage)pageImages.get(key);
|
||||
//image.write2OutputStream(/* some output stream */);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user