Укажите, как обрезать строки в итоговом PDF и изображениях с помощью C++

Возможные сценарии использования

Когда ячейка содержит текст или строку длиной больше ширины ячейки, содержимое переполняет ячейку, если следующая ячейка в следующем столбце пуста или отсутствует. Сохраняя файл Excel в PDF или изображение, вы можете управлять этим переполнением, задавая тип обрезки, используя перечисление TextCrossType. В нем есть следующие значения:

  • TextCrossType.Default: отображать текст как в MS Excel, что зависит от следующей ячейки. Если следующая ячейка пуста, строка будет обрезана или укорочена.

  • TextCrossType.CrossKeep: отображать строку как в MS Excel при экспорте в PDF/изображение.

  • TextCrossType.CrossOverride: отображать весь текст, пересекающий другие ячейки, и переопределять содержимое пересекаемых ячеек.

  • TextCrossType.StrictInCell: Отображать только строку в пределах ширины ячейки.

Указание того, как пересекать строку в выходном PDF/изображении с использованием TextCrossType

Следующий пример загружает пример файла Excel и сохраняет его в формате PDF/изображение, задавая разные TextCrossType. Образец файла Excel и выходные файлы можно скачать по ссылкам ниже:

sampleCrossType.xlsx

outputCrossType.pdf

outputCrossType.png

Образец кода

#include <iostream>
#include <memory>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Rendering;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    // Load template Excel file
    Workbook wb(srcDir + u"sampleCrosssType.xlsx");

    // Initialize PDF save options
    PdfSaveOptions pdfSaveOptions;
    pdfSaveOptions.SetTextCrossType(TextCrossType::StrictInCell);

    // Save PDF file
    wb.Save(outDir + u"outputCrosssType.pdf", pdfSaveOptions);

    // Initialize image or print options
    ImageOrPrintOptions imageSaveOptions;
    imageSaveOptions.SetTextCrossType(TextCrossType::StrictInCell);

    // Initialize sheet renderer object
    SheetRender sheetRenderer(wb.GetWorksheets().Get(0), imageSaveOptions);

    // Save PNG image
    sheetRenderer.ToImage(0, outDir + u"outputCrosssType.png");

    Aspose::Cells::Cleanup();
}