Страницы Printing Comment только с Acrobat

Как распечатать только страницы комментария только в профессионале акробата 7?

Я нашел, что предложение в одной из веб-страниц использует JavaScript для извлечения страниц комментария только, но я не могу завершить сценарий.

- Use a JavaScript to scan the PDF "this.syncAnnotScan"
- Then make a variable (i.e. "a" ) equal to zero and then increment it one for every page in the doent.
- Make another variable (i.e. "b") equal to "this.getAnnots" using the first variable ( "a" ) as the "nPage:" value.
- Set an "IF" statement checking if the second value ( "b") is not NULL then use "this.print" using the first variable ( "a") as both the "nStart:" and "nEnd" parameters.
- Make sure that you have the preference set to print comments in the Acrobat Preferences.

Я попробовал, но не могущий завершить сценарий.

Любезно помогите мне.

1
задан 5 November 2014 в 10:30

2 ответа

с КСИ Acrobat Reader это создает список с дополнительными пространствами, который впоследствии не печатает правильно. Таким образом, для следующего: 9, 17 - 21, 23, 25 - 26, 29 - 30, 33 - 36, 40 - 41, 45 - 47, 49, 52 - 54, 56 - 59, 64 - 68, 70 - 73, 76 - 78, 83 - 90, 92 - 93, 95 - 96, 99, 104, 107 - 108, 113, 117 - 120, 123 - 124, 163 - 165, 194 - 196, 223 - 224, 226, 230, 233, 237, 239 - 240

Только первая печать страницы.

, Если я вручную удаляю дополнительные пространства: 9, 17-21,

Это хорошо работает. Действительно ли возможно скорректировать сценарий для удаления пробелов? Я думаю те непосредственно после того, как запятая будет прекрасна.

0
ответ дан 11 November 2019 в 12:31

Я искал решение той же проблемы (печатающий только страницы PDF с аннотациями), и я совместно использую сценарий здесь, таким образом, другие могут извлечь выгоду.

Просто сохраните следующее как printAnnotatedPages.js и выразитесь в подпапку Javascript установки Adobe Acrobat:

// Print only pages with annotations in them
function printAnnotatedPages() {

    // Sync document annotations
    this.syncAnnotScan();

    // Check if printRange is available (Acrobat 11 or newer)
    var pagesRange = null;
    if (typeof app.formsVersion != "undefined" && app.formsVersion >= 11.0)
    {
        // Enable printRange
        pagesRange = [];
    }

    // Scan pages for annotations
    var startPage = -1;
    var new_set = false;
    for (var page = 0; page < this.numPages; page++)
    {
        // Check whether the current page has annotations
        var hasComments = this.getAnnots({nPage: page});
        if (hasComments != null) {
            // This page has annotations
            // Check whether this is a new set
            if (!new_set) {
                // Start new set of pages
                startPage = page;
                new_set = true
            }
        } else {
            // This page hasn't annotations
            // Print the set of pages (if any)
            if (new_set) {
                new_set = false;
                if (pagesRange != null) {
                    // Add set of pages to print list
                    pagesRange.push([startPage, (page-1)]);
                } else {
                    // Print this set (displays Print UI)
                    this.print({nStart: startPage, nEnd: (page-1)});
                }
            }
        }
    };

    // Final check
    if (pagesRange != null) {
        // Print the last set of pages (if any)
        if (new_set) {
            // Add the last set of pages to print list
            new_set = false;
            pagesRange.push([startPage, (page-1)]);
        }

        // Print using the range function
        if (pagesRange.length > 0) {
            var pp = this.getPrintParams();
            pp.interactive = pp.constants.interactionLevel.full;
            pp.printRange=pagesRange;
            this.print(pp); 
        } else {
            // No pages with annotations
            app.alert({nIcon: 1, cTitle: "Print annotated pages",
                cMsg: "There are no annotated pages in this document."});
        }   
    } else {
        // Print the last set (displays Print UI)
        if (new_set) {
            new_set = false;
            this.print({nStart: startPage, nEnd: (page-1)});
        }
    }
}

// Add menu item to the File menu
app.addMenuItem({ cName:"PrintAnnotatedPages", cUser:"Print pages with annotations...", cParent:"File",
          cExec:"printAnnotatedPages();", cEnable: "event.rc = (event.target != null);", nPos: 16 });

Это добавляет новое меню Print страницы с аннотациями... под Файлом в Acrobat, когда существует открытый документ; я протестировал его и работы с v9 и DC успешно. С версиями прежде 11 - из-за недостающего API - необходимо подтвердить диалоговое окно печати перед каждой группой страниц, все же.

1
ответ дан 7 December 2019 в 16:28

Другие вопросы по тегам:

Похожие вопросы: