В некоторых ответах я видел некоторые сведения о пропуске, поэтому я решил добавить новый.
Сборники Java. Arrays.asList принимает var-arg типа T (T ...)
. Если вы передадите примитивный массив (int array), метод asList выведет и сгенерирует List<int[]>
, который является списком из одного элемента (один элемент является примитивным массивом). если вы перетасовываете этот список элементов, он ничего не изменит.
Итак, сначала вам нужно преобразовать примитивный массив в массив объектов Wrapper. для этого вы можете использовать метод ArrayUtils.toObject
из apache.commons.lang. затем передать сгенерированный массив в список и окончательно перетасовать его.
int[] intArr = {1,2,3};
List<Integer> integerList = Arrays.asList(ArrayUtils.toObject(array));
Collections.shuffle(integerList);
//now! elements in integerList are shuffled!
Если Вы хотите изменить содержание существующего файла PDF и добавить дополнительное содержание, такое как водяные знаки, pagenumbers, дополнительные заголовки, PdfStamper является объектом, в котором Вы нуждаетесь. Я успешно использовал следующий код вставить изображение в существующий файл PDF к данной абсолютной позиции:
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
class Program
{
static void Main(string[] args)
{
using (Stream inputPdfStream = new FileStream("input.pdf", FileMode.Open, FileAccess.Read, FileShare.Read))
using (Stream inputImageStream = new FileStream("some_image.jpg", FileMode.Open, FileAccess.Read, FileShare.Read))
using (Stream outputPdfStream = new FileStream("result.pdf", FileMode.Create, FileAccess.Write, FileShare.None))
{
var reader = new PdfReader(inputPdfStream);
var stamper = new PdfStamper(reader, outputPdfStream);
var pdfContentByte = stamper.GetOverContent(1);
Image image = Image.GetInstance(inputImageStream);
image.SetAbsolutePosition(100, 100);
pdfContentByte.AddImage(image);
stamper.Close();
}
}
}
при вставке изображения, у Вас есть возможность изменить размеры его. Можно смотреть на матрица преобразования в iTextSharp документации.
Вот аналогичный пример, в котором я вставляю изображение на страницу с помощью штампа: