Не удается скопировать из файла PDF, созданного из приложения UWP

Я пытаюсь печатать из приложения UWP и следую этому ссылка

При сохранении в формате pdf он печатается нормально. Я тоже умею копировать буквы. Но когда я вставляю его в другое место, он печатает что-то вроде этого: «????????????????????????????????????????????????»

Я пробовал разные шрифты, но безрезультатно.

Вот XAML, который я пытаюсь распечатать:

    <Grid x:Name="PrintableArea" Background="White">
        <StackPanel x:Name="TextContent">
            <TextBlock TextAlignment="Center" FontFamily="Arial" FontWeight="Bold">
                        This is Test
            </TextBlock >
        </StackPanel>
    </Grid>

Как это исправить?


person Kibria    schedule 12.09.2017    source источник


Ответы (1)


Что бы вы ни использовали для создания PDF-файла, очевидно, что невозможно создать PDF-файл с помощью ToUnicode CMap.

Файлы PDF обычно включают только часть шрифта, чтобы уменьшить размер. Обычно это означает, что кодировка, применяемая к шрифту, нестандартная (и, как правило, это не ASCII). Так, например, если у вас есть текст «Hello World», тогда коды символов будут назначены так, что «H» = 1, «e» = 2 и так далее.

Если вы скопируете и вставите это, вы получите 1, 2, 3, 3, 4, 5, 6, 4, 7, 3, 8, которые будут отображаться как двоичные.

PDF-файл может содержать ToUnicode CMap, который сопоставляет код символа с кодовыми точками Unicode, и приложение для просмотра PDF-файлов может использовать это для копирования кодовых точек Unicode вместо кодов символов, что позволяет разумно копировать / вставлять. Но это необязательно. Это связано с тем, что исходные дизайнерские решения в отношении PDF заключались в создании портативного средства просмотра, файл PDF должен выглядеть одинаково для всех потребителей, но дизайнеры не думали о редактировании или копировании.

person KenS    schedule 12.09.2017
comment
На самом деле, я получаю PDF-файл правильно, никаких проблем с его содержанием или ориентацией нет. Я не могу скопировать контент. Я обсуждал с разработчиком iOS, он сказал, что даже созданный ими pdf файл также не подлежит копированию. - person Kibria; 13.09.2017
comment
Я не упомянул ни его ориентацию, ни внешний вид. Я говорю о внутреннем устройстве вашего PDF-файла; что на самом деле находится в файле, а не то, что вы видите при рендеринге на дисплей. Вместо текста (например) 0x48, 0x65, 0x6c, 0x6c, 0x6F и т. Д. В файле содержится 0x01, 0x02, 0x03, 0x03, 0x04. Теперь, если вы скопируете и вставите первый набор чисел, вы получите «Hello», потому что его ASCII и большинство приложений будут считать, что это так. Если вы скопируете второй, то получите кучу двоичных файлов. Единственное решение - сделать PDF более сложным. - person KenS; 13.09.2017
comment
Хорошо, я думаю, что понял. Я попробую соответственно. Спасибо. - person Kibria; 13.09.2017