public int XResolution { get; set; }
@property (nonatomic, assign) NSInteger xResolution;
public int getXResolution()
public void setXResolution(int value)
XResolution # get and set (CodecsRasterPdfInfo)
The horizontal resolution of the PDF page in dots per inch. The default value is 0
.
This is the same horizontal resolution of the RasterImage object to the RasterCodecs.Save method used to create this file if CodecsPdfSaveOptions.UseImageResolution was set to true.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Svg;
private static void CodecsRasterPdfInfoExample()
{
string multiPageRasterPdfFileName = Path.Combine(LEAD_VARS.ImagesDir, "MultiPageRasterPdf.pdf");
string pagesPdfFileNames = Path.Combine(LEAD_VARS.ImagesDir, "Page{0}.pdf");
// Create a 4 pages PDF file
CreateMultiPageRasterPdfFile(multiPageRasterPdfFileName);
// Without prior information, we will split this multi-page PDF file into
// multiple single page PDF files with original size, resolution, bit-depth and compression
using (RasterCodecs codecs = new RasterCodecs())
{
int pagesSaved = 0;
// Get the file information
using (CodecsImageInfo imageInfo = codecs.GetInformation(multiPageRasterPdfFileName, true))
{
Debug.WriteLine(
"Information: Format:\n Format: {0}\n Pages: {1}\n Bits/Pixel: {2}\n Size: {3} by {4}\n Resolution: {5} by {6}",
imageInfo.Format, imageInfo.TotalPages, imageInfo.BitsPerPixel, imageInfo.Width, imageInfo.Height, imageInfo.XResolution, imageInfo.YResolution);
Debug.WriteLine("-----------------------");
// Now show the PDF specific information
// Notice: GetInformation will return RasPdf as the format for all PDF files
// regardless of the actual compression
if (imageInfo.Format == RasterImageFormat.RasPdf)
{
Debug.WriteLine("Image is PDF, getting the specific info for each page");
for (int i = 0; i < imageInfo.TotalPages; i++)
{
int pageNumber = i + 1;
CodecsRasterPdfInfo pdfInfo = codecs.GetRasterPdfInfo(multiPageRasterPdfFileName, i + 1);
if (pageNumber == 1)
{
Debug.WriteLine(" LEAD PDF?: {0}", pdfInfo.IsLeadPdf);
Debug.WriteLine(" Version: {0}", pdfInfo.Version);
}
if (pdfInfo.IsLeadPdf)
{
Debug.WriteLine(
"Page {0} of {1} info:\n Bits/Pixel: {2}\n Size: {3} by {4}\n Resolution: {5} by {6}\n Format: {7}",
pageNumber, imageInfo.TotalPages, pdfInfo.BitsPerPixel, pdfInfo.Width, pdfInfo.Height, pdfInfo.XResolution, pdfInfo.YResolution, pdfInfo.Format);
Debug.WriteLine("-----------------------");
// Load this page with its original parameters
codecs.Options.RasterizeDocument.Load.XResolution = pdfInfo.XResolution;
codecs.Options.RasterizeDocument.Load.YResolution = pdfInfo.YResolution;
codecs.Options.Pdf.Load.DisplayDepth = pdfInfo.BitsPerPixel;
using (RasterImage pageImage = codecs.Load(multiPageRasterPdfFileName, 0, CodecsLoadByteOrder.BgrOrGray, pageNumber, pageNumber))
{
Debug.WriteLine(
"Page {0} of {1} loaded:\n Bits/Pixel: {2}\n Size: {3} by {4}\n Resolution: {5} by {6}",
pageNumber, imageInfo.TotalPages, pageImage.BitsPerPixel, pageImage.Width, pageImage.Height, pageImage.XResolution, pageImage.YResolution);
Debug.WriteLine("-----------------------");
// Setup the PDF save options
codecs.Options.Pdf.Save.UseImageResolution = true;
codecs.Options.Pdf.Save.Version = pdfInfo.Version;
// Save this page to a separate file
string pagePdfFileName = string.Format(pagesPdfFileNames, pageNumber);
codecs.Save(pageImage, pagePdfFileName, pdfInfo.Format, pdfInfo.BitsPerPixel);
pagesSaved++;
}
}
}
}
}
// We are done, now show the info of the generated files
for (int i = 0; i < pagesSaved; i++)
{
int pageNumber = i + 1;
string pagePdfFileName = string.Format(pagesPdfFileNames, pageNumber);
CodecsRasterPdfInfo pdfInfo = codecs.GetRasterPdfInfo(pagePdfFileName, 1);
Debug.WriteLine(
"Page {0} of {1} info:\n Bits/Pixel: {2}\n Size: {3} by {4}\n Resolution: {5} by {6}\n Format: {7}",
pageNumber, pagesSaved, pdfInfo.BitsPerPixel, pdfInfo.Width, pdfInfo.Height, pdfInfo.XResolution, pdfInfo.YResolution, pdfInfo.Format);
Debug.WriteLine("-----------------------");
}
}
}
private static void CreateMultiPageRasterPdfFile(string pdfFileName)
{
string sourceFile = Path.Combine(LEAD_VARS.ImagesDir, "Sample1.cmp");
// Delete the destination PDF file if exists
if (System.IO.File.Exists(pdfFileName))
{
System.IO.File.Delete(pdfFileName);
}
using (RasterCodecs codecs = new RasterCodecs())
{
// Save to PDF v1.4
codecs.Options.Pdf.Save.Version = CodecsRasterPdfVersion.V14;
// Save using image resolution
codecs.Options.Pdf.Save.UseImageResolution = true;
// Load the source file to use for each page
using (RasterImage pageImage = codecs.Load(sourceFile, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1))
{
Debug.WriteLine(
"Original image dimension:\n Size: {0} by {1}\n Resolution: {2} by {3}",
pageImage.Width, pageImage.Height, pageImage.XResolution, pageImage.YResolution);
// Array of bits/pixel and compression to use when saving the pages
int[] bitsPerPixel =
{
1,
8,
24
};
RasterImageFormat[] formats =
{
RasterImageFormat.RasPdfG4,
RasterImageFormat.RasPdfLzw,
RasterImageFormat.RasPdfJpeg422
};
int pageCount = bitsPerPixel.Length;
for (int i = 0; i < pageCount; i++)
{
// Append this page with given format
Debug.WriteLine("Saving page {0} of {1} using {2} at {3}", i + 1, pageCount, bitsPerPixel[i], formats[i]);
codecs.Save(pageImage, pdfFileName, formats[i], bitsPerPixel[i], 1, 1, -1, CodecsSavePageMode.Append);
}
}
Debug.WriteLine("-----------------------");
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}
import java.io.*;
import java.net.*;
import java.nio.file.Paths;
import java.util.*;
import java.time.Instant;
import java.time.Duration;
import org.junit.*;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
import static org.junit.Assert.*;
import leadtools.*;
import leadtools.codecs.*;
import leadtools.codecs.RasterCodecs.FeedCallbackThunk;
import leadtools.drawing.internal.*;
import leadtools.imageprocessing.*;
import leadtools.imageprocessing.color.ChangeIntensityCommand;
import leadtools.svg.*;
public void codecsRasterPdfInfoExample() throws IOException {
final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";
String multiPageRasterPdfFileName = combine(LEAD_VARS_IMAGES_DIR, "MultiPageRasterPdf.pdf");
String pagesPdfFileNames = combine(LEAD_VARS_IMAGES_DIR, "Page%s.pdf");
// Create a 4 pages PDF file
createMultiPageRasterPdfFile(multiPageRasterPdfFileName);
// Without prior information, we will split this multi-page PDF file into
// multiple single page PDF files with original size, resolution, bit-depth and
// compression
RasterCodecs codecs = new RasterCodecs();
int pagesSaved = 0;
// Get the file information
CodecsImageInfo imageInfo = codecs.getInformation(multiPageRasterPdfFileName, true);
System.out.printf(
"Information: Format:%n Format: %s%n Pages: %s%n Bits/Pixel: %s%n Size: %S%n by %s%n Resolution: %s by %s%n",
imageInfo.getFormat(), imageInfo.getTotalPages(), imageInfo.getBitsPerPixel(), imageInfo.getWidth(),
imageInfo.getHeight(), imageInfo.getXResolution(), imageInfo.getYResolution());
System.out.println("-----------------------");
// Now show the PDF specific information
// Notice: GetInformation will return RasPdf as the format for all PDF files
// regardless of the actual compression
if (imageInfo.getFormat() == RasterImageFormat.RAS_PDF) {
System.out.println("Image is PDF, getting the specific info for each page");
ILeadStream multiPageRasterStream = LeadStreamFactory.create(multiPageRasterPdfFileName);
for (int i = 0; i < imageInfo.getTotalPages(); i++) {
int pageNumber = i + 1;
CodecsRasterPdfInfo pdfInfo = codecs.getRasterPdfInfo(multiPageRasterStream, i + 1);
if (pageNumber == 1) {
System.out.println(" LEAD PDF?: " + pdfInfo.isLeadPdf());
System.out.println(" Version: " + pdfInfo.getVersion());
}
if (pdfInfo.isLeadPdf()) {
System.out.printf(
"Page %s of %s info:%n Bits/Pixel: %s%n Size: %s by %s%n Resolution: %s by %s%n Format: %s%n",
pageNumber, imageInfo.getTotalPages(), pdfInfo.getBitsPerPixel(), pdfInfo.getWidth(),
pdfInfo.getHeight(), pdfInfo.getXResolution(), pdfInfo.getYResolution(), pdfInfo.getFormat());
System.out.println("-----------------------");
// Load this page with its original parameters
codecs.getOptions().getRasterizeDocument().getLoad().setXResolution(pdfInfo.getXResolution());
codecs.getOptions().getRasterizeDocument().getLoad().setYResolution(pdfInfo.getYResolution());
codecs.getOptions().getPdf().getLoad().setDisplayDepth(pdfInfo.getBitsPerPixel());
RasterImage pageImage = codecs.load(multiPageRasterPdfFileName, 0, CodecsLoadByteOrder.BGR_OR_GRAY,
pageNumber, pageNumber);
System.out.printf(
"Page %s of %s loaded:%n Bits/Pixel: %s%n Size: %s by %s%n Resolution: %s by %s%n",
pageNumber, imageInfo.getTotalPages(), pageImage.getBitsPerPixel(), pageImage.getWidth(),
pageImage.getHeight(), pageImage.getXResolution(), pageImage.getYResolution());
System.out.println("-----------------------");
// Setup the PDF save options
codecs.getOptions().getPdf().getSave().setUseImageResolution(true);
codecs.getOptions().getPdf().getSave().setVersion(pdfInfo.getVersion());
// Save this page to a separate file
String pagePdfFileName = String.format(pagesPdfFileNames, pageNumber);
codecs.save(pageImage, pagePdfFileName, pdfInfo.getFormat(), pdfInfo.getBitsPerPixel());
pagesSaved++;
}
}
multiPageRasterStream.close();
}
// We are done, now show the info of the generated files
for (int i = 0; i < pagesSaved; i++) {
int pageNumber = i + 1;
String pagePdfFileName = String.format(pagesPdfFileNames, pageNumber);
ILeadStream pagePdfFileStream = LeadStreamFactory.create(pagePdfFileName);
CodecsRasterPdfInfo pdfInfo = codecs.getRasterPdfInfo(pagePdfFileStream, 1);
System.out.printf(
"Page %s of %s info:%n Bits/Pixel: %s%n Size: %s by %s%n Resolution: %s by %s%n Format: %s%n",
pageNumber, pagesSaved, pdfInfo.getBitsPerPixel(), pdfInfo.getWidth(), pdfInfo.getHeight(),
pdfInfo.getXResolution(), pdfInfo.getYResolution(), pdfInfo.getFormat());
System.out.println("-----------------------");
pagePdfFileStream.close();
}
}
private static void createMultiPageRasterPdfFile(String pdfFileName) {
final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";
String sourceFile = combine(LEAD_VARS_IMAGES_DIR, "Sample1.cmp");
// Delete the destination PDF file if exists
File pdfFile = new File(pdfFileName);
if (pdfFile.exists()) {
pdfFile.delete();
}
RasterCodecs codecs = new RasterCodecs();
// Save to PDF v1.4
codecs.getOptions().getPdf().getSave().setVersion(CodecsRasterPdfVersion.V14);
// Save using image resolution
codecs.getOptions().getPdf().getSave().setUseImageResolution(true);
// Load the source file to use for each page
RasterImage pageImage = codecs.load(sourceFile, 0, CodecsLoadByteOrder.BGR_OR_GRAY, 1, 1);
System.out.printf("Original image dimension:%n Size: %s by %s%n Resolution: %s by %s%n",
pageImage.getWidth(), pageImage.getHeight(), pageImage.getXResolution(), pageImage.getYResolution());
// Array of bits/pixel and compression to use when saving the pages
int[] bitsPerPixel = { 1, 8, 24 };
RasterImageFormat[] formats = { RasterImageFormat.RAS_PDF_G4, RasterImageFormat.RAS_PDF_LZW,
RasterImageFormat.RAS_PDF_JPEG };
int pageCount = bitsPerPixel.length;
for (int i = 0; i < pageCount; i++) {
// Append this page with given format
System.out.printf("Saving page %s of %s using %s at %s", i + 1, pageCount, bitsPerPixel[i], formats[i]);
codecs.save(pageImage, pdfFileName, formats[i], bitsPerPixel[i], 1, 1, -1, CodecsSavePageMode.APPEND);
}
System.out.println("-----------------------");
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document