Открытие нескольких документов в формате PDF с помощью пакетного файла

Dart не поддерживает создание экземпляров из параметра универсального типа. Не имеет значения, хотите ли вы использовать именованный конструктор или конструктор по умолчанию (T() также не работает).

Вероятно, есть способ сделать это на сервере, где доступно dart:mirrors (отражение) (еще не пробовал), но не во Флаттере или браузере.

Вам нужно будет поддерживать отображение типов на заводские функции

void main() async {
  final double abc = 1.4;
  int x = abc.toInt();
  print(int.tryParse(abc.toString().split('.')[1]));
//  int y = abc - x;
  final t = make<Test>(5);
  print(t);
}

abstract class Interface {
  Interface.func(int x);
}

class Test implements Interface {
  Test.func(int x) {}
}

/// Add factory functions for every Type and every constructor you want to make available to `make`
final factories = <Type, Function>{Test: (int x) => Test.func(x)};

T make<T extends Interface>(int x) {
  return factories[T](x);
}
7
задан Ross Ridge 25 November 2017 в 06:47
поделиться

4 ответа

Использовать start:

start acrord32.exe 1.pdf
start acrord32.exe 2.pdf
start acrord32.exe 3.pdf

Или даже (поскольку Johannes Rössel предлагает в комментарии ниже):

start 1.pdf
start 2.pdf
start 3.pdf

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

Отметьте это при использовании start необходимо быть осторожными, когда использование заключило аргументы в кавычки, поскольку следующее не будет работать (первый заключенный в кавычки аргумент интерпретируется как заголовок для новой консоли):

start "1.pdf"

Вместо этого необходимо будет сделать следующее:

start "" "1.pdf"

Это - раздражающая причуда start, но необходимо эффективно предоставить фиктивный заголовок в этом случае для надлежащего открытия указанного файла (даже при том, что заголовок является ненужным, поскольку это не создаст новую консоль).

Список других доступных пакетных команд.

11
ответ дан 6 December 2019 в 19:42
поделиться

Вы попробовали, допускает ли Acrobat Reader больше файлов на командной строке, т.е.

start acrord32.exe 1.pdf 2.pdf 3.pdf
0
ответ дан 6 December 2019 в 19:42
поделиться

Спасибо!

Используя запуск добился цели. Я должен был использовать, запускаются так же много раз как количество документов PDF, которые я хочу открыть. По некоторым причинам

запустите acrord32.exe 1.pdf 2.pdf 3.pdf

открывает только первый документ. Таким образом, я предполагаю, что Acrobat Reader не могла бы допускать больше файлов на командной строке.

Я сплачиваюсь, ценят Ваши ответы.

0
ответ дан 6 December 2019 в 19:42
поделиться

У меня это работает даже без команды start . Я часто использую:

c:\path\to\my.pdf

в окнах cmd.exe, и он всегда открывает Acrobat Reader (моя программа просмотра по умолчанию в Windows). В пакетном файле, который я написал для создания PDF-файла с помощью Ghostscript, мои последние две строки:

"%ouptutpath%\%outputfile%.pdf"
"%outputpath%\%outputfile%-optimized.pdf"

, который автоматически открывает оба сгенерированных PDF-файла в двух разных окнах Reader. (Мой % outputpath% содержит пробелы, в % outputfile% также могут быть некоторые ...)

2
ответ дан 6 December 2019 в 19:42
поделиться
Другие вопросы по тегам:

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