Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
При работа с документи е важно лесно да се извлече съдържание от определен диапазон в рамките на даден документ. Съдържанието обаче може да се състои от сложни елементи като параграфи, таблици, изображения и др.
Независимо от това какво съдържание трябва да бъде извлечено, методът за извличане на това съдържание винаги ще се определя от кои възли се избират, за да се извлече съдържание между тях. Това могат да бъдат цели текстови тела или прости текстови работи.
Има много възможни ситуации и следователно много различни видове възли да се вземат предвид при извличане на съдържание. Например, може да искате да извлечете съдържание между:
В някои ситуации може дори да се наложи да комбинирате различни типове възли, като например извличане на съдържание между параграф и поле, или между тичане и отметки.
Тази статия осигурява прилагането на код за извличане на текст между различни възли, както и примери за общи сценарии.
Често целта на извличането на съдържанието е да се дублира или запази отделно в нов документ. Например, можете да извлечете съдържание и:
Това може лесно да се постигне с помощта Aspose.Words и прилагането на кода по-долу.
Кодът в този раздел адресира всички възможни ситуации, описани по-горе с един общ и повторно използван метод. Общата схема на тази техника включва:
За да извлечете съдържанието от вашия документ, трябва да се обадите на екстракт_съдържание метод по-долу и да премине съответните параметри. Основната основа на този метод включва намирането на възли на ниво блок (точки и таблици) и клонирането им, за да се създадат идентични копия. Ако преминаващите маркиращи възли са блоково ниво, тогава методът може просто да копира съдържанието на това ниво и да го добави към масива.
Въпреки това, ако маркерните възли са в линия (дете на параграф), тогава ситуацията става по-сложна, тъй като е необходимо да се раздели параграфа на вътрешния възел, било то тичане, отметки и др. Съдържанието в клонираните изходни възли, които не присъстват между маркерите, се премахва. Този процес се използва, за да се гарантира, че вътрешните възли ще запазят формата на параграфа майка. Методът също така ще извършва проверки на възлите, преминали като параметри и хвърля изключение, ако или възелът е невалиден. Параметрите, които трябва да бъдат предадени на този метод, са:
Изпълнение на екстракт_съдържание метод можете да намерите Тук. Този метод ще бъде посочен в сценариите в тази статия.
Също така ще определим потребителски метод за лесно генериране на документ от извлечени възли. Този метод се използва в много от сценариите по-долу и просто създава нов документ и внася извлеченото съдържание в него.
Следният пример за код показва как да се вземе списък с възли и ги вмъква в нов документ:
Това показва как да се използва горният метод за извличане на съдържание между конкретни параграфи. В този случай искаме да извлечем тялото на писмото, намерено в първата половина на документа. Можем да кажем, че това е между 7 и 11 абзац.
Кодът по-долу изпълнява тази задача. Съответните параграфи се извличат с помощта на CompositeNode.get_child метод на документа и преминаване на посочените индекси. След това предаваме тези възли на екстракт_съдържание метод и се посочва, че те трябва да бъдат включени в екстракцията. Този метод ще върне копираното съдържание между тези възли, които след това се добавят в нов документ.
Следният пример за код показва как да се извлече съдържанието между конкретни параграфи, като се използва екстракт_съдържание метод по- горе:
Можем да извлечем съдържание между всяка комбинация от блок ниво или вътрешни възли. В този сценарий по-долу ще извлечем съдържанието между първия параграф и таблицата във втория раздел, включително. Получаваме маркерите като се обаждаме. Body.first_paragraph както и CompositeNode.get_child метод на втория раздел на документа за извличане на съответния Paragraph както и Table Възли. За малко изменение нека… вместо това дублираме съдържанието и го поставяме под оригинала.
Следният пример за код показва как да се извлече съдържанието между параграф и таблица с помощта на екстракт_съдържание метод:
Може да се наложи да извлечете съдържанието между параграфи от един и същ или различен стил, като например между точки, отбелязани със стилове на заглавие.
Кодът по-долу показва как да се постигне това. Това е един прост пример, който ще извлече съдържанието между първата инстанция на нареждането на 1 и год. 3 инча стилове без извличане на заглавията, както добре. За да направим това, зададохме последния параметър на false, което посочва, че не следва да се включват маркиращите възли.
В правилното изпълнение това трябва да се стартира в цикъл, за да се извлече съдържание между всички параграфи от тези стилове от документа. Извлеченото съдържание се копира в нов документ.
Следният пример за код показва как да се извлече съдържание между параграфи със специфични стилове използване на екстракт_съдържание метод:
Можете да извлечете съдържание между inline възли като Run Както добре. Бягането от различни точки може да се премине като маркери. Кодът по-долу показва как да се извлече специфичен текст между едно и също Paragraph Възел.
Следният пример за код показва как да се извлече съдържание между специфични редове от същия параграф, като се използва екстракт_съдържание метод:
За използване на поле като маркер, FieldStart Възелът трябва да бъде приет. Последният параметър екстракт_съдържание методът ще определи дали цялото поле трябва да бъде включено или не. Позволява да се извлече съдържанието между полето за сливане на FullName и параграф в документа. Ние използваме DocumentBuilder.move_to_merge_field метод на DocumentBuilder Клас. Това ще върне FieldStart Възел от името на сливащото се поле премина към него.
В нашия случай нека да зададете последния параметър премина към екстракт_съдържание метод на False да се изключи полето от екстракцията. Ще предадем извлеченото съдържание на PDF.
Следният пример за код показва как да се извлече съдържание между конкретно поле и параграф в документа, като се използва екстракт_съдържание метод:
В документ съдържанието, което се определя в рамките на отметките, се капсулира от BookmarkStart както и BookmarkEnd Възли. Съдържанието, намерено между тези два възела, прави отметките. Можете да минете някой от тези възли като всеки маркер, дори и тези от различни отметки, стига стартовият маркер да се появи преди крайния маркер в документа. Ще извлечем това съдържание в нов документ, използвайки кода по-долу. На инклузив параметър опция показва как да се запази или изхвърли отметките.
Следният пример с код показва как да се извлече съдържанието, посочено в отметките, използвайки екстракт_съдържание метод:
Коментар е съставен от CommentRangeStart, CommentRangeEnd както и Comment Възли. Всички тези възли са на линия. Първите два възела капсулират съдържанието в документа, което е посочено в коментара, както се вижда на снимката по-долу. На Comment Самото възел е InlineStory които могат да съдържат параграфи и да бягат. Тя представлява съобщението на коментара, както се вижда като коментар балон в прегледа стъкло. Тъй като този възел е в линия и потомък на тяло можете също така да извлечете съдържанието от вътре в това съобщение, както добре.
Коментарът обхваща заглавието, първия параграф и таблицата във втория раздел. Позволявам да извлечете този коментар в нов документ. На инклузив опцията диктува дали коментарът се поддържа или отхвърля.
Следният пример с код показва как да направите това:
Начините за извличане на текст от документа са:
A Word документ може да съдържа контролни знаци, които определят специални елементи като поле, край на клетка, край на раздел и т.н. Пълният списък на възможните Word контрол символи се определя в ControlChar Клас. На Node.get_text метод връща текст с всички знаци контролен символ присъства в възела.
Обаждане to_string връща простото текстово представяне на документа само без контролни знаци. За допълнителна информация относно износа като обикновен текст вижте Използване SaveFormat.TEXT
Следният код пример показва разликата между призоваване на get_text както и to_string методи на възел:
SaveFormat.TextТози пример запазва документа, както следва:
Следният пример за код показва как да се запази документ във формат TXT:
Може да се наложи да извлечете изображения от документи, за да изпълните някои задачи. Aspose.Words ви позволява да направите това, както добре.
Следният пример за код показва как да извлечете изображения от документ:
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.