Class AlwaysSplitObjectsAlgorithm

Class AlwaysSplitObjectsAlgorithm

Nom dels espais: Aspose.Note.Saving Assemblea: Aspose.Note.dll (25.4.0)

Divideix un objecte en diverses parts en cas que no coincideixi 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

Membres heretats

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

Examples

Quan les llargues pàgines de OneNote s’emmagatzemen en format pdf, es divideixen entre pàgs. L’exemple mostra com configurar la lògica de divisió dels objectes localitzats en les pauses 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

Algunes de les característiques de l’algoritme()

public AlwaysSplitObjectsAlgorithm()
   {
   }
 Català