Ši trumpa pamoka skirta paaiškinti, kaip pašalinti tuščią puslapį programoje Word naudojant C#, pvz., DOCX, DOC ir kt. Jame pateikiama išsami informacija, kaip konfigūruoti aplinką ir atlikti veiksmus, skirtus užduotį ir pavyzdinį kodą, kuris įgyvendina visą logiką ištrinti tuščią puslapį programoje Word naudojant C#. Galite paleisti šį kodą neįdiegę jokios trečiosios šalies programinės įrangos naudodami bet kurią operacinę sistemą, pvz., Windows, Linux ar MacOS.
Veiksmai, kaip ištrinti tuščią puslapį Word naudojant C#
- Sukonfigūruokite projektą, kad pridėtumėte Aspose.Words biblioteką į projektą
- Įkelkite šaltinio Word failą į Document klasės objektą, kad pašalintumėte tuščius puslapius
- Išnagrinėkite visus šaltinio dokumento puslapius ir gaukite kiekvieną puslapį atskirai
- Sukurkite atskirą dokumentą su kiekvienu puslapiu tik iš šaltinio dokumento
- Išanalizuokite šį vieno puslapio dokumentą ir patikrinkite, ar kuriame nors section yra teksto / formos mazgo, ar ne
- Tvarkykite visų netuščių originalaus dokumento puslapių sąrašą
- Pridėkite visus netuščius puslapius prie naujojo Word failo
- Išsaugokite šį failą, kuriame puslapiai yra tik su tekstu ar forma
Šie veiksmai pateikia išsamią informaciją, kaip * ištrinti tuščią puslapį Word naudojant C#*. Pirmiausia įkeliate šaltinio Word failą ir išanalizuojate kiekvieną jame esantį puslapį taip, kad kiekvienam puslapiui būtų sukurtas naujas Word dokumentas. Ji reikalinga, nes kiekvieną puslapį turime analizuoti atskirai, o klasės Dokumentas ypatybės padės atpažinti netuščius puslapius. Nagrinėjant kiekvienas netuščias puslapis įtraukiamas į naują Word failą, kuriame bus visi tokie puslapiai.
Kodas, skirtas ištrinti tuščią puslapį Word naudojant C#
using System.Collections; | |
using Aspose.Words; | |
namespace DeleteABlankPageInWordUsingCSharp | |
{ | |
class Program | |
{ | |
static void Main(string[] args) // Main function to delete a blank page in Word using CSharp | |
{ | |
// Instantiate the license to avoid any trial version limitations | |
// and watermark in the output Word file | |
Aspose.Words.License licDeleteBlankPages= new Aspose.Words.License(); | |
licDeleteBlankPages.SetLicense("Aspose.Words.lic"); | |
// Load the Word file having blank pages in it | |
Document originalDocWithFewBlankPages = new Document("WordFileWithBlankPages.docx"); | |
// Declare an array to store page numbers of the empty or blank pages | |
ArrayList listOfBlankPageNumbers = new ArrayList(); | |
listOfBlankPageNumbers.Add(-1); | |
// Extract each page of the loaded document as a separate Word document | |
int totalPagesInOriginalDoc = originalDocWithFewBlankPages.PageCount; | |
for (int iCount = 0; iCount < totalPagesInOriginalDoc; iCount++) | |
{ | |
// Create a new Word document containing the single page | |
Document DocWithOnePage = originalDocWithFewBlankPages.ExtractPages(iCount, 1); | |
// Parse through all the sections of the newly created document | |
// to count text segments and shapes if any | |
int shapesCounter = 0; | |
string pageText = ""; | |
foreach (Section docSection in DocWithOnePage.Sections) | |
{ | |
// Extract text from the section and also get shapes count in the newly created document | |
pageText = pageText + docSection.Body.ToString(SaveFormat.Text); | |
shapesCounter += docSection.Body.GetChildNodes(NodeType.Shape, true).Count; | |
} | |
// Check if the extracted page is null or not and also check if shapes count is 0 or not | |
// If text is blank and shapes count is 0, it means the page is blank | |
if (string.IsNullOrEmpty(pageText.Trim()) && shapesCounter == 0) | |
listOfBlankPageNumbers.Add(iCount); | |
} | |
listOfBlankPageNumbers.Add(totalPagesInOriginalDoc); | |
// Add all the non-empty pages to the final document | |
Document nonEmptyDocument = (Document)originalDocWithFewBlankPages.Clone(false); | |
nonEmptyDocument.RemoveAllChildren(); | |
for (int iCount = 1; iCount < listOfBlankPageNumbers.Count; iCount++) | |
{ | |
int index = (int)listOfBlankPageNumbers[iCount - 1] + 1; | |
int count = (int)listOfBlankPageNumbers[iCount] - index; | |
if (count > 0) | |
nonEmptyDocument.AppendDocument(originalDocWithFewBlankPages.ExtractPages(index, count), ImportFormatMode.KeepSourceFormatting); | |
} | |
// Save the output file having all the non-empty pages | |
nonEmptyDocument.Save(@"NonEmptyPages.docx"); | |
System.Console.WriteLine("Done"); | |
} | |
} | |
} |
Šis kodas, skirtas pašalinti tuščią puslapį iš Word dokumento naudojant C#, apibūdina visą logiką, kai kiekvienas šaltinio Word failo puslapis įrašomas į naują Word failą ir analizuojamas, ar nėra jame esančio turinio. Šio proceso metu antraštės ir poraštės neatsižvelgiamos, tačiau galite jas įtraukti. Kai visi puslapiai yra išanalizuoti ir jų numeriai išsaugomi masyve, šis masyvas naudojamas visiems tiems puslapiams pridėti prie naujo Word failo.
Šioje pamokoje pašalinome visus tuščius puslapius iš Word failo. Jei norite sužinoti apie kitas funkcijas, pvz., Word dokumentų konvertavimą į HTML, žr. straipsnį kaip konvertuoti Word dokumentą į HTML naudojant C#.