Den här artikeln beskriver hur man tar bort tom sida i Word med Python. Den har detaljerna för att ställa in miljön, en lista med steg och en körbar exempelkod som visar hur man tar bort tom sida i Word med Python. Exempelkoden kan användas som den är för att utföra uppgiften, men du kan improvisera den genom att lägga till olika villkor om det behövs.
Steg för att ta bort den tomma sidan i Word med Python
- Ställ in utvecklingsmiljön så att den använder Aspose.Words för Python via .NET för att radera de tomma sidorna
- Ladda in Word-källfilen i Document-objektet med tomma sidor
- Gå igenom alla sidor i dokumentet och kontrollera varje avsnitts innehåll
- Kontrollera förekomsten av text och bilder och förbered en lista med tomma sidor
- Skapa ett nytt tomt Word-dokument
- Append alla sidor med visst innehåll från Word-källfilen med hjälp av listan över tomma sidor
- Spara den resulterande Word-filen utan tom sida
Dessa steg förklarar processen för hur man tar bort tom Word-sida med Python. I denna process laddas källfilen i Word och alla avsnitt på varje sida undersöks för att ha text eller bilder för att förbereda en lista med tomma sidor. Till slut skapas ett nytt dokument och alla andra sidor än de tomma sidorna läggs till i detta nya tomma dokument.
Kod för att ta bort tom sida i Word med Python
import aspose.words as aw | |
import aspose.pydrawing as drawing | |
# Load the license | |
wordLic = aw.License() | |
wordLic.set_license("License.lic") | |
# Load the Word file having blank pages in it | |
originalDocWithFewBlankPages = aw.Document("input.docx") | |
# Declare an array for blank page numbers | |
listOfBlankPageNumbers = [] | |
listOfBlankPageNumbers.append(-1) | |
# Get total pages in the souce Word file | |
totalPagesInOriginalDoc = originalDocWithFewBlankPages.page_count | |
for iCount in range(0, totalPagesInOriginalDoc): # This will loop for page count | |
# Extract each page one by one | |
DocWithOnePage = originalDocWithFewBlankPages.extract_pages(iCount, 1) | |
shapesCounter = 0 | |
pageText = "" | |
# Check text and images in each section | |
for docSection in DocWithOnePage.sections: | |
docSection = docSection.as_section() | |
pageText = pageText + docSection.body.to_string(aw.SaveFormat.TEXT) | |
shapesCounter += docSection.body.get_child_nodes(aw.NodeType.SHAPE, True).count | |
# Check if no content is there | |
if (not pageText) and shapesCounter == 0: | |
# Store the index of blank page numbers | |
listOfBlankPageNumbers.append(iCount) | |
listOfBlankPageNumbers.append(totalPagesInOriginalDoc) | |
# Create a single page document with default forrmat | |
nonEmptyDocument = originalDocWithFewBlankPages.clone(False).as_document() | |
# Clean the document | |
nonEmptyDocument.remove_all_children() | |
# Append the pages with content to the new document | |
for iCount in range(1, len(listOfBlankPageNumbers)): | |
index = listOfBlankPageNumbers[iCount - 1] + 1 | |
count = listOfBlankPageNumbers[iCount] - index | |
if count > 0: | |
nonEmptyDocument.append_document( | |
originalDocWithFewBlankPages.extract_pages(index, count), | |
aw.ImportFormatMode.KEEP_SOURCE_FORMATTING) | |
# Save the document having some content in it | |
nonEmptyDocument.save("NonEmptyPages.docx") | |
print ("Blank pages deleted successfully") |
Den här exempelkoden visar hur man tar bort tom sida från Word med Python. I denna exempelkod testas brödtexten och nodtypen SHAPE för varje avsnitt, men du kan använda andra typer som TABLE, COMMENT, FORM_FIELD, SMART_TAG, etc. för att identifiera de tomma sidorna. Metoden append_document() används för att lägga till sidor i den nya Word-filen medan den innehåller olika överbelastade metoder som tillåter olika argument för anpassning av sidinfogningsprocessen.
Den här artikeln har lärt oss hur man tar bort tom sida i Word med Python. Om du vill lägga in sidnummer i en Word-fil, se artikeln om hur man sätter sidnummer i Word med Python.