public class CodecsLoadSvgOptions
@interface LTCodecsLoadSvgOptions : NSObject<NSCopying, NSSecureCoding>
public class CodecsSvgLoadOptions
public ref class CodecsLoadSvgOptions
class CodecsLoadSvgOptions:
The CodecsLoadSvgOptions is used with the following methods:
RasterCodecs.LoadSvg(string fileName, int pageNumber, CodecsLoadSvgOptions options)
RasterCodecs.LoadSvg(Stream stream, int pageNumber, CodecsLoadSvgOptions options)
Task<bool> LoadSvgAsync(ILeadStream stream, int pageNumber, CodecsLoadSvgOptions options)
RasterCodecs.LoadSvgAsync(Uri uri, int pageNumber, CodecsLoadSvgOptions options, object userState)
For more information, refer to Working With SVG.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Svg;
public void CodecsLoadSvgOptionsExample()
{
// The source PDF file
string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.pdf");
// SVG sort callback handler
SvgSortElementsCallback sortCallback = (callabackDocument, info, userData) =>
{
// Is it text?
SvgTextData textData = info.TextData;
if (textData != null)
{
// Yes, print it to the console
Console.Write(textData.Text + " ");
// See if its end of line
var len = textData.Text.Length;
if ((textData.CharacterFlags[len - 1] & SvgTextCharacterFlags.EndOfLine) == SvgTextCharacterFlags.EndOfLine)
Debug.WriteLine(" ");
}
return true;
};
using (var codecs = new RasterCodecs())
{
// Set 300 as the default value for loading document files
codecs.Options.RasterizeDocument.Load.Resolution = 300;
// get the number of pages
int pageCount = codecs.GetTotalPages(srcFileName);
for (int pageNumber = 1; pageNumber <= pageCount; pageNumber++)
{
// Load this page as SVG, we are interested in the text only so
// we will ask LEADTOOLS to skip other elements
CodecsLoadSvgOptions loadSvgOptions = new CodecsLoadSvgOptions();
loadSvgOptions.DropText = false;
loadSvgOptions.DropImages = true;
loadSvgOptions.DropShapes = true;
using (SvgDocument svgDocument = codecs.LoadSvg(srcFileName, pageNumber, loadSvgOptions) as SvgDocument)
{
// Sort requires a flat document, so check for that
if (!svgDocument.IsFlat)
svgDocument.Flat(null);
if (!svgDocument.Bounds.IsValid)
svgDocument.CalculateBounds(false);
SvgSortOptions sortOptions = new SvgSortOptions();
sortOptions.ExtractText = SvgExtractText.Word;
sortOptions.SortFlags = SvgSortFlags.Default;
Debug.WriteLine("Text for page {0}", pageNumber);
svgDocument.SortElements(sortOptions, sortCallback, null);
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.*;
SvgSortElementsCallback sortCallback = new SvgSortElementsCallback() {
@Override
public boolean onSort(SvgDocument callbackDocument, SvgElementInfo info, Object userData) {
try {
// Is it text?
SvgTextData textData = info.getTextData();
if (textData != null) {
// Yes, print it to the console
System.out.println(textData.getText() + " ");
// See if its end of line
var len = textData.getText().length();
if (textData.getCharacterFlags()[len - 1] == SvgTextCharacterFlags.END_OF_LINE.getValue())
System.out.println(" ");
}
return true;
} catch (Exception e) {
System.out.println("Current Page doesn't contain text (null)");
return true;
}
}
};
public void codecsLoadSvgOptionsExample() {
final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";
String srcFileName = combine(LEAD_VARS_IMAGES_DIR, "Leadtools.pdf");
ILeadStream srcFileStream = LeadStreamFactory.create(srcFileName);
RasterCodecs codecs = new RasterCodecs();
// Set 300 as the default value for loading document files
codecs.getOptions().getRasterizeDocument().getLoad().setResolution(300);
// get the number of pages
int pageCount = codecs.getTotalPages(srcFileName);
for (int pageNumber = 2; pageNumber <= pageCount; pageNumber++) {
// Load this page as SVG, we are interested in the text only so
// we will ask LEADTOOLS to skip other elements
CodecsLoadSvgOptions loadSvgOptions = new CodecsLoadSvgOptions();
loadSvgOptions.setDropText(false);
loadSvgOptions.setDropImages(true);
loadSvgOptions.setDropShapes(true);
SvgDocument svgDocument = (SvgDocument) codecs.loadSvg(srcFileName, pageNumber, loadSvgOptions);
// Sort requires a flat document, so check for that
if (!svgDocument.isFlat())
svgDocument.flat(null);
if (!svgDocument.getBounds().isValid())
svgDocument.calculateBounds(false);
SvgSortOptions sortOptions = new SvgSortOptions();
sortOptions.setExtractText(SvgExtractText.WORD.getValue());
sortOptions.setSortFlags(SvgSortFlags.DEFAULT.getValue());
System.out.println("Text for page " + pageNumber);
svgDocument.sortElements(sortOptions, sortCallback, srcFileStream);
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