VAshot писал(а):Но один в один вывод на принтер маловероятен, фон там поменять, размер заголовка. Сейчас через временный чарт делал, глупо.
Может некое свойство добавить в котором можно задать наиболее вероятные изменяемые свойства при печати?
Нет, мне это не нравится -- свойств будет очень много, и всё равно кому-нибудь не хватит.
Лучше, наверное, сделать, чтобы Assign работал на TChart -- тогда можно будет писать
PrintChart.Assign(Chart1);
PrintChart.Title.Font := 14;
PrintChart.PaintOnCanvas(Printer.Canvas);
Patches welcome

По поводу управления масштабом:
TAChart работает с тремя координатными системами: axis, graph и image -- соответственно координаты
на осях (aka объектные), на общем графике (aka мировые), и на экране (aka экранные).
При отрисовке, например, точки в TLineSeries преобразование из axis в graph делается функцией
AxisToGraph по следующему алгоритму:
1) Определяются оси, к которым привязана серия -- свойства AxisIndexX и AxisIndexY
2) Для каждой оси вызывается AxisTransformations
3) Если AxisIndexX задаёт вертикальную ось, а AxisIndexY -- горизинтальную (функция IsRotated),
то выполняется поворот на 90 градусов
Если оси не указаны (-1) или не имеют трансформаций, то считается, что мировые координаты равны объектным.
AxisTransformations -- это компонента, содержащая список преобразований, которые выполняются последовательно.
Примеры преобразований -- линейное (масштаб, перенос), логарифмическое, автоматическое линейное.
В будущем планируются другие преобразования.
Операция Zoom влияет на преобразование из мировых координат в экранные, поэтому напрямую
сдалять, чтобы она влияла только на часть осей, нельзя.
Можно (не меняя код TAChart) сделать другой инструмент масштабирования,
который будет менять только преобразование одной оси -- но только мне совершенно непонятно,
зачем такое может понадобиться.