Как мне сохранить область печати на листе Excel в формате PDF?
Если мне нужно использовать другую библиотеку, тогда я могу работать с этим, но мне нужно, чтобы она была как можно ближе к тому же внешнему виду, что и при печати из Excel, я знаю, что это сложно в целом.
Предполагая, что вы работаете на сервере Windows, я собираюсь предложить другой подход: использование библиотек классов COM или DOTNET, доступных в PHP на Windows (http://php.net/manual/en/book.com.php). Если нет, пожалуйста, игнорируйте мой ответ, так как он не будет работать.
Моя идея состоит в том, чтобы использовать встроенную возможность макросов Excel для выбора области печати и использования встроенной функции экспорта в PDF. Таким образом, форматы ячеек должны оставаться неизменными. Таким образом, ваш файл .xlsw становится файлом .xlsm с добавлением необходимого кода VBA для выбора нужного диапазона (область печати) и экспорта в PDF. Затем библиотеки классов COM или DOTNET будут использоваться для создания электронной таблицы и доступа к открытым объектам (включая макросы). Вы также можете управлять экспортом через автоматизацию COM / DOTNET и не использовать макрос, если у вас нет контроля над самой электронной таблицей.
В dompdf доступны только следующие варианты печати: размер и ориентация бумаги. Кроме того, область печати — это специальная директива, которая не влияет на экспорт в другие форматы. Думайте о области печати как о специализированных маркерах и не более того.
Лучшим вариантом в этом случае является очистка или скрытие всех ячеек за пределами области печати с помощью цикла перед преобразованием в pdf.