Class KeepPartAndCloneSolidObjectToNextPageAlgorithm
Der Name: Aspose.Note.Saving Zusammensetzung: Aspose.Note.dll (25.4.0)
Geben Sie den Objekt in die Spitze der Seite hinzu und klonen Sie das ganze Object auf die nächste Seite, wenn es nicht in der ursprünglichen Seite passt.
public class KeepPartAndCloneSolidObjectToNextPageAlgorithm : PageSplittingAlgorithm
{
private bool _keepWithNext;
private Shape _clonedShape;
public KeepPartAndCloneSolidObjectToNextPageAlgorithm()
{
_keepWithNext = false;
_clonedShape = null;
}
protected override bool ShouldSplit(Node node)
{
if (node is Shape shape && !_keepWithNext && shape.Type == ShapeType.SolidObject)
{
CloneSolidObject(shape);
_keepWithNext = true;
return false;
}
_keepWithNext = false;
return base.ShouldSplit(node);
}
private void CloneSolidObject(Shape shape)
{
if (shape.IsTextFrame)
{
_clonedShape = shape.Clone();
}
else
{
using (var memoryStream = new MemoryStream())
{
shape.CopyTo(memoryStream);
_clonedShape = Shape.FromPKI(memoryStream);
}
}
}
}
Inheritance
object ← PageSplittingAlgorithm ← KeepPartAndCloneSolidObjectToNextPageAlgorithm
Vererbte Mitglieder
object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()
Examples
Wenn lange OneNote-Seiten in pdf-Format gespeichert werden, werden sie auf Seiten geteilt. Die Probe zeigt, wie man die getrennte Logik der Objekte auf den Seitenbrechen konfiguriert.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
Document doc = new Document(dataDir + "Aspose.one");
var pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm(100);
pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm(400);
dataDir += "PageSplittUsingKeepPartAndCloneSolidObjectToNextPageAlgorithm_out.pdf";
doc.Save(dataDir);
Wenn lange OneNote-Seiten in PDF-Format gespeichert werden, werden sie über Seiten geteilt. Das Beispiel zeigt, wie man die getrennte Logik der Objekte auf den Seitenbrechen konfiguriert.
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
Document doc = new Document(dataDir + "Aspose.one");
var pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.PageSplittingAlgorithm = new AlwaysSplitObjectsAlgorithm();
float heightLimitOfClonedPart = 500;
pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm(heightLimitOfClonedPart);
pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(100);
dataDir += "UsingKeepSOlidObjectsAlgorithm_out.pdf";
doc.Save(dataDir, pdfSaveOptions);
pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(400);
dataDir += "UsingKeepSOlidObjectsAlgorithm_outWithHigherLimit.pdf";
doc.Save(dataDir, pdfSaveOptions);
Constructors
KeepPartAndCloneSolidObjectToNextPageAlgorithm()
Initialisiert eine neue Instanz der Aspose.Note.Saving.KeepPartAndCloneSolidObjectToNextPageAlgorithm-Klasse, mit default-Höhegrenze des klonierten Teils.
public KeepPartAndCloneSolidObjectToNextPageAlgorithm()
{
}
KeepPartAndCloneSolidObjectToNextPageAlgorithm(Float)
Initialisiert eine neue Instanz der Aspose.Note.Saving.KeepPartAndCloneSolidObjectToNextPageAlgorithm-Klasse, mit einer spezifischen Höhegrenze des klonierten Teils.
public KeepPartAndCloneSolidObjectToNextPageAlgorithm(float heightLimitOfClonedPart)
{
}
Parameters
heightLimitOfClonedPart
float
Die maximale Höhe des klonierten Teils.
Fields
DefaultHeightLimitOfClonedPart
Die standardmäßige Maxgröße des klonierten Teils.
public const float DefaultHeightLimitOfClonedPart = 200;
Feldwert
Properties
HeightLimitOfClonedPart
Erreicht die Höhegrenze des klonierten Teils.
public float HeightLimitOfClonedPart
{
get;
}