fixes
This commit is contained in:
@@ -8,6 +8,8 @@ import java.util.HashMap;
|
|||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.hc.core5.http.ParseException;
|
||||||
|
|
||||||
import com.itextpdf.barcodes.BarcodeQRCode;
|
import com.itextpdf.barcodes.BarcodeQRCode;
|
||||||
import com.itextpdf.barcodes.qrcode.EncodeHintType;
|
import com.itextpdf.barcodes.qrcode.EncodeHintType;
|
||||||
import com.itextpdf.io.image.ImageDataFactory;
|
import com.itextpdf.io.image.ImageDataFactory;
|
||||||
@@ -31,11 +33,16 @@ import com.wrapper.spotify.model_objects.specification.Album;
|
|||||||
import com.wrapper.spotify.model_objects.specification.Playlist;
|
import com.wrapper.spotify.model_objects.specification.Playlist;
|
||||||
import com.wrapper.spotify.model_objects.specification.Track;
|
import com.wrapper.spotify.model_objects.specification.Track;
|
||||||
import com.wrapper.spotify.requests.authorization.client_credentials.ClientCredentialsRequest;
|
import com.wrapper.spotify.requests.authorization.client_credentials.ClientCredentialsRequest;
|
||||||
|
import com.wrapper.spotify.requests.data.playlists.GetPlaylistCoverImageRequest;
|
||||||
|
|
||||||
public class CardCreator {
|
public class CardCreator {
|
||||||
|
|
||||||
public static final float mmUnit = 72f/25.4f; // see https://itextpdf.com/en/resources/faq/technical-support/itext-7/how-define-width-cell
|
public static final float mmUnit = 72f/25.4f; // see https://itextpdf.com/en/resources/faq/technical-support/itext-7/how-define-width-cell
|
||||||
public static final int cardsPerLine = 6;
|
public static final int cardsPerLine = 6;
|
||||||
|
public static final float cardWidth = 40;
|
||||||
|
public static final float pageWidth = 297;
|
||||||
|
public static final float borderWidth = 1;
|
||||||
|
|
||||||
|
|
||||||
public static final String DEST = "results/simple_table.pdf";
|
public static final String DEST = "results/simple_table.pdf";
|
||||||
public static final PdfNumber INVERTEDPORTRAIT = new PdfNumber(180);
|
public static final PdfNumber INVERTEDPORTRAIT = new PdfNumber(180);
|
||||||
@@ -59,7 +66,9 @@ public class CardCreator {
|
|||||||
final ClientCredentials clientCredentials = clientCredentialsRequest.execute();
|
final ClientCredentials clientCredentials = clientCredentialsRequest.execute();
|
||||||
|
|
||||||
// Set access token for further "spotifyApi" object usage
|
// Set access token for further "spotifyApi" object usage
|
||||||
spotifyApi.setAccessToken(clientCredentials.getAccessToken());
|
String accessToken = clientCredentials.getAccessToken();
|
||||||
|
System.out.println(accessToken);
|
||||||
|
spotifyApi.setAccessToken(accessToken);
|
||||||
|
|
||||||
cards = fetchCardData(links);
|
cards = fetchCardData(links);
|
||||||
|
|
||||||
@@ -80,7 +89,7 @@ public class CardCreator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected List<Card> fetchCardData(List<String> links) throws SpotifyWebApiException, IOException {
|
protected List<Card> fetchCardData(List<String> links) throws SpotifyWebApiException, IOException, ParseException {
|
||||||
List<Card> cards = new LinkedList<Card>();
|
List<Card> cards = new LinkedList<Card>();
|
||||||
HashMap<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
|
HashMap<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
|
||||||
hints.put(EncodeHintType.CHARACTER_SET, "ISO-8859-15");
|
hints.put(EncodeHintType.CHARACTER_SET, "ISO-8859-15");
|
||||||
@@ -113,7 +122,7 @@ public class CardCreator {
|
|||||||
Playlist playlist = spotifyApi.getPlaylist(spotifyId).build().execute();
|
Playlist playlist = spotifyApi.getPlaylist(spotifyId).build().execute();
|
||||||
card.title = playlist.getName();
|
card.title = playlist.getName();
|
||||||
card.artist = playlist.getDescription();
|
card.artist = playlist.getDescription();
|
||||||
URL url = new URL(playlist.getImages()[0].getUrl());
|
URL url = new URL(spotifyApi.getPlaylistCoverImage(spotifyId).build().execute()[0].getUrl());
|
||||||
card.cover = new Image(ImageDataFactory.create(url));
|
card.cover = new Image(ImageDataFactory.create(url));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -197,9 +206,10 @@ public class CardCreator {
|
|||||||
protected void createFoldingPdf(String dest, List<List<Card>> lines) throws Exception {
|
protected void createFoldingPdf(String dest, List<List<Card>> lines) throws Exception {
|
||||||
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest));
|
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest));
|
||||||
pdfDoc.setDefaultPageSize(PageSize.A4.rotate());
|
pdfDoc.setDefaultPageSize(PageSize.A4.rotate());
|
||||||
|
|
||||||
Document doc = new Document(pdfDoc);
|
Document doc = new Document(pdfDoc);
|
||||||
doc.setMargins(0, 28.5f * mmUnit, 0, 28.5f * mmUnit);
|
|
||||||
|
float docMargin = (pageWidth - (cardWidth * cardsPerLine)) / 2 * mmUnit;
|
||||||
|
doc.setMargins(0, docMargin, 0, docMargin - borderWidth); // leave space for the first border
|
||||||
|
|
||||||
UnitValue[] colWidths = new UnitValue[cardsPerLine];
|
UnitValue[] colWidths = new UnitValue[cardsPerLine];
|
||||||
for (int i = 0; i < colWidths.length; i++)
|
for (int i = 0; i < colWidths.length; i++)
|
||||||
@@ -207,15 +217,13 @@ public class CardCreator {
|
|||||||
|
|
||||||
for (List<Card> line : lines) {
|
for (List<Card> line : lines) {
|
||||||
|
|
||||||
Cell oldCell = null;
|
|
||||||
|
|
||||||
Table table = new Table(colWidths);
|
Table table = new Table(colWidths);
|
||||||
table.useAllAvailableWidth();
|
table.useAllAvailableWidth();
|
||||||
|
|
||||||
for (Card card : line) {
|
for (Card card : line) {
|
||||||
|
|
||||||
Cell cell = new Cell();
|
Cell cell = new Cell();
|
||||||
cell.setBorder(new SolidBorder(ColorConstants.GRAY, 0.5f, 0.5f));
|
cell.setBorder(new SolidBorder(ColorConstants.GRAY, borderWidth, 0.5f));
|
||||||
cell.setPadding(0);
|
cell.setPadding(0);
|
||||||
|
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
@@ -243,11 +251,11 @@ public class CardCreator {
|
|||||||
p.setPaddingTop(5 * mmUnit);
|
p.setPaddingTop(5 * mmUnit);
|
||||||
if (card.cover != null) {
|
if (card.cover != null) {
|
||||||
Image cover = card.cover;
|
Image cover = card.cover;
|
||||||
cover.setWidth(28 * mmUnit);
|
cover.setWidth(30 * mmUnit);
|
||||||
p.add(cover);
|
p.add(cover);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
p.setPaddingBottom(28 * mmUnit);
|
p.setPaddingBottom(30 * mmUnit);
|
||||||
}
|
}
|
||||||
cell.add(p);
|
cell.add(p);
|
||||||
|
|
||||||
@@ -267,7 +275,7 @@ public class CardCreator {
|
|||||||
cell.add(p);
|
cell.add(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
oldCell = cell;
|
cell.setWidth((cardWidth * mmUnit) - borderWidth);
|
||||||
table.addCell(cell.setRotationAngle(Math.PI));
|
table.addCell(cell.setRotationAngle(Math.PI));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -519,9 +527,34 @@ public class CardCreator {
|
|||||||
"NAS/share/Drachenreiter - Das Hörspiel",
|
"NAS/share/Drachenreiter - Das Hörspiel",
|
||||||
"NAS/share/Das große Abenteuer Musik",
|
"NAS/share/Das große Abenteuer Musik",
|
||||||
"spotify:album:7tfjSYq5aWFwKlYWRzmPMc", // Das kleine Gespenst
|
"spotify:album:7tfjSYq5aWFwKlYWRzmPMc", // Das kleine Gespenst
|
||||||
"spotify:album:4kGTkO7CP063Bk0j14829K", // Der Räuber Hotzenplotz und die Mondrakete*/
|
"spotify:album:4kGTkO7CP063Bk0j14829K", // Der Räuber Hotzenplotz und die Mondrakete
|
||||||
"spotify:album:4tzPsEeFw4kR42NE4NqJvX", // Immer lustig in Bullerbü
|
*//* "spotify:album:4tzPsEeFw4kR42NE4NqJvX", // Immer lustig in Bullerbü
|
||||||
"spotify:album:1zuWVjkOPIK5OHFnlgDQcf" // Die Häschenschule
|
"spotify:album:1zuWVjkOPIK5OHFnlgDQcf", // Die Häschenschule
|
||||||
|
"spotify:album:71a7CDdtrILqGPtF5YfNGr", // Conni auf dem Bauernhof
|
||||||
|
// "spotify:album:2bOk55WwZUaXEz6PJpGiMa", // Conni tanzt
|
||||||
|
// "spotify:album:0VfB018ZTsA9Ai8OWAyUzS", // Conni zieht um
|
||||||
|
"spotify:album:4I5pPWLv63Fz955uoO7qYA", // Conni hat Geburtstag
|
||||||
|
// "spotify:album:48VfZGz16VLLpdayUedbOq", // Conni übernachtet bei Julia
|
||||||
|
|
||||||
|
//"spotify:playlist:6cdT1UHxAPOfQv4bVSnn00", // Peppa Wutz Playlist
|
||||||
|
//"spotify:playlist:3aZMwVy8suXz2FI0nI1XBM", // Paw Patrol Playlist
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//temp
|
||||||
|
"https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/Radio_Teddy_Logo.svg/1200px-Radio_Teddy_Logo.svg.png|Radio Teddy|http://streamtdy.ir-media-tec.com/live/mp3-128/web/play.mp3",
|
||||||
|
"NAS/share/Astrid Lindgren - Wir Kinder aus Büllerbü",
|
||||||
|
"NAS/share/Benjamin Blümchen/Benjamin Blümchen - 122 - Benjamin Blümchen als Polizist",
|
||||||
|
"NAS/share/Das Grüffelokind - Hörspiel zum Film",
|
||||||
|
"NAS/share/Der Grüffelo und Das Grüffelokind",
|
||||||
|
*/ "NAS/share/Der kleine Drache Kokosnuss kommt in die Schule",
|
||||||
|
"NAS/share/Giraffenaffen/Giraffenaffen 5",
|
||||||
|
"NAS/share/Kikaninchen - Dibedibedab!",
|
||||||
|
/* "spotify:album:1FAupt6dQ7w849zXeJd5JB", // Reisemaus in Dänemark
|
||||||
|
"NAS/share/Karlchen-Geschichten",
|
||||||
|
"NAS/share/Sing mit mir Kinderlieder/Sing mit mir Kinderlieder",
|
||||||
|
*/ "NAS/share/In der Weihnachtsbäckerei - Das Musical-Hörspiel"
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
new CardCreator(links);
|
new CardCreator(links);
|
||||||
|
|||||||
Reference in New Issue
Block a user