Class AlwaysSplitObjectsAlgorithm

Class AlwaysSplitObjectsAlgorithm

Nombre del espacio: Aspose.Note.Saving Asamblea: Aspose.Note.dll (25.4.0)

Divide un objeto en varias partes en caso de que no se ajuste en la página original.

public class AlwaysSplitObjectsAlgorithm : PageSplittingAlgorithm
   {
      private readonly double _splitDistance;
      public AlwaysSplitObjectsAlgorithm(double splitDistance)
      {
         _splitDistance = splitDistance;
      }
      protected override void SplitPagesCore(Document doc, int startPageIndex, int endPageIndex, PageSplittingCriteria criteria)
      {
         for (int i = startPageIndex; i < endPageIndex; i++)
         {
            SplitPage(doc, i);
         }
      }
      private void SplitPage(Document doc, int pageIndex)
      {
         Page page = doc.GetPage(pageIndex);
         Aspose.Words.CheckBox checkBox;
         if (page.Paragraphs.Count > 0)
         {
            Paragraph lastParagraph = page.Paragraphs[page.Paragraphs.Count - 1];
            Node nextNode = lastParagraph.NextSibling;
            if (nextNode != null && nextNode is CheckBox checkBoxNextNode)
            {
               checkBox = checkBoxNextNode as Aspose.Words.CheckBox;
            }
         }
         if (checkBox == null)
         {
            return;
         }
         double distanceToCheckBox = GetDistanceToCheckBox(page, checkBox);
         if (distanceToCheckBox <= _splitDistance)
         {
            SplitPageHorizontally(doc, pageIndex);
         }
      }
      private double GetDistanceToCheckBox(Page page, Aspose.Words.CheckBox checkBox)
      {
      }
      private void SplitPageHorizontally(Document doc, int pageIndex)
      {
      }
   }

Inheritance

object PageSplittingAlgorithm AlwaysSplitObjectsAlgorithm

Miembros heredados

object.GetType() ,y, object.MemberwiseClone() ,y, object.ToString() ,y, object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) ,y, object.GetHashCode()

Examples

Cuando las largas páginas de OneNote se almacenan en formato pdf, se dividen entre páginas.El ejemplo muestra cómo configurar la lógica de división de los objetos ubicados en las brechas de la página.

string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
   Document doc = new Document(dataDir + "Aspose.one");
   var pdfSaveOptions = new PdfSaveOptions();
   pdfSaveOptions.PageSplittingAlgorithm = new AlwaysSplitObjectsAlgorithm();
   pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm();
   pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm();
   float heightLimitOfClonedPart = 500;
   pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm(heightLimitOfClonedPart);
   pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(heightLimitOfClonedPart);
   pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(100);
   pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(400);
   dataDir += "UsingKeepSOlidObjectsAlgorithm_out.pdf";
   doc.Save(dataDir);

Constructors

Algunas de las teorías del algoritmo()

public AlwaysSplitObjectsAlgorithm()
   {
   }
 Español