humanemulator.net — справка.
Продукт, демо и покупка — на
хуманэмулятор.рф
|
Демо
|
Купить
|
API
|
Changelog
get_text_blocks_odt
get_text_blocks_odt($file_path,$start_block_index=-1,$length=10,$timeout=300); - OpenDocument Text '.odt'Функция на вход принимает параметры:
:
Пример использования
<?php // Scenario: Extract text blocks from an ODT document, all at once or in chunks $xhe_host = getenv("RPABOT_HOST_URL"); // подключим функциональные объекты, если еще не подключен if (!isset($path)){ // Path to the init.php file for connecting to the XHE API $path = "../../../Templates/init.php"; // Including init.php grants access to all classes and functionality for working with the XHE API require($path); } // начало echo "\n<span >libreOffice->".basename (__FILE__)."</span>\n"; // Example 1: Get all text blocks from the ODT file echo "\n\nExample 1: Getting all text blocks\n"; $filePath = "test/test_style.odt"; $blocks = SYSTEM::$libreOffice->get_text_blocks_odt($filePath); if ($blocks) { $blocksCount = count($blocks); echo("\n Получено блоков штук: " . $blocksCount); for ($k = 0; $k < $blocksCount; $k++) { $text = $blocks[$k]; echo("\n" . $text); } } else{ echo("\nПроизошла ошибка"); } echo("\n\n"); // Example 2 // Порция текстовых блоков для чтения в одну итерацию $chunkSize = 5; $filePath = "test/test_style.odt"; // Сколько порций блоков нужно прочитать $chunkCount = 10; echo("\n\nExample 2. Прочитать содержимое файла odt порциями. Всего $chunkCount порций по $chunkSize штук текстовых блоков в порции."); // Индекс стартовый $offset = 0; for ($m = 0; $m < $chunkCount; $m++) { echo("\n Порция текстовых блоков #" . ($m + 1) . ": $chunkSize штук стартовый индекс $offset"); $chunkBlocks = SYSTEM::$libreOffice->get_text_blocks_odt($filePath, $offset, $chunkSize); if ($chunkBlocks) { $blocksCount = count($chunkBlocks); echo("\n"); echo("\n Получено штук: " . $blocksCount); echo("\n\n"); for ($k = 0; $k < $blocksCount; $k++) { // Обрезать блок для вывода в консоль $text = $chunkBlocks[$k]; echo("\n" . $text); } } else{ echo("\nБлоки кончились или произошла ошибка"); break; } $offset += $chunkSize; echo("\n\n"); } // Example 3: Read all text blocks in chunks of 50 until the end echo("\n\nExample 3: Read all text blocks in chunks of 50 until the end\n"); $filePath = "test/test_style.odt"; $chunkSize = 50; $offset = 0; $totalBlocksRead = 0; $chunkNumber = 1; echo("Reading all text blocks with chunk size: $chunkSize\n"); while (true) { echo("\nProcessing chunk #$chunkNumber with offset: $offset\n"); $chunkBlocks = SYSTEM::$libreOffice->get_text_blocks_odt($filePath, $offset, $chunkSize); if ($chunkBlocks && count($chunkBlocks) > 0) { $blocksInChunk = count($chunkBlocks); $totalBlocksRead += $blocksInChunk; echo("Received $blocksInChunk blocks in chunk #$chunkNumber\n"); echo("Total blocks read so far: $totalBlocksRead\n"); // Display first and last block of the chunk if ($blocksInChunk > 0) { echo("First block in chunk: " . $chunkBlocks[0] . "\n"); if ($blocksInChunk > 1) { echo("Last block in chunk: " . $chunkBlocks[$blocksInChunk - 1] . "\n"); } } // If we received fewer blocks than the chunk size, we've reached the end if ($blocksInChunk < $chunkSize) { echo("\nReached the end of document. Last chunk had $blocksInChunk blocks.\n"); break; } $offset += $chunkSize; $chunkNumber++; } else { echo("\nNo more blocks found or error occurred.\n"); break; } echo("\n"); } echo("\nFinished reading all text blocks. Total blocks read: $totalBlocksRead\n"); // Quit the application WINDOW::$app->quit(); ?>
# Example for get_text_blocks_odt function # # This example demonstrates how get text blocks from ODT file # using the XHELibreOffice class. import sys sys.path.insert(0, '../../../Templates PY/') xhe_host = "127.0.0.1:7013" from xweb_human_emulator import libreOffice, app, echo # начало echo("<hr><font color=blue>libreOffice->get_text_blocks_odt</font><hr>") # Example 1: Get all text blocks from the ODT file echo("Example 1: Getting all text blocks\n") filePath = "test/test_style.odt" blocks = libreOffice.get_text_blocks_odt(filePath) if blocks != None: blocksCount = len(blocks) echo(f"\n Получено блоков штук: {blocksCount}") for k in range(0, blocksCount): text = blocks[k] echo(f"\n {text}") else: echo("\nПроизошла ошибка") echo("\n\n") # Example 2: Get text blocks by portions # Порция текстовых блоков для чтения в одну итерацию chunkSize = 5 filePath = "test/test_style.odt" # Сколько порций блоков нужно прочитать chunkCount = 10 echo("\nExample 2. Прочитать содержимое файла odt порциями. Всего chunkCount порций по chunkSize штук текстовых блоков в порции.") # Индекс стартовый offset = 0 for m in range(0, chunkCount): echo("\n Порция текстовых блоков #" + str(m + 1) + f": chunkSize штук стартовый индекс {offset}") chunkBlocks = libreOffice.get_text_blocks_odt(filePath, offset, chunkSize) if chunkBlocks: blocksCount = len(chunkBlocks) echo("\n") echo(f"\n Получено штук: {blocksCount}" ) echo("\n\n") for k in range(0, blocksCount): # Обрезать блок для вывода в консоль text = chunkBlocks[k] echo(f"\n {text}") else: echo("\nБлоки кончились или произошла ошибка") break offset += chunkSize echo("\n\n") # Quit app.quit()
using System; using Collections.Generic; // Scenario: Extract text blocks from an ODT document, all at once or in chunks namespace XHELibreOfficeExamples { class GetTextBlocksOdtExample { static void Main(string[] args) { string xheHost = "127.0.0.1:7010"; // Initialize XHE API connection // In C#, you would initialize the XHE API client here // This is equivalent to including init.php in PHP // Start Console.WriteLine("\nlibreOffice->get_text_blocks_odt.cs"); // Example 1: Get all text blocks from the ODT file Console.WriteLine("\n\nExample 1: Getting all text blocks"); string filePath = "test/test_style.odt"; List<string> blocks = libreOffice.get_text_blocks_odt(filePath); if (blocks != null) { int blocksCount = blocks.Count; Console.WriteLine($"\n Получено блоков штук: {blocksCount}"); for (int k = 0; k < blocksCount; k++) { string text = blocks[k]; Console.WriteLine($"\n{text}"); } } else { Console.WriteLine("\nПроизошла ошибка"); } Console.WriteLine("\n\n"); // Example 2 // Порция текстовых блоков для чтения в одну итерацию int chunkSize = 5; filePath = "test/test_style.odt"; // Сколько порций блоков нужно прочитать int chunkCount = 10; Console.WriteLine($"\n\nExample 2. Прочитать содержимое файла odt порциями. Всего {chunkCount} порций по {chunkSize} штук текстовых блоков в порции."); // Индекс стартовый int offset = 0; for (int m = 0; m < chunkCount; m++) { Console.WriteLine($"\n Порция текстовых блоков #{m + 1}: {chunkSize} штук стартовый индекс {offset}"); List<string> chunkBlocks = libreOffice.get_text_blocks_odt(filePath, offset, chunkSize); if (chunkBlocks != null) { int blocksCount = chunkBlocks.Count; Console.WriteLine("\n"); Console.WriteLine($"\n Получено штук: {blocksCount}"); Console.WriteLine("\n\n"); for (int k = 0; k < blocksCount; k++) { // Обрезать блок для вывода в консоль string text = chunkBlocks[k]; Console.WriteLine($"\n{text}"); } } else { Console.WriteLine("\nБлоки кончились или произошла ошибка"); break; } offset += chunkSize; Console.WriteLine("\n\n"); } // Example 3: Read all text blocks in chunks of 50 until the end Console.WriteLine("\n\nExample 3: Read all text blocks in chunks of 50 until the end\n"); filePath = "test/test_style.odt"; chunkSize = 50; offset = 0; int totalBlocksRead = 0; int chunkNumber = 1; Console.WriteLine($"Reading all text blocks with chunk size: {chunkSize}\n"); while (true) { Console.WriteLine($"\nProcessing chunk #{chunkNumber} with offset: {offset}\n"); List<string> chunkBlocks = libreOffice.get_text_blocks_odt(filePath, offset, chunkSize); if (chunkBlocks != null && chunkBlocks.Count > 0) { int blocksInChunk = chunkBlocks.Count; totalBlocksRead += blocksInChunk; Console.WriteLine($"Received {blocksInChunk} blocks in chunk #{chunkNumber}\n"); Console.WriteLine($"Total blocks read so far: {totalBlocksRead}\n"); // Display first and last block of the chunk if (blocksInChunk > 0) { Console.WriteLine($"First block in chunk: {chunkBlocks[0]}\n"); if (blocksInChunk > 1) { Console.WriteLine($"Last block in chunk: {chunkBlocks[blocksInChunk - 1]}\n"); } } // If we received fewer blocks than the chunk size, we've reached the end if (blocksInChunk < chunkSize) { Console.WriteLine($"\nReached the end of document. Last chunk had {blocksInChunk} blocks.\n"); break; } offset += chunkSize; chunkNumber++; } else { Console.WriteLine("\nNo more blocks found or error occurred.\n"); break; } Console.WriteLine("\n"); } Console.WriteLine($"\nFinished reading all text blocks. Total blocks read: {totalBlocksRead}\n"); // Quit the application app.quit(); } } }
xhe_host = "127.0.0.1:7013"; // подключим функциональные объекты, если еще не подключен require("../../../Templates JS/init.js"); // начало echo("<hr><font color=blue>libreOffice.get_text_blocks_odt</font><hr>"); const filePath = "test/test_style.odt"; // Example 1: Get all text blocks from the ODT file echo("Example 1: Getting all text blocks\n"); const blocks = libreOffice.get_text_blocks_odt(filePath); if (blocks) { const blocksCount = blocks.length; echo("\n Получено блоков штук: " + blocksCount); for (let k = 0; k < blocksCount; k++) { text = blocks[k]; echo("\n" + text); } } else{ echo("\nПроизошла ошибка"); } echo("\n\n"); // Example 2 // Порция текстовых блоков для чтения в одну итерацию const chunkSize = 5; // Сколько порций блоков нужно прочитать const chunkCount = 10; echo("\nExample 2. Прочитать содержимое файла odt порциями. Всего chunkCount порций по chunkSize штук текстовых блоков в порции."); // Индекс стартовый let offset = 0; for (let m = 0; m < chunkCount; m++) { echo("\n Порция текстовых блоков #" + (m + 1) + ": chunkSize штук стартовый индекс " + offset);s const chunkBlocks = libreOffice.get_text_blocks_odt(filePath, offset, chunkSize); if (chunkBlocks) { const blocksCount = chunkBlocks.length; echo("\n"); echo("\n Получено штук: " + blocksCount); echo("\n\n"); for (let k = 0; k < blocksCount; k++) { // Обрезать блок для вывода в консоль text = chunkBlocks[k]; echo("\n" + text); } } else{ echo("\nБлоки кончились или произошла ошибка"); break; } offset += chunkSize; echo("\n\n"); } // Quit app.quit();
=============================================
libreoffice Объекты DOM System Vision Web Window
=============================================
если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
.