2016-12-30 3 views
0

Core-Plot ist ziemlich mächtig, ich benutze es, um EKG-Diagramm zu erstellen. Wenn ich eine PDF-Datei erstelle, stoße ich auf einige Probleme.Über erstellt eine PDF-Datei von Core-Plot

Jedes kleine Raster ist quadratisch auf meiner App. Aber wenn ich -dataForPDFRepresentationOfLayer() verwenden, um in die PDF-Datei zu schreiben, ist kleines Gitter nicht quadratisch. Die "minorGridLine" der PDF-Datei auf falscher Position.

Ich habe die Pixelmaße des Diagrammbereichs und die Anzahl der Rasterlinien festgelegt. Jedes kleine Raster ist quadratisch auf meiner App, aber kleine Raster ist nicht quadratisch auf der PDF-Datei. Wie löst man dieses Problem?

Danke, Midas

App Screenshot

pdf Screenshot

Antwort

1

Sie die Wirkung der Ausrichtung der Gitterlinien an Pixelgrenzen zu sehen, auf den Linien schärfere Kanten zu erhalten. Das obere Bild (der Screenshot) sieht aus wie ein 1x Render mit unscharfen kleinen Gitterlinien und Anti-Aliasing auf der Datenlinie. Das untere Bild (das PDF) hat scharfe Linienränder, was eine Zeichnungsfläche mit höherer Auflösung (2x oder 3x) impliziert. Wenn die Auflösung hoch genug ist, um die Linienbreite mit einer ganzzahligen Anzahl von Pixeln zu rendern, verschiebt Core Plot die Linien so, dass sie auf die nächsten Pixelgrenzen fallen, um die durch Anti-Aliasing verursachten unscharfen Kanten zu eliminieren.

Mögliche Lösungen bestehen darin, sicherzustellen, dass die Pixelmaße des Plotbereichs ein gerades Vielfaches der Anzahl der kleineren Tickpositionen sind (unter Berücksichtigung der contentsScale des Diagramms) oder die Linienbreite der Nebenrasterlinien anzupassen möglich, sie mit einer ganzzahligen Anzahl von Pixeln zu rendern. Verwenden Sie beispielsweise eine Linienbreite von 0,4 statt 0,5.

+0

Danke, Eric. Ich stelle die Pixelmaße jedes Hauptgitters auf ein gerades Vielfaches der Anzahl kleinerer Zeckenpositionen ein und erhalte die richtige PDF-Datei. –

Verwandte Themen