@FaulerAffe
-

Как скопировать рабочую область Word?

Я пытаюсь скопировать рабочую область Word и у меня возникли проблемы. Как основу я использую QTextEdit.
1) 14-ый размер текста, заданный таким образом:
QFont timesNewRoman("Times New Roman", 14);
    inputTextEdit->document()->setDefaultFont(timesNewRoman);

отличается от 14-го размера, который я вижу в ворде. Отличается где-то пункта на три, то есть чтобы текст на экране был одинакового размера, мне нужно ставить 17, а не 14. В чём тут может быть проблема?
2)Я совершенно не понимаю, как Word выясняет, какую ширину и высоту рабочей области отрисовывать. Допустим, я хочу писать на А4, это 21х29.7 см. Из данной информации я могу вытащить только соотношение сторон, как получить именно разрешение мне не очень понятно. Проблема в том, что то, что мы видим в Word, мы потом видим и на реальном листе – как мне добиться того же и в моей программе? То есть если у меня на экране букв F в строке умещается 30, то и на реальном А4 их было 30. Я экспериментировал с devicePixelRatio(), делал так: я нашёл в интернете, что "логический пиксель", отношение реального пикселя к которому находит данная функция, это размер пикселя на экране 160dpi, то есть 40х40 логических пикселей дают один реальный квадратный дюйм, => 40 логических пикселей дают обычный дюйм. В 21 сантиметре (из А4) содержится 8.27 дюймов, => искомая ширина будет 40 * 8.27= 330.8 логических пикселей. Теперь переведём эти пиксели обратно в реальные, умножив на соотношение, которое мы получили ранее. У меня функция devicePixelRatio() выдаёт 2, то есть реальная ширина 330.8 * 2 = 662 пикселя. В реальности это даже близко не так, ну, я пытался.
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы